問題
SNMPモニタリングでは、デバイスに期待されるメトリクスがすべて表示されるわけではありません。
ソリューション
次のNRQLクエリを実行して、NewRelicに存在するメトリックを特定します。
FROM Metric SELECT uniques(metricName) WHERE instrumentation.provider = 'kentik' AND device_name = '$DEVICE_NAME'SINCE 1 HOUR AGO LIMIT MAX
重要
$DEVICE_NAME
をデバイスの名前に置き換えます。
このクエリは、過去1時間にあなたのデバイスで収集されているすべての次元メトリックのリストを提供します。メトリックがリストアップされていない場合は、試してみてください。
- デバイスがターゲットOIDに応答することを確認する
- デバイスが正しいプロファイルにマッチしていることを確認する
- KTranslate が期待どおりにデバイスをポーリングしていることを確認します
- デバイスプロファイルにOIDが記載されていることを確認する
デバイスがターゲットOIDに応答することを確認する
snmpwalkユーティリティを使用して、 snmp-base.yaml
構成ファイルで構成したSNMPクレデンシャルを使用してDockerホストからメトリックを収集します。
テストが失敗した場合、そのデバイスは収集したいOIDをサポートしていない可能性が高い。これは、ベンダーが管理しているデバイス自体の制限です。
ヒント
SNMPv3を使用している場合は、機器のv3ユーザーの設定を確認してください。ほとんどの場合、デバイス管理者はv3ユーザーアカウントのMIBへのアクセスを明示的に許可する必要があります。
デバイスが正しいプロファイルにマッチしていることを確認する
前のテストに合格した場合は、 snmp-base.yaml
ファイルのmib_profile
に構成された値が正しいプロファイルファイル名と一致することを確認してください。例えば:
devices: deviceOne: ... mib_profile: cisco-catalyst.yml ...
New Relicで、次のNRQLクエリを使用してこれを確認できます。
FROM Metric SELECT latest(instrumentation.name) WHERE instrumentation.provider = 'kentik' AND device_name = '$DEVICE_NAME'
重要
$DEVICE_NAME
をデバイスの名前に置き換えます。
SNMPプロファイルのライブラリは常に更新されており、使用しているコンテナイメージに目的のプロファイル設定がない場合があります。 mib_profile
が期待されるプロファイルと一致しない場合は、構成ファイルを手動で更新するか、新しい検出を実行できます。
docker pull kentik/ktranslate:v2
を実行して変更を加える前に、常にコンテナの最新のイメージをプルする必要があります。
KTranslate が期待どおりにデバイスをポーリングしていることを確認します
前のテストに合格した場合は、デバイスから特定のメトリックを収集する際に問題が発生していることを示す{ Warn
重大度エラーがないかアカウントを確認する必要があります。
Logs UIです。
$collector.name:"ktranslate" message:"*OID failed to return results*"
NRQL。
FROM Log SELECT * WHERE `collector.name` = 'ktranslate' AND `message` LIKE '%OID failed to return results%'
期待される成果
KTranslate>cisco-7513 OID failed to return results, Metric Name: ipIfStatsHCInOctets, Profile: cisco-asr
ヒント
この例では、ターゲットデバイスcisco-7513
がcisco-asr
SNMPプロファイルにあるipIfStatsHCInOctets
OIDのメトリックを返さないことがわかります。
次に、お使いのデバイスに対して単一のSNMPポールを実行し、供給された設定を使用して、リクエストから ktranslate が受け取るものを正確に確認する必要があります。
これを行うには、 ktranslateを短期間のコンテナとして実行し、 -snmp_poll_now
フラグを使用して、 snmp-base.yaml
構成ファイル内の名前に基づいてデバイスをターゲットにします。例えば:
$docker run -d --name ktranslate-poll_now --rm --net=host \>-v `pwd`/snmp-base.yaml:/snmp-base.yaml \>-e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \>kentik/ktranslate:v2 \> -snmp /snmp-base.yaml \> -nr_account_id=$YOUR_NR_ACCOUNT_ID \> -tee_logs=true \> -service_name=poll_now \> -snmp_poll_now=$TARGET_DEVICE_NAME \> -format=new_relic_metric
このポーリングの結果は、を使用してコンテナログで確認できます。 docker logs --follow ktranslate-poll_now
デバイス・メタデータ・ポーリングの成功例
2022-01-03T23:08:50.583 ktranslate/poll_now [Info] KTranslate SNMP Device Metadata: Data received: {SysName:router123 SysObjectID:.1.3.6.1.4.1.9.1.46 SysDescr:Cisco Internetwork Operating System Software ...}2022-01-03T23:08:50.585 ktranslate/poll_now [Info] nrmFormat New Metadata for router123
デバイスの統計情報のポーリングが成功した例。
[{"metrics":[{"name":"kentik.snmp.ifInErrors","type":"count","value":0,"attributes":{"if_Speed":2,"mib-name":"IF-MIB","poll_duration_sec":60,"if_Type":"proppointtopointserial","if_AdminStatus":"up","objectIdentifier":".1.3.6.1.2.1.2.2.1.14","mib-table":"if","if_OperStatus":"up","device_name":"router123","provider":"kentik-router","if_interface_name":"Se11/0/0:16","instrumentation.name":"cisco-asr","if_Index":"63","if_Address":"10.201.0.65","eventType":"KSnmpInterfaceMetric","if_Netmask":"255.255.255.252","if_Alias":"pkt.ds1"}}]...}]
" prettified" JSONを見ると、このデバイスではポーリングが期待通りに機能していることがわかります。
[ { "metrics": [ { "name": "kentik.snmp.ifInErrors", "type": "count", "value": 0, "attributes": { "if_Speed": 2, "mib-name": "IF-MIB", "poll_duration_sec": 60, "if_Type": "proppointtopointserial", "if_AdminStatus": "up", "objectIdentifier": ".1.3.6.1.2.1.2.2.1.14", "mib-table": "if", "if_OperStatus": "up", "device_name": "router123", "provider": "kentik-router", "if_interface_name": "Se11/0/0:16", "instrumentation.name": "cisco-asr", "if_Index": "63", "if_Address": "10.201.0.65", "eventType": "KSnmpInterfaceMetric", "if_Netmask": "255.255.255.252", "if_Alias": "pkt.ds1" } } ] }]
デバイスプロファイルにOIDが記載されていることを確認する
これまでのテストにすべて合格した場合、デバイスプロファイル自体にOIDが存在するかどうかを確認します。OIDが記載されていても期待通りに動作しない場合や、OIDをプロファイルに追加する必要がある場合は、 GitHub issue を開いてリポジトリのメンテナに連絡し、解決に向けて動いてもらいます。