監視ツールはPull型かPush型か
プロセス監視はPush型の印象があった
監視対象がメトリクスを管理サーバーに送りつけてくれるか
監視対象が公開しているメトリクスを管理サーバーが取りに行くか
監視対象のサーバーに入口を作ってそこに取りに行くというのに馴染みがなかった
Push型は管理サーバーはパワーがあれば受け止めてくれればいい
Pull型は管理サーバーに監視対象を登録しなければいけない
そもそも何を基準にしてPush、Pullなのか見返すとよくわからなかった(2020/10/02)
登場人物整理
監視対象のサーバー
性能を測定したいマシン
監視用のサーバー
監視対象のサーバーから収集した性能の情報をまとめる
グラフで推移を見たり
何かあったらお知らせしたり
Push型
監視対象のサーバー -> 監視用のサーバー
監視対象のサーバーの中にアプリやプロセス(エージェント)がいて、そこから監視用のサーバーに情報を送る
監視対象のサーバーに仕込みが必要
エージェント
監視対象のサーバーのポート開け等は不要
Pull型
監視対象のサーバー <- 監視用のサーバー
監視用のサーバーに監視対象一覧を登録し、今どのくらい? を尋ねにいく
監視対象のサーバーに仕込みが必要
メトリクス収集
監視対象のサーバーのポート開け等も必要
メトリクス収集
いずれにしろ監視対象のサーバーに仕込みは必要になる(2022/05/25)
ここまでに挙がっていない、監視ツールにおけるPull型とPull型の違いはある?
gosyujin_ChatGPT.icon:
既に挙げられている情報を踏まえた上で、監視ツールにおけるPull型とPush型の違いについてさらに補足します。
まず、Pull型とPush型の監視ツールの基本的な違いは以下の通りです:
**Pull型**:
- 監視サーバーが監視対象にアクセスしてデータを取得する。
- 監視サーバーに監視対象の一覧を登録し、定期的にデータを取りに行く。
- 監視対象のサーバーにメトリクス収集のための設定が必要。
- 監視対象のサーバーのポートを開ける必要がある。
**Push型**:
- 監視対象が自発的に監視サーバーにデータを送信する。
- 監視対象のサーバーにエージェントをインストールし、そのエージェントがデータを送信。
- 監視対象のサーバーのポートを開ける必要はないが、エージェントの設定が必要。
これらの基本的な違いに加えて、以下のようなポイントも考慮することができます:
**セキュリティ**:
- Pull型では、監視サーバーが監視対象にアクセスするため、監視対象のサーバーのポートを開けることが必要です。これがセキュリティリスクとなる可能性があります。
- Push型では、監視対象のサーバーからデータが送信されるため、監視サーバー側で受け取るだけで済み、監視対象のサーバーのポートを開ける必要がありません。セキュリティリスクは比較的低くなります。
**ネットワークトラフィック**:
- Pull型では、監視サーバーが定期的に監視対象にリクエストを送るため、ネットワークトラフィックが増加する可能性があります。
- Push型では、監視対象がデータを送信するタイミングを制御できるため、ネットワークトラフィックを効率的に管理できます。
**スケーラビリティ**:
- Pull型では、監視対象が増えると監視サーバーのリクエスト数も増えるため、監視サーバーの負荷が増大します。
- Push型では、監視対象がデータを送信するため、監視サーバーの負荷は比較的軽減されます。ただし、非常に多くの監視対象がデータを送信すると、監視サーバーがデータを受け取る際に負荷がかかることもあります。
**リアルタイム性**:
- Pull型では、監視サーバーが定期的にデータを取りに行くため、リアルタイム性に制限があります。
- Push型では、監視対象がデータを即時に送信できるため、リアルタイム性が高くなります。
以上の点を考慮すると、監視ツールを選定する際には、監視対象の数、ネットワーク環境、セキュリティ要件、リアルタイム性のニーズなどを踏まえて、Pull型とPush型のどちらが適しているかを判断することが重要です。