
Plugin: go.d.plugin Module: snmp
このコレクターは、SNMP 対応のあらゆるネットワークデバイスを検出し、監視します。
sysObjectID や sysDescr などのセレクターを使って、デバイスを適切なプロファイルにマッチさせます。ping_only モードも利用できます。主要ベンダー向け組み込みプロファイル:
| カテゴリ | ベンダー |
|---|---|
| スイッチ / ルーター | Cisco (Catalyst, Nexus, ASR, ISR), Arista, Juniper, HP/HPE, Dell, Extreme |
| ファイアウォール | Palo Alto, Fortinet FortiGate, Cisco ASA, Checkpoint, SonicWall |
| ワイヤレス | Aruba, Cisco WLC, Ubiquiti, Alcatel-Lucent |
| ロードバランサー | F5 BIG-IP, Citrix NetScaler, A10 Thunder |
| インフラ | APC UPS/PDU, Dell サーバー、および標準 MIB (BGP, OSPF, TCP/UDP) |
この表は一般的なベンダーを抜粋したものです。実際のライブラリにはさらに多く のベンダーが含まれます。
:::info
独自プロファイルの作成や標準プロファイルの拡張方法については SNMP Profile Format を参照してください。
:::
プロファイルの配置場所
| 種別 | 既定パス | 備考 |
|---|---|---|
| 標準プロファイル | /usr/lib/netdata/conf.d/go.d/snmp.profiles/default/ |
Netdata に同梱 |
| ユーザープロファイル | /etc/netdata/go.d/snmp.profiles/ |
カスタムまたは変更したプロファイルを配置 |
インストール形態によっては、パスの先頭に
/opt/netdataが付く場合があります。
プロファイル では以下を定義します。
sysObjectID, sysDescr)実行時にコレクターが行うこと:
sysObjectID, sysDescr)を読み取り、デバイスを識別するこのコレクターはすべてのプラットフォームでサポートされています。
このコレクターは、リモートインスタンスを含む、このインテグレーションの複数インスタンスからのメトリクス収集をサポートします。
SNMP サービスディスカバリーは、設定済みネットワークを自動スキャンし、検出したデバイスを SNMP コレクターに渡すことができます。
sysObjectID、sysDescr、およびプロファイルのセレクタールールに基づいて適切なプロファイルにマッチされます。設定ファイル名は go.d/sd/snmp.conf です。
設定ファイルは、Netdata の設定ディレクトリにある edit-config スクリプトで編集できます。
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/sd/snmp.conf
このインテグレーションの既定設定では、データ収集に制限は課されません。
デバイス側の制約: 多くの SNMP デバイス(例: アクセススイッチ)は、管理処理に使える CPU / ASIC 時間が限られています。タイムアウトや欠損が見られる場合は、update_every や max_repetitions を下げるか、複数デバイスへのポーリング時刻を分散してください。
並列ポーリング: 複数ツールからの並列アクセスにより、一部デバイスでカウンター取得漏れが起きることがあります。リクエスト圧力を減らすため、収集間隔(update_every)を長くしてください。
snmp コレクターは次の 2 通りで設定できます。
| 方法 | 適している用途 | 手順 |
|---|---|---|
| UI | ファイル編集なしで素早く設定したい場合 | Nodes → Configure this node → Collectors → Jobs に移動し、snmp を検索して + をクリックし、ジョブを追加します。 |
| File | ファイルで設定したい場合、または自動化(例: Ansible)が必要な場合 | go.d/snmp.conf を編集してジョブを追加します。 |
:::important
UI での設定には有料の Netdata Cloud プランが必要です。
:::
コレクターを設定する前に:
以下のオプションはグローバルに定義できます: update_every, autodetection_retry。
Netdata の Web インターフェースから snmp コレクターを設定します。
このインテグレーションの設定ファイル名は go.d/snmp.conf です。
ファイル形式は YAML です。一般的な構造は次のとおりです。
update_every: 1
autodetection_retry: 0
jobs:
- name: some_name1
- name: some_name2
設定ファイルは、Netdata の設定ディレクトリにある edit-config スクリプトで編集できます。
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/snmp.conf
この例では:
192.0.2.1 です。2 です。public です。プロファイルは実行時に自動選択されます。
SNMPv3 を使うには:
community の代わりに user を使います。options.version を 3 に設定します。この例では、同じ SNMPv3 認証情報を共有する複数の SNMP デバイスを監視します。
YAML anchors を使って、完全なジョブ定義を一度だけ(&snmp_v3_job)記述し、その後 <<: *snmp_v3_job で再利用し、追加デバイスごとに name と hostname だけを上書きしています。
このインテグレーションには、既定ではアラートは設定されていません。
メトリクスとチャートは、実行時に マッチした SNMP プロファイル によって定義されます。内容はベンダー / モデル / OS によって異なり、たとえばインターフェースカウンター、光学情報、CPU / メモリ、温度、VLAN などが含まれる場合があります。そのデバイスで実際に何が収集されるかは、ダッシュボードの Metrics タブで確認してください。
:::tip
これらのプロファイルの構造(metrics、tags、virtual metrics など)を理解するには、SNMP Profile Format を参照してください。
:::
ping.enabled が true の場合、ICMP 遅延 / パケットロスのチャートも提供されます(ping_only: true の場合はそれのみが提供されます)。
このコレクターは、Live タブで対話的なトラブルシュートを行うためのリアルタイム機能を提供します。
SNMP 対応デバイスから、ネットワークインターフェースのトラフィックおよび状態メトリクスの詳細を提供します。
この機能は、通常のポーリングサイクル中に収集されたキャッシュ済み SNMP インターフェースデータを問い合わせ、ソートおよびフィルタリング可能なテーブルとして表示します。各行は監視対象 SNMP デバイス上の 1 つのネットワークインターフェースを表し、トラフィック分析、エラー監視、運用状態の追跡に必要な包括的メトリクスを含みます。
利用例:
データは IF-MIB(RFC 2863)のインターフェースカウンターを元にしており、最後に成功した SNMP 収集結果からキャッシュされています。この機能呼び出し時に追加の SNMP リクエストは発生しません。
| 項目 | 説明 |
|---|---|
| Name | Snmp:interfaces |
| Require Cloud | no |
| Performance | キャッシュ済み SNMP データのみを使用し、追加の SNMP リクエストは発生しません。 • 応答はメモリキャッシュから即時返されます • 多数のインターフェースを持つ大規模デバイスでは多くの行が返る場合があります |
| Security | 公開されるのはインターフェース名、運用状態、トラフィックカウンターのみです。 • パケットペイロードや認証情報は公開されません • デバイス設定の詳細は公開されません |
| Availability | 次の場合に利用可能です。 • コレクターが少なくとも 1 回データ収集を完了している • 最後に成功した SNMP 収集結果からインターフェースデータがキャッシュされている • キャッシュ未準備の場合は HTTP 503 を返します |
追加設定は不要です。
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| Type Group | select | 種別分類グループでインターフェースをフィルタします。カスタムマッピングにより IANA インターフェースタイプを実用的なグループへ分類し、絞り込みやすくしています。 | yes | ethernet | Ethernet (default), Aggregation, Virtual, Other |
キャッシュ済み SNMP データから得たネットワークインターフェースメトリクスを返します。トラフィックレート、パケット統計、運用状態、エラーカウンターが含まれます。各行は 1 つの物理または仮想インターフェースを表します。
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| Interface | string | ネットワークインターフェース名または識別子(例: eth0, GigabitEthernet1/0/1, Vlan100) | ||
| Type | string | IF-MIB で定義された IANA 割り当て済みインターフェースタイプ(例: ethernetCsmacd, ieee80211, softwareLoopback) | ||
| Type Group | string | IANA インターフェースタイプを実用的なグループに分類するカスタムカテゴリ。Ethernet(物理 Ethernet インターフェース)、Aggregation(LAG / port-channels、bond)、Virtual(VLAN、loopback)、Other(その他すべて) | ||
| Admin Status | string | インターフェースに設定された管理状態。up(使用可能)、down(管理上無効)、testing(テストモード)。運用状態とは異なります。 | ||
| Oper Status | string | 現在の運用状態。up(動作中でトラフィック転送可能)、down(非動作)、testing(テストモード)、unknown(状態判定不可)、dormant(外部アクション待ち)、notPresent(インターフェースは削除済みだが設定は残存)、lowerLayerDown(下位レイヤー障害によりダウン) | ||
| Traffic In | float | bit/s | 受信ネットワークトラフィックレート(bit/s)。値が高い場合、容量計画が必要なほど受信データ量が多いことを示します。 | |
| Traffic Out | float | bit/s | 送信ネットワークトラフィックレート(bit/s)。高い値は送信データ量が多いことを示します。Traffic In と比較することで非対称な利用傾向を把握できます。 | |
| Unicast In | float | packets/s | hidden | 1 つの宛先向けユニキャストパケットの受信レート(packets/s)。ポイントツーポイント通信で一般的なトラフィックパターンです。 |
| Unicast Out | float | packets/s | hidden | 1 つの宛先に送信されたユニキャストパケットの送信レート。 |
| Broadcast In | float | packets/s | hidden | ブロードキャストパケットの受信レート(packets/s)。高い値はネットワークストーム、ARP フラッディング、設定不備を示す場合があります。 |
| Broadcast Out | float | packets/s | hidden | ブロードキャストパケットの送信レート。継続的に高い場合、ネットワーク性能を低下させる可能性があります。 |
| Packets In | float | packets/s | 総受信パケットレート(ユニキャスト、ブロードキャスト、マルチキャストの合計)。インターフェース全体の負荷評価に有用です。 | |
| Packets Out | float | packets/s | 総送信パケットレート(ユニキャスト、ブロードキャスト、マルチキャストの合計)。 | |
| Errors In | float | packets/s | hidden | 配信できなかった受信エラーパケットのレート。0 以外の場合、物理層障害(ケーブル不良、信号品質)やバッファオーバーランを示す可能性があります。 |
| Errors Out | float | packets/s | hidden | 送信エラーパケットのレート。0 以外の場合、インターフェースハードウェア障害、ケーブル不良、duplex mismatch などを示す可能性があります。 |
| Discards In | float | packets/s | デバイスが意図的に破棄した受信パケットのレート。多くはリソース制約、セキュリティポリシー、未認識フレームなどが原因です。エラーとは異なり、インターフェース自体は正常でもパケットを破棄した可能性があります。 | |
| Discards Out | float | packets/s | 意図的に破棄した送信パケットのレート。出力キューあふれ、ACL によるドロップ、セキュリティポリシー拒否を示す場合があります。 | |
| Multicast In | float | packets/s | hidden | グループ宛マルチキャストパケットの受信レート。動画配信、マルチキャストアプリケーション、ルーティングプロトコルで一般的です。 |
| Multicast Out | float | packets/s | hidden | マルチキャストパケットの送信レート。 |
重要: Dyncfg 機能を使って UI から作成したデータ収集ジョブでは、デバッグモードはサポートされません。
snmp コレクターの問題を調査するには、デバッグオプション付きで go.d.plugin を実行します。出力には、コレクターが動作しない理由を判断する手がかりが含まれます。
plugins.d ディレクトリに移動します。通常は /usr/libexec/netdata/plugins.d/ です。システムによって異なる場合は、netdata.conf を開いて [directories] セクションの plugins 設定を確認してください。
cd /usr/libexec/netdata/plugins.d/
netdata ユーザーに切り替えます。
sudo -u netdata -s
go.d.plugin を実行してコレクターをデバッグします。
./go.d.plugin -d -m snmp
特定のジョブをデバッグする場合:
./go.d.plugin -d -m snmp -j jobName
snmp コレクターで問題が発生している場合は、以下の手順でログを取得し、潜在的な問題を特定してください。
Netdata サービスの前回再起動以降に生成されたログを表示するには、次のコマンドを使用します。
journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep snmp
通常は /var/log/netdata/collector.log にあるコレクターログファイルを特定し、grep でコレクター名を抽出します。
grep snmp /var/log/netdata/collector.log
注: この方法では、すべての再起動分のログが表示されます。現在の問題を調査する際は、最新のエントリ に注目してください。
Netdata が netdata という名前の Docker コンテナで動作している場合(異なる場合は置き換えてください)、次のコマンドを使用します。
docker logs netdata 2>&1 | grep snmp
SNMP チャートに欠損がある場合、それは次の予定実行までにコレクターがメトリクス収集を完了できなかったことを意味します。通常、SNMP テーブルの収集に update_every で設定した間隔より長い時間がかかる場合に起こります。
この欠損は、デバイスが SNMP メトリクスの出力を停止したことを意味するわけではありません。単にコレクターが一部サイクルをスキップしただけです。
Step 1: ログを確認する
次のようなメッセージをログから探してください。
level=warn msg="skipping data collection: previous run is still in progress for 4s (skipped 4 times in a row, interval 1s)" collector=snmp job=your_device
level=info msg="data collection resumed after 4.36s (skipped 4 times)" collector=snmp job=your_device
“resumed after” メッセージには、前回の収集に実際どれだけ時間がかかったかが表示されます。
たとえば 1 回の実行に約 4.4 秒かかり、update_every が 1 秒なら、4 サイクルがスキップされます。
Step 2: 収集時間を確認する
ダッシュボードの SNMP → Internal → Stats を開きます。
SNMP profile collection timings チャートには、SNMP ポーリングの各部分にどれだけ時間がかかっているかが表示されます。
通常、最も遅いのはテーブルメトリクスであり、全体の収集時間を決める要因になることが多いです。
Step 3: データ収集間隔を長くする
ネットワークのばらつきに備えた余裕も見込んで、最も遅い収集時間より 大きい値 に update_every を設定します。
| 一般的な収集時間 | 推奨 update_every |
|---|---|
| < 2 秒 | 2 秒 |
| 2–5 秒 | 5 秒 |
| 5–10 秒 | 10 秒 |
| > 10 秒 | collection_time × 2 |
:::info
update_every は、最も遅いテーブル収集時間の少なくとも 2 倍にしてください。update_every: 10 は、ほとんどの環境で適切に動作します。:::
簡易チェックリスト
update_every を超えているか。update_every を増やす。