SNMP・syslog・NetFlowの違い:監視でわかること・集め方・データの形・プロトコルを比較
ネットワークを運用するには、機器や通信の状態を監視し、異常に早く気づいて原因を調べる必要があります。SNMP・syslog・NetFlowは、どれも機器から情報を集めるしくみですが、わかることが違います。SNMPは、管理する側(マネージャ)が機器(エージェント)に、インターフェースの通信量やCPUの使用率などの値を問い合わせるもので、「どれだけか」が分かります。syslogは、リンクのダウンやログイン、設定の変更などの出来事を、機器が文字のメッセージとして記録用のサーバに送るもので、「いつ何が起きたか」が分かります。NetFlow(と、それをもとに標準化されたIPFIX)は、通信を送信元と宛先などが同じパケットのまとまり(フロー)ごとに集計して送るもので、「だれとだれが、どれだけ通信したか」が分かります。実際の運用では、3つを組み合わせて使います。
| 項目 | SNMP | syslog | NetFlow(IPFIX) |
|---|---|---|---|
| わかること | 機器の状態と量。インターフェースの通信量やエラーの数、CPUとメモリの使用率、リンクの状態 | 出来事。リンクのダウン、ログインの成功と失敗、設定の変更、エラーの発生 | 通信の内訳。どの送信元と宛先の組み合わせが、どのプロトコルとポートで、どれだけ通信したか |
| 集め方 | マネージャが一定の間隔で問い合わせる(ポーリング)。異常を機器から知らせる通知(トラップ)もある | 機器が、出来事が起きたときにサーバへ送る | 機器がフローを集計し、フローが終わったときや一定の時間ごとに、収集用のサーバ(コレクタ)へ送る |
| データの形 | MIBで定義された値(カウンタや状態)。オブジェクト識別子(OID)で指定する | 重要度(0〜7)、発生元の種類(ファシリティ)、時刻と、文字のメッセージ | フローごとのレコード。アドレス、ポート番号、プロトコル、パケット数、バイト数、開始と終了の時刻など。項目はテンプレートで決める |
| 時間の細かさ | 問い合わせの間隔(例えば5分)ごとの平均になる | 出来事ごとに、ほぼすぐに届く | フローごと。長く続くフローは、一定の時間ごとに区切って送る |
| わからないこと | だれの通信かは分からない | 通信量は分からない | パケットの中身(データ)は分からない。機器のCPUの使用率なども分からない |
| 機器と回線への負荷 | 小さい | 小さい。ただし、障害のときにメッセージが急に増えることがある | 大きめ。高速なリンクでは、一部のパケットだけを調べるサンプリングを使うこともある |
| 規格とポート番号 | SNMPv3はRFC 3411〜3418。UDPの161番(問い合わせ)と162番(トラップ) | RFC 5424。UDPの514番、TLSを使うときは6514番 | NetFlow v9はRFC 3954(情報提供のRFC)。標準化されたIPFIXはRFC 7011で、ポート番号は4739番 |
| セキュリティ | v1とv2cでは、コミュニティ名が暗号化されずに流れる。v3で認証と暗号化ができる | UDPでは、暗号化も届いたことの確認もない。TLSで保護できる | NetFlow v9には保護のしくみがない。IPFIXはTLSやDTLSで保護できる |
| 主な用途 | 通信量のグラフ、回線の使用率の把握、機器の故障の検知 | 障害の原因の調査、だれが何をしたかの記録、セキュリティの監視(SIEMへの集約) | 帯域を多く使う端末やアプリケーションの特定、ふだんと違う通信の検知、回線の増強の計画 |
数値は代表的な目安で、世代や製品によって異なります。