SNMP Polling 設定ファイル生成ツール

KTranslateでSNMP監視を行うための設定ファイルを生成・管理します

🌐 グローバル設定

基本設定
デバイスをポーリングする間隔(秒)。デフォルト: 300
SNMPクエリのタイムアウト(ミリ秒)。デフォルト: 5000
失敗時のリトライ回数。デフォルト: 0
ポーリング時間外の値を破棄する
MIB・プロファイル設定
MIBプロファイルディレクトリ。デフォルト: profiles
ベンダーを選択してからプロファイルを選択します(選択したプロファイル名がmibs_enabledに追加されます)
個別のMIB名を指定します(プロファイルと合わせてmibs_enabledに出力されます)

SNMP Pollingデバイス設定

デバイス名 device_name device_ip port
(デフォルト: 161)
SNMP Version snmp_comm
(コミュニティ文字列)
oid
(sysOID)
provider description poll_time_sec
(オプション)
user_tags 操作
デバイス1
デバイス2
デバイス名 device_name device_ip port
(デフォルト: 161)
oid
(sysOID)
provider description poll_time_sec
(オプション)
user_name
(SNMPv3ユーザー)
authentication_protocol authentication_passphrase privacy_protocol privacy_passphrase context_engine_id
(オプション)
context_name
(オプション)
user_tags 操作
デバイス1
デバイス2

📋 パラメータ設定について

device_name 必須

デバイスを識別するための一意な名前です。英数字、アンダースコア(_)、ハイフン(-)のみ使用可能。

例: router01, switch-01
device_ip 必須

SNMPクエリを送信するデバイスのIPアドレスです。

例: 192.168.1.1, 10.0.0.100
port 任意

SNMPクエリを送信するポート番号です。デフォルトは161番ポートです。

例: 161, 1161
snmp_comm 必須*

SNMPv1/v2cで使用するコミュニティ文字列です。SNMPv3使用時は不要。

例: public, private
oid 必須

デバイスのsysOIDです。デバイスの種類を識別するために使用されます。

例: .1.3.6.1.4.1.9.1.1
provider 任意

New Relicでのエンティティ合成で使用される値です。デバイスの種類に応じて選択。

例: kentik-router, kentik-switch
description 任意

デバイスの説明や用途を記載します。管理しやすくするための情報です。

例: メインルーター, コアスイッチ
poll_time_sec 任意

デバイスをポーリングする間隔(秒)です。指定しない場合はグローバル設定値が使用されます。

例: 60, 300, 600(秒)
user_tags 任意

デバイスに付与する追加属性です。メトリクスに含まれ、分析やフィルタリングに使用できます。

例: location=Tokyo, environment=production
💡 設定のポイント
  • SNMPバージョン: v2cが一般的ですが、セキュリティを重視する場合はv3を使用してください。
  • コミュニティ文字列: セキュリティのため、デフォルトの「public」から変更することを推奨します。
  • sysOID: デバイスから取得できます。snmpwalkコマンドで確認可能。
  • provider: New Relicでの可視化に影響します。適切な値を選択してください。
  • ポーリング間隔: 短すぎるとネットワーク負荷が増加します。通常60秒〜300秒が適切です。

🚀 SNMP監視コンテナ起動手順

ktranslateでSNMP監視を開始するための手順です

1

環境変数の設定

New Relicの認証情報を設定します

export NEW_RELIC_API_KEY="your_license_key"
export NR_ACCOUNT_ID="your_account_id"
2

設定ファイルの準備

設定管理タブで生成したYAMLファイルを保存します

# 設定ファイルを snmp-base.yaml として保存
# 設定管理タブで生成したYAMLをコピーして保存してください
3

コンテナ起動

SNMP監視コンテナを起動します

🎯 標準起動(推奨)

設定ファイルを使用してSNMP監視を開始

docker run -d --name ktranslate-snmp \
  --restart unless-stopped \
  -v $(pwd)/snmp-base.yaml:/snmp-base.yaml \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -snmp /snmp-base.yaml \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -metrics=jchf \
  -tee_logs=true \
  -dns=local \
  -service_name="ktranslate-snmp" \
  nr1.snmp
📡 SNMP Trap受信付き

SNMP PollingとTrap受信を同時に実行

docker run -d --name ktranslate-snmp-trap \
  --restart unless-stopped \
  -p 162:162/udp \
  -v $(pwd)/snmp-base.yaml:/snmp-base.yaml \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -snmp /snmp-base.yaml \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -metrics=jchf \
  -tee_logs=true \
  -dns=local \
  -service_name="ktranslate-snmp-trap" \
  nr1.snmp
🔧 デバッグモード

ログ出力を詳細にして問題を調査

docker run -d --name ktranslate-snmp-debug \
  --restart unless-stopped \
  -v $(pwd)/snmp-base.yaml:/snmp-base.yaml \
  -e NEW_RELIC_API_KEY="$NEW_RELIC_API_KEY" \
  kentik/ktranslate:v2 \
  -snmp /snmp-base.yaml \
  -nr_account_id="$NR_ACCOUNT_ID" \
  -metrics=jchf \
  -tee_logs=true \
  -dns=local \
  -log_level=debug \
  -service_name="ktranslate-snmp-debug" \
  nr1.snmp
4

動作確認

コンテナの起動状態とログを確認します

コンテナ状態確認
docker ps | grep ktranslate-snmp
ログ確認
docker logs ktranslate-snmp
SNMP接続テスト
# SNMPクエリをテスト
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0
New Relicでの検索
# New Relic Insights/NRQL
SELECT * FROM Metric WHERE instrumentation.provider LIKE 'kentik%' AND metricName LIKE 'kentik.snmp%'

🔧 トラブルシューティング

コンテナが起動しない

環境変数や設定ファイルの問題

  • NEW_RELIC_API_KEYが正しく設定されているか確認
  • NR_ACCOUNT_IDが正しいか確認
  • snmp-base.yamlファイルが存在するか確認
  • YAMLファイルの構文エラーがないか確認
SNMPクエリが失敗する

SNMP設定やネットワークの問題

  • 対象デバイスのSNMPサービスが有効か確認
  • コミュニティ文字列が正しいか確認
  • ファイアウォールでSNMPポート(161)が開いているか確認
  • 手動でsnmpwalkコマンドを実行して確認
メトリクスが表示されない

New Relicでデータが見えない場合

  • New Relic APIキーが有効か確認
  • アカウントIDが正しいか確認
  • 数分待ってからデータを確認
  • MIBプロファイルが正しく設定されているか確認
SNMPv3認証エラー

SNMPv3使用時の認証問題

  • ユーザー名とパスワードが正しいか確認
  • 認証プロトコル(MD5/SHA)が一致しているか確認
  • 暗号化プロトコル(AES/DES)が一致しているか確認
  • デバイス側のSNMPv3設定を確認

CSV データ入力

期待されるCSV形式: device_name,device_ip,port,snmp_version,snmp_comm,oid,provider,description,poll_time_sec,tag.location,tag.environment,...
portとpoll_time_secは省略可能です(空にすると設定に含まれません)

設定ファイル入力

YAML形式の設定ファイルからデバイス情報を抽出してCSV形式に変換します