ガイド付きインストール プロセスを使用して SNMP 監視エージェントをインストールすることも、エージェントを手動でインストールすることもできます。このドキュメントでは、このインストール プロセスを開始するための前提条件と、インストール オプションの段階的な説明について説明します。
前提条件
始める前に、 New Relic アカウントにサインアップする必要があります。エージェントを手動でインストールすることを選択した場合は、以下も必要です。
NewRelicアカウントID 。
New Relic
。
SNMP 監視エージェントをDockerまたは Podman のコンテナーとしてデプロイすることをお勧めします。 必要であれば、Linux でベアメタル サービスとしてインストールすることもできます。
SNMP 監視用のエージェントをデプロイするには、Docker コンテナを使用することをお勧めします。これを使用するには、次のものが必要です。
- Dockerがサポートする Linux Dockerプラットフォーム の 1 つに がインストールされます。
- コマンドライン経由で新しいコンテナを起動する機能。
Podman コンテナを使用してエージェントをリリースする場合は、次のものが必要です。
- PodmanがサポートするLinuxプラットフォームのいずれかにインストールされたPodman
- コマンドライン経由で新しいコンテナを起動する機能
Linux を使用してエージェントをサービスとしてインストールする場合は、次のものが必要です。
ホストへの SSH アクセス
アプリケーションとサービスをインストール/削除するためのアクセス
サポートされているオペレーティング システムは次のいずれかです。
- CentOS 8
- Debian 12 (本の虫)
- Debian 11 (ブルズアイ)
- Debian 10 (バスター)
- レッドハットエンタープライズリナックス9
- Ubuntu 20.04 (フォーカル LTS)
- Ubuntu 22.04 (ジャミー LTS)
- Ubuntu 23.04 (月版)
重要
SNMP トラップを受信するには、エージェントは UDP 162 にバインドする必要があります。ホストベースのインストールでは、インストール プロセス中に次のコマンドが含まれます。実行すると、KTranslate は昇格された特権で実行されます。
sudo setcap cap_net_bind_service=+ep /usr/bin/ktranslate
ネットワーク環境とネットワーク デバイス自体にも前提条件があります。
SNMP のネットワーク セキュリティの前提条件を確認します。
サポートされているSNMPバージョン
当社のネットワーク監視コンテナは、Traps と Informs の両方を含む、SNMP のすべてのメジャー バージョン (v1、v2c、および v3) をサポートしています。さらに、SNMP v3 は次の認証およびプライバシー設定をサポートしています。
設定 | プロトコル |
---|---|
認証 |
|
認証 |
|
認証 |
|
認証 |
|
認証 |
|
認証 |
|
認証 |
|
プライバシー |
|
プライバシー |
|
プライバシー |
|
プライバシー |
|
プライバシー |
|
プライバシー |
|
プライバシー |
|
ヒント
SNMPで読み取り専用のコミュニティ文字列/認証を使用することをお勧めします。
NewRelicでSNMPデータ監視を設定する
に行く one.newrelic.com > All capabilities > Add more data
Networkが表示されるまで下にスクロールし、 SNMPをクリックします。
ガイド付きインストール プロセスで説明されている手順に従ってください。 docker 、Podman、Linux を使用できます。
one.newrelic.com > All capabilities > Add more data > Network > SNMP SNMP データ監視を設定します。
New Relic UI でネットワーク パフォーマンス データを調査します。
SNMP エージェントの手動インストールについて読む前に、エラーを避けるためにガイド付きインストール プロセスの使用を検討してください。
Dockerがインストールされている Linux ホストで、次のいずれかを実行して ktranslate イメージをダウンロードします。
snmp-base.yaml
ファイルをdockerユーザーのローカル$HOME
ディレクトリにコピーし、次のコマンドを実行して コンテナーを破棄します。bash$cd ~$id=$(docker create kentik/ktranslate:v2)$docker cp $id:/etc/ktranslate/snmp-base.yaml .$docker rm -v $idsnmp-base.yaml
ファイルを編集し、discovery.cidrs
属性とdiscovery.default_communities
属性をネットワークに適切な値に定義します。ヒント
検出されたすべての MIB をglobal.mibs_enabled
属性に自動的に追加するには、discovery.add_mibs: true
を設定することをお勧めします。また、セキュリティ体制が強化されたデバイスでの検出の問題を回避するには、discovery.check_all_ips: true
設定することをお勧めします。ネットワーク監視エージェントを起動して、ターゲット デバイスをポーリングし、受信 SNMP トラップ メッセージをリッスンします。
$CONTAINER_SERVICE
をコンテナの一意の名前に置き換え、$YOUR_NR_LICENSE_KEY
と$YOUR_NR_ACCOUNT_ID
を実際の値に置き換えます。bash$docker run -d --name ktranslate-$CONTAINER_SERVICE --restart unless-stopped --pull=always -p 162:1620/udp \>-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 \>-metrics=jchf \>-tee_logs=true \>-service_name=$CONTAINER_SERVICE \>-snmp_discovery_on_start=true \>-snmp_discovery_min=180 \>nr1.snmpNew Relic UI でネットワーク パフォーマンス データを調査します。
Podman がインストールされているホストで、次のコマンドを実行してktranslateイメージをダウンロードします。
- bash$podman pull docker.io/kentik/ktranslate:v2
snmp-base.yaml
ファイルを Podman ユーザーのローカル$HOME
ディレクトリにコピーし、次のコマンドを実行してコンテナを破棄します。bash$cd ~$id=$(podman create kentik/ktranslate:v2)$podman cp $id:/etc/ktranslate/snmp-base.yaml .$podman rm -v $idsnmp-base.yaml
ファイルを編集し、discovery.cidrs
属性とdiscovery.default_communities
属性をネットワークに適切な値に定義します。ヒント
検出されたすべての MIB をglobal.mibs_enabled
属性に自動的に追加するには、discovery.add_mibs: true
を設定することをお勧めします。また、セキュリティ体制が強化されたデバイスでの検出の問題を回避するには、discovery.check_all_ips: true
設定することをお勧めします。ルートレス Podman コンテナーは 1024 未満のポートにバインドできません。 トラップ メッセージのパケット リダイレクトを処理するには、UDP ポート 162 に到着するパケットをターゲットとする
iptables
ルールを作成する必要があります。bash$sudo iptables -t nat -A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 1620ネットワーク監視エージェントを起動して、ターゲット デバイスをポーリングし、受信 SNMP トラップ メッセージをリッスンします。
$CONTAINER_SERVICE
をコンテナの一意の名前に置き換え、$YOUR_NR_LICENSE_KEY
と$YOUR_NR_ACCOUNT_ID
を実際の値に置き換えます。bash$podman run -d --name ktranslate-$CONTAINER_SERVICE --userns=keep-id --restart unless-stopped --pull=always --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 \>-metrics=jchf \>-tee_logs=true \>-service_name=$CONTAINER_SERVICE \>-snmp_discovery_on_start=true \>-snmp_discovery_min=180 \>nr1.snmpNew Relic UI でネットワーク パフォーマンス データを調査します。
- パッケージマネージャーに応じて、以下のいずれかのコマンドを使用してインストールします。
ktranslate
Yum:
bash$curl -s https://packagecloud.io/install/repositories/kentik/ktranslate/script.rpm.sh | sudo bash && \>sudo yum install ktranslateApt:
bash$curl -s https://packagecloud.io/install/repositories/kentik/ktranslate/script.deb.sh | sudo bash && \>sudo apt-get install ktranslate
ktranslate
で使用される環境変数を定義します:bash$sudo tee "/etc/default/ktranslate.env" > /dev/null <<'EOF'$NR_ACCOUNT_ID=$YOUR_NR_ACCOUNT_ID$NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY$KT_FLAGS="-snmp /etc/ktranslate/snmp-base.yaml \>-metrics=jchf \>-tee_logs=true \>-service_name=$CONTAINER_SERVICE \>-snmp_discovery_on_start=true \>-snmp_discovery_min=180 \>nr1.snmp"$EOF$$# ensure /etc/default/ktranslate.env is owned by ktranslate user$sudo chown ktranslate:ktranslate /etc/default/ktranslate.env$$# Ktranslate listens for SNMP Traps on privileged port 162. Allow ktranslate to bind to this port with the following command$sudo setcap cap_net_bind_service=+ep /usr/bin/ktranslate既存の
snmp-base.yaml
設定ファイルがない場合は、次のように作成します。bash$sudo tee "/etc/ktranslate/snmp-base.yaml" > /dev/null <<'EOF'$devices: {}$trap:$listen: '0.0.0.0:162'$discovery:$cidrs:$- x.x.x.x/yy$ignore_list: []$debug: false$ports:$- 161$default_communities:$- public$default_v3: null$add_devices: true$add_mibs: true$threads: 4$replace_devices: true$check_all_ips: true$use_snmp_v1: false$global:$poll_time_sec: 300$mib_profile_dir: /etc/ktranslate/profiles$mibs_enabled:$- IF-MIB$timeout_ms: 3000$retries: 0$EOF$$# ensure /etc/ktranslate/snmp-base.yaml is owned by ktranslate user$sudo chown ktranslate:ktranslate /etc/ktranslate/snmp-base.yamlsnmp-base.yaml
ファイルを編集し、discovery.cidrs
属性とdiscovery.default_communities
属性をネットワークに適切な値に定義します。ヒント
検出されたすべての MIB をglobal.mibs_enabled
属性に自動的に追加するには、discovery.add_mibs: true
を設定することをお勧めします。また、セキュリティ体制が強化されたデバイスでの検出の問題を回避するには、discovery.check_all_ips: true
を設定することをお勧めします。snmp-base.yaml
ファイルに変更を適用するには、ktranslate
サービスを再起動します。bash$sudo systemctl restart ktranslateNew Relic UI でネットワーク パフォーマンス データを調査します。
SNMPトラップのオプションのインストール
状況によっては、SNMP トラップ メッセージのコレクションを専用のコンテナーに分離すると便利な場合があります。 これは、大規模な環境でのスケールを制御するのに役立つだけでなく、コンテナに障害が発生した場合に完全な停止のリスクが低い分散監視フットプリントを作成するのにも役立ちます。 このプロセスは Linux サービス インストレーションではサポートされていません。
注意: 同じコンテナーでv2c
トラップとv3
トラップの両方を監視することはできません。 両方のトラップ バージョンを監視する場合は、セカンダリ専用コンテナーを作成し、トラップ メッセージをデフォルト以外のポートで送信するように構成する必要があります。 たとえば、ポート162
にすでにv2c
トラップが設定されている場合:
v3
トラップを163
などの別のポート経由で送信するように設定します。- dockerコンテナーの引数を
-p 162:1620/udp
から-p $src:1620/udp
に少し変更します。ここで、$src
はv3
トラップが到着するポートです。
dockerがインストールされた Linux ホストで、コンテナーを実行するために使用する設定ファイルを作成します。
bash$tee "./traps-base.yaml" > /dev/null <<'EOF'$devices: {}$trap:$listen: '0.0.0.0:1620'$discovery: {}$global:$poll_time_sec: 300$timeout_ms: 30000$EOFデフォルトでは、コンテナは New Relic のデバイス名としてソース IP アドレスを使用します。これは、構成ファイルでデバイスを手動でマッピングすることで制御できます。
devices:# This key and the corresponding 'device_name'# need to be unique for each devicetrap_device1:device_name: trap_device1device_ip: x.x.x.x/yyprovider: kentik-trap-devicetrap:listen: '0.0.0.0:1620'discovery: {}global:poll_time_sec: 300timeout_ms: 30000ヒント
実行時に-dns コンテナ引数を指定してデバイス名を制御することもできます。これにより、コンテナはソース IP アドレスの検索を実行し、名前解決を試行できるようになります。
ネットワーク監視エージェントを起動して、受信 SNMP トラップ メッセージをリッスンします。
$CONTAINER_SERVICE
をコンテナの一意の名前に置き換え、$YOUR_NR_LICENSE_KEY
と$YOUR_NR_ACCOUNT_ID
を実際の値に置き換えます。bash$docker run -d --name ktranslate-$CONTAINER_SERVICE --restart unless-stopped --pull=always -p 162:1620/udp \>-v `pwd`/traps-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 \>-metrics=jchf \>-tee_logs=true \>-service_name=$CONTAINER_SERVICE \>nr1.snmpこれにより、ポート
162/udp
で SNMP トラップ メッセージをリッスンするコンテナーが起動します。KSnmpTrap
イベント タイプをクエリして、New Relic で結果を調査します。FROM KSnmpTrap SELECT *ヒント
SNMP トラップ メッセージはソース デバイスによって生成されるイベントであることを覚えておくことが重要です。New Relic にメッセージが表示されない場合は、デバイスが実際にメッセージを作成していることを確認してください。サンプル メッセージの送信に関するベンダーのドキュメントは異なりますが、Docker ホストでsnmptrap を使用して、次のようなテスト メッセージを送信できます。
bash$snmptrap -v 2c -c public localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
dockerがインストールされた Linux ホストで、コンテナーを実行するために使用する設定ファイルを作成します。
bash$tee "./traps-base.yaml" > /dev/null <<'EOF'$devices: {}$trap:$listen: '0.0.0.0:1620'$discovery: {}$global:$poll_time_sec: 300$timeout_ms: 30000$EOFデフォルトでは、コンテナは New Relic のデバイス名としてソース IP アドレスを使用します。これは、構成ファイルでデバイスを手動でマッピングすることで制御できます。
devices:# This key and the corresponding 'device_name'# need to be unique for each devicetrap_device1:device_name: trap_device1device_ip: x.x.x.x/yyprovider: kentik-trap-devicetrap:listen: '0.0.0.0:1620'discovery: {}global:poll_time_sec: 300timeout_ms: 30000ヒント
実行時に-dns コンテナ引数を指定してデバイス名を制御することもできます。これにより、コンテナはソース IP アドレスの検索を実行し、名前解決を試行できるようになります。
ルートレス Podman コンテナーは 1024 未満のポートにバインドできません。 トラップ メッセージのパケット リダイレクトを処理するには、UDP ポート 162 に到着するパケットをターゲットとする
iptables
ルールを作成する必要があります。bash$sudo iptables -t nat -A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 1620ネットワーク監視エージェントを起動して、受信 SNMP トラップ メッセージをリッスンします。
$CONTAINER_SERVICE
をコンテナの一意の名前に置き換え、$YOUR_NR_LICENSE_KEY
と$YOUR_NR_ACCOUNT_ID
を実際の値に置き換えます。bash$podman run -d --name ktranslate-$CONTAINER_SERVICE --userns=keep-id --restart unless-stopped --pull=always --net=host \>-v `pwd`/traps-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 \>-metrics=jchf \>-tee_logs=true \>-service_name=$CONTAINER_SERVICE \>nr1.snmpKSnmpTrap
イベント タイプをクエリして、New Relic で結果を調査します。FROM KSnmpTrap SELECT *ヒント
SNMP トラップ メッセージはソース デバイスによって生成されるイベントであることを覚えておくことが重要です。New Relic にメッセージが表示されない場合は、デバイスが実際にメッセージを作成していることを確認してください。サンプル メッセージの送信に関するベンダーのドキュメントは異なりますが、Docker ホストでsnmptrap を使用して、次のようなテスト メッセージを送信できます。
bash$snmptrap -v 2c -c public localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
次のステップ
SNMP データを補完するために、さらに多くのエージェントをセットアップできます。
- ネットワークがどのように使用されているかをよりよく把握するには、ネットワーク フロー データの監視を設定します。
- デバイスからシステムメッセージを洞察するには、 ネットワークsyslogコレクションを設定します。