devops infinity symbol

アプリケーションやインフラ同様、それらをつなぐネットワークの監視も重要です。

New Relic ではアプリケーション、インフラストラクチャ、デジタルエクスペリエンスに関するデータだけでなく、関連するネットワークのデータも収集することが可能です。これまでSNMPやNetFlowなどネットワーク関連データをNew Relicに送信するためにはネットワークデータの収集モジュールであるktranslateをDockerコンテナとしてデプロイする必要がありました。

この度Linuxのパッケージインストール方法がリリースされ、より柔軟にネットワークデータを収集できるようになりました。本ブログはLinuxマシンにktranslateのパッケージをインストールし、ネットワーク機器からデータをNew Relic に送信する方法をご紹介します。

 

※本ブログではネットワーク機器側の設定に関しては紹介しておりません。各機器に合わせて設定をお願い致します。

 

SNMPパッケージインストール手順

例としてSNMPのデータ送信が行えるようLinuxマシンに設定する手順を紹介します。

※事前にネットワーク機器のSNMPを有効化しインストール予定のLinuxマシンと疎通できることを確認してから下記手順を進めてください

 

(1)「Add data」->「Network」->「SNMP」を選択

npm-package01

 

(2)複数アカウントが存在する環境の場合はアカウントを選択

npm-package02

 

(3)SNMPが選択されていることを確認し「Continue」をクリック

npm-package03

 

(4)「Package manager」をクリックし「Continue」をクリック

npm-package04

 

(5)SNMPのバージョンを選択し、必要項目を記入し「Continue」をクリック

npm-package05

※下図はv2cを選択した場合に表示されるものです。選択したバージョンに合わせて必要項目を記載してください

npm-package06

 

(6)Agent Name にエージェント名を設定し「Continue」をクリック

 今後複数の機器にインストールした際にどの機器から収集された何のデータか判別できるよう一意なエージェント名での設定が推奨

npm-package07

 

(7)aptもしくはyumをLinuxマシン上で実行

 合わせてktranslateの環境変数定義ファイルとsnmpのyaml設定ファイルの設定を行う

 表示内容をLinuxマシン上で実行することで必要ファイルの作成は可能

npm-package08

(8)設定が完了したらktranslateサービスを対象Linuxマシンで再起動し「Next」をクリック

npm-package09

 

(9)既にデバイス側を設定し、ktranslateサーバで受け取れていると連携されるようになる

npm-package10

 

(10)しばらくするとDevice performanceに表示される

npm-package11

 

同一Linuxマシンを使い別のネットワークデータをNew Relicに送信できるようにしたい場合

 

前項でSNMPの手順を紹介しましたが、SyslogやNetworkFlowをNew Relicにデータを送信したい場合にもそれぞれ設定を行う必要があります。これはSNMPのバージョン違いやSyslog、複数のNetworkFlowTypeなどの場合も同様です。これらのデータをNew Relicに送信したい場合には、同一Linuxマシン上に設定を追加することで実現可能です。送信したいデータ毎にLinuxマシンを用意する必要がないため是非お試しください。

例として先ほどSNMPを設定したLinuxマシンにSyslog送信設定を追加する手順をご紹介します。
 

(1)「Add data」->「Network」->「Syslog」を選択

npm-package12

 

(2)複数アカウントが存在する環境の場合はアカウントを選択

npm-package13

 

(3)Syslogが選択されていることを確認し「Continue」をクリック

npm-package14

 

(4)「Package manager」をクリックし「Continue」をクリック

npm-package15

 

(5)Agent Name にエージェント名を設定し「Continue」をクリック

 今後複数の機器にインストールした際にどの機器から収集された何のデータか判別できるよう一意なエージェント名での設定が推奨

npm-package16

 

(6)パッケージはすでにインストールされているため、ここまで表示されたら次のステップにすすむ

npm-package17

(7)ktranslateサーバにてそれぞれのサービスファイルを複製

   ファイル名は設定するデータの種類などに合わせて任意で設定

 ※今回は例としてSNMPは「ktrandlate-snmp」、Syslogは「ktranslate-syslog」に設定

$ sudo cp /usr/lib/systemd/system/ktranslate@.service /usr/lib/systemd/system/ktranslate-snmp.service
$ sudo cp /usr/lib/systemd/system/ktranslate@.service /usr/lib/systemd/system/ktranslate-syslog.service

(8)(7)で複製したサービスファイル内に設定された環境変数定義ファイル名を修正

 環境変数定義ファイル名は設定するデータの種類などに合わせて任意で設定

 ※今回は例としてSNMPは「ktrandlate-snmp.env」、Syslogは「ktranslate-syslog.env」に設定

$ sudo vi /usr/lib/systemd/system/ktranslate-snmp.service 
 
[Service]
EnvironmentFile=-/etc/default/ktranslate-snmp.env
 
$ sudo vi /usr/lib/systemd/system/ktranslate-syslog.service 
 
[Service]
EnvironmentFile=-/etc/default/ktranslate-syslog.env

(9)SNMPは環境変数定義ファイル名を(8)で設定した名前に変更し、Syslogはenvファイルは(6)で表示された内容を元に作成

$ sudo mv /etc/default/ktranslate.env /etc/default/ktranslate-snmp.env
$ sudo tee "/etc/default/ktranslate-syslog.env" > /dev/null <<'EOF'
※(6)で表示された内容を参照

$sudo chown ktranslate:ktranslate /etc/default/ktranslate-syslog.env

(10)それぞれサービスを起動(前項の手順で起動している場合はサービスが重複するので停止する)

$ sudo systemctl stop ktranslate.service
$ sudo systemctl start ktranslate-snmp.service
$ sudo systemctl start ktranslate-syslog.service

※サービスが停止していることを確認
$ sudo systemctl status ktranslate.service

※サービスの起動確認
$ sudo systemctl status ktranslate-snmp.service
$ sudo systemctl status ktranslate-syslog.service
npm-package21
npm-package22

 

(11)設定したサービス名がそれぞれNew Relicで認識されていることを確認

npm-package18

 

(12)しばらくするとSyslogも受信しNew Relic上で見えるようになる

npm-package19

 

まとめ

Linuxへのパッケージインストールが可能となったことで、ネットワークデータのNew Relicへの送信方法の選択肢が増えました。

まずはLinuxサーバを用意しネットワークのデータ送信をお試しください!