SNMP、syslog與NetFlow的差異:監控能得知的資訊、收集方式、資料形式與協定比較
要維運網路,需要監控設備與通訊的狀態,及早察覺異常並調查原因。SNMP、syslog與NetFlow都是從設備收集資訊的機制,但能得知的資訊不同。SNMP是由管理端(管理者)向設備(代理程式)查詢介面流量、CPU使用率等值,可得知「有多少」。syslog是由設備把鏈路中斷、登入、設定變更等事件,以文字訊息送到記錄用的伺服器,可得知「何時發生了什麼」。NetFlow(以及以它為基礎標準化的IPFIX)以來源與目的地等相同的封包集合(資料流)為單位彙整通訊並送出,可得知「誰與誰通訊了多少」。實際維運時會組合使用三者。
| 項目 | SNMP | syslog | NetFlow(IPFIX) |
|---|---|---|---|
| 能得知的資訊 | 設備的狀態與數量。介面的流量與錯誤數、CPU與記憶體使用率、鏈路的狀態 | 事件。鏈路中斷、登入的成功與失敗、設定變更、錯誤的發生 | 通訊的明細。哪組來源與目的地以哪種協定與連接埠通訊了多少 |
| 收集方式 | 管理者以固定間隔查詢(輪詢)。也有由設備通知異常的通知(trap) | 事件發生時由設備送到伺服器 | 設備彙整資料流,在資料流結束時或每隔一段時間送到收集用伺服器(收集器) |
| 資料的形式 | MIB中定義的值(計數器與狀態)。以物件識別碼(OID)指定 | 嚴重性(0〜7)、來源種類(facility)、時間與文字訊息 | 每個資料流的記錄。位址、連接埠號碼、協定、封包數、位元組數、開始與結束時間等。欄位以範本決定 |
| 時間的精細度 | 成為每個查詢間隔(例如5分鐘)的平均 | 每個事件幾乎立即送達 | 以資料流為單位。持續很久的資料流會每隔一段時間切分送出 |
| 無法得知的資訊 | 無法得知是誰的通訊 | 無法得知流量 | 無法得知封包的內容(資料)。也無法得知設備的CPU使用率等 |
| 對設備與線路的負載 | 小 | 小。但故障時訊息可能急遽增加 | 較大。在高速鏈路上,有時會使用只檢查部分封包的取樣 |
| 標準與連接埠號碼 | SNMPv3為RFC 3411〜3418。UDP的161號(查詢)與162號(trap) | 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) | 找出大量使用頻寬的終端或應用程式、偵測異常通訊、規劃線路擴充 |
數值為具代表性的大致參考值,會因世代或產品而異。