- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
SNMP トラップとは、SNMP 対応デバイスから SNMP マネージャーに送信される通知です。ネットワークデバイスが、機器の状態が突然変化するなどの異常な動作に遭遇した場合、デバイスは SNMP トラップイベントをトリガーします。
SNMP トラップの監視は、デバイスが不安定なために気付かないかもしれない問題をキャプチャするのに役立ちます。たとえば、インターフェイスが 15 秒ごとに使用可能な状態と使用不可能な状態の間を行き来している場合、60 秒ごとに実行されるポールに依存すると、ネットワークの不安定さの程度を誤って判断してしまう可能性があります。また、トラップは、デバイスのバッテリーやシャーシの健全性など、特定のハードウェアコンポーネントの可視性のギャップを埋めることができます。
Datadog Agent v7.37+ は、SNMP トラップのリッスンをサポートしており、特定のトラップイベントに対するモニターを設定することが可能です。
SNMP トラップのリッスンを有効にするには、datadog.yaml
に以下を追加します。
network_devices:
namespace: <NAMESPACE> # オプション、デフォルトは "default" です。
snmp_traps:
enabled: true
port: 9162 # どのポートでトラップをリッスンするか
community_strings: # v2 トラップで許可するコミュニティ文字列を指定します
- <STRING_1>
- <STRING_2>
bind_host: 0.0.0.0
users: # v3 ユーザー 1 名のみに限定
- username: 'user'
authKey: 'fakeKey'
authProtocol: 'SHA' # 選択肢: MD5、SHA、SHA224、SHA256、SHA384、SHA512
privKey: 'fakePrivKey'
privProtocol: 'AES' # 選択肢: DES、AES (128 ビット)、AES192、AES192C、AES256、AES256C
注: 複数の v3 ユーザーとパスワードはサポートされていません。お客様の環境でこれが必要な場合は、Datadog サポートにお問い合わせください。
ネットワークデバイスモニタリングと同様に、ネームスペースをタグとして使用して、同じプライベート IP を共有する可能性がある複数のネットワークデバイスを区別することができます。たとえば、ニューヨークとパリの 2 つのルーターが同じプライベート IP を共有している場合を考えてみましょう。ニューヨークのデータセンターに 1 つ、パリのデータセンターにもう 1 つの Agent があるはずです。これらには、それぞれ namespace: nyc
と namespace: paris
というタグを付けるとよいでしょう。
ネームスペースは、SNMP トラップから送信デバイス、または送信デバイスから SNMP トラップへの一意なピボットとして使用することができます。
複数の Agent 構成間で一貫性を持たせることが重要です。例えば、2 つの Agent を構成している場合 (例えば、1 つはトラップ収集用、もう 1 つはメトリクス用)、ネームスペースが両方の場所に存在することを確認する必要があります。または、ネームスペースがどちらにも存在しないことを確認します。
各 SNMP トラップには、特定の OID ベースのフォーマットがあります。Datadog Agent は、OID をより読みやすい文字列に変換するための_解決_ステップを実行します。
SNMP トラップは、以下の要素から構成されます。
OID:value
) のリストです。デコードは Agent 側で行われ、ディスク上の {TX-PL-LABEL}lt;PATH_TO_AGENT_CONF.D>/snmp.d/traps_db/dd_traps_db.json.gz
に格納されたマッピングを使用します。Datadog は、11,000 以上の異なる管理情報ベース (MIB) をサポートしています。
マッピングは TrapsDB ファイルとして保存され、YAML または JSON を使用することができます。
mibs:
- NET-SNMP-EXAMPLES-MIB
traps:
1.3.6.1.4.1.8072.2.3.0.1:
mib: NET-SNMP-EXAMPLES-MIB
name: netSnmpExampleHeartbeatNotification
vars:
1.3.6.1.4.1.8072.2.3.2.1:
name: netSnmpExampleHeartbeatRate
{
"mibs": [
"NET-SNMP-EXAMPLES-MIB"
],
"traps": {
"1.3.6.1.4.1.8072.2.3.0.1": {
"mib": "NET-SNMP-EXAMPLES-MIB",
"name": "netSnmpExampleHeartbeatNotification"
}
},
"vars": {
"1.3.6.1.4.1.8072.2.3.2.1": {
"name": "netSnmpExampleHeartbeatRate"
}
}
}
Agent の機能を拡張するために、独自のマッピングを作成し、{TX-PL-LABEL}lt;PATH_TO_AGENT_CONF.D>/snmp.d/traps_db/
ディレクトリに配置します。
これらのマッピングは手で書くこともできますし、Datadog の開発者ツールキットである ddev
を使用して MIB の一覧からマッピングを生成することもできます。
前提条件:
すべての MIB を専用のフォルダに入れます。そして、次を実行します:
ddev meta snmp generate-traps-db -o ./output_dir/ /path/to/my/mib1 /path/to/my/mib2 /path/to/my/mib3 ...
MIB に依存関係がある場合、ddev
は依存関係が見つかればオンラインで取得します。あるいは、すべての依存関係を別のフォルダに置いて、--mib-sources
パラメータでそのフォルダを指定します。