アプリケーションやインフラ同様、それらをつなぐネットワークの監視も重要です。
New Relic ではアプリケーション、インフラストラクチャ、デジタルエクスペリエンスに関するデータだけでなく、関連するネットワークのデータも収集することが可能です。これまでSNMPやNetFlowなどネットワーク関連データをNew Relicに送信するためにはネットワークデータの収集モジュールであるktranslateをDockerコンテナとしてデプロイする必要がありました。
この度Linuxのパッケージインストール方法がリリースされ、より柔軟にネットワークデータを収集できるようになりました。本ブログはLinuxマシンにktranslateのパッケージをインストールし、ネットワーク機器からデータをNew Relic に送信する方法をご紹介します。
※本ブログではネットワーク機器側の設定に関しては紹介しておりません。各機器に合わせて設定をお願い致します。
SNMPパッケージインストール手順
例としてSNMPのデータ送信が行えるようLinuxマシンに設定する手順を紹介します。
※事前にネットワーク機器のSNMPを有効化しインストール予定のLinuxマシンと疎通できることを確認してから下記手順を進めてください
(1)「Add data」->「Network」->「SNMP」を選択
(2)複数アカウントが存在する環境の場合はアカウントを選択
(3)SNMPが選択されていることを確認し「Continue」をクリック
(4)「Package manager」をクリックし「Continue」をクリック
(5)SNMPのバージョンを選択し、必要項目を記入し「Continue」をクリック
※下図はv2cを選択した場合に表示されるものです。選択したバージョンに合わせて必要項目を記載してください
(6)Agent Name にエージェント名を設定し「Continue」をクリック
今後複数の機器にインストールした際にどの機器から収集された何のデータか判別できるよう一意なエージェント名での設定が推奨
(7)aptもしくはyumをLinuxマシン上で実行
合わせてktranslateの環境変数定義ファイルとsnmpのyaml設定ファイルの設定を行う
表示内容をLinuxマシン上で実行することで必要ファイルの作成は可能
(8)設定が完了したらktranslateサービスを対象Linuxマシンで再起動し「Next」をクリック
(9)既にデバイス側を設定し、ktranslateサーバで受け取れていると連携されるようになる
(10)しばらくするとDevice performanceに表示される
同一Linuxマシンを使い別のネットワークデータをNew Relicに送信できるようにしたい場合
前項でSNMPの手順を紹介しましたが、SyslogやNetworkFlowをNew Relicにデータを送信したい場合にもそれぞれ設定を行う必要があります。これはSNMPのバージョン違いやSyslog、複数のNetworkFlowTypeなどの場合も同様です。これらのデータをNew Relicに送信したい場合には、同一Linuxマシン上に設定を追加することで実現可能です。送信したいデータ毎にLinuxマシンを用意する必要がないため是非お試しください。
例として先ほどSNMPを設定したLinuxマシンにSyslog送信設定を追加する手順をご紹介します。
(1)「Add data」->「Network」->「Syslog」を選択
(2)複数アカウントが存在する環境の場合はアカウントを選択
(3)Syslogが選択されていることを確認し「Continue」をクリック
(4)「Package manager」をクリックし「Continue」をクリック
(5)Agent Name にエージェント名を設定し「Continue」をクリック
今後複数の機器にインストールした際にどの機器から収集された何のデータか判別できるよう一意なエージェント名での設定が推奨
(6)パッケージはすでにインストールされているため、ここまで表示されたら次のステップにすすむ
(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
(11)設定したサービス名がそれぞれNew Relicで認識されていることを確認
(12)しばらくするとSyslogも受信しNew Relic上で見えるようになる
まとめ
Linuxへのパッケージインストールが可能となったことで、ネットワークデータのNew Relicへの送信方法の選択肢が増えました。
まずはLinuxサーバを用意しネットワークのデータ送信をお試しください!
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。