【試してみた】New RelicにNagiosを連携してみた

記事タイトルとURLをコピーする

みなさんこんにちは。マネージドサービス部MSS課の塩野(正)です。

New Relicでは色々なサードパーティ製品と連携してデータを取得することができます。 今回はNagiosという監視システムと連携した場合にどのような設定が必要になるか、どのような情報が連携されるかといった観点で記事を作成しました。

想定読者

  • New Relicを使用している人
  • Nagiosサーバを利用したことがある人

Nagiosとは?

まず、Nagiosについて簡単におさらいしましょう。NagiosはオープンソースのITインフラを監視するための監視システムです。 機能的にはサーバーやネットワーク機器などの状態を監視し、問題が発生した際にアラートを発することができるといったよくある監視システムの一つになります。

New RelicとNagiosの統合の流れ

New RelicでNagios統合する場合、ざっくりとした設定手順は以下のようなものになります。

  1. New Relic Infrastructure エージェントをインストールします。
  2. Nagios統合(nri-nagios)をインストールします。
  3. 設定ファイル(nagios-config.yml)を編集して、Nagiosのサービスチェックを定義します。
  4. New RelicプラットフォームでNagiosのデータを表示・分析します。

詳しくは下記ドキュメントをご参照ください。

docs.newrelic.com

インストールと設定

では、具体的なインストールと設定の手順を見ていきましょう。

1. New Relic Infrastructure エージェントのインストール

まず、Nagiosサーバ側にInfrastructure エージェントをインストールする必要があります。 New Relicのアカウントにログインし、New Relicの管理画面の中の Add data の項目からインストール対象のOSを選択し、 ガイド付きインストールの画面から環境に合わせたインストールコマンドを取得し実行します。

例えば、Linux環境の場合は以下のようなコマンドになります。

curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | \
bash && sudo NEW_RELIC_API_KEY=YOUR_API_KEY NEW_RELIC_ACCOUNT_ID=YOUR_ACCOUNT_ID \
/usr/local/bin/newrelic install

インストールコマンドを実行すると下記のようなメッセージが表示され、New RelicのInfrastructureエージェントがインストールされます。

Infrastructure エージェントのインストールの最後に、どのようなプラグインがインストールされたか確認ができます。 ここでは、Infrastructure エージェント以外にApatcheとログのインテグレーションのインストールが完了しており、Nagiosインテグレーションのインストールに失敗していることが確認できました。 この時点ではNagiosインテグレーションのインストールに失敗していても問題ありませんので、そのまま次に進みます。

2. Nagios統合プラグインのインストール

New Relicのアカウントにログインし、New Relicの管理画面の中の Add data の項目からNagiosと入力して検索すると、下記のような項目が表示されますので下記のどちらかをクリックします。

ライセンスキーは既存のものを流用していただいても問題ありませんが、ここでは便宜上新しいキーを作成しています。

Nagiosプラグインが指定されたフォルダにあるかどうかを確認して、もしプラグインがなければ先にインストールするような手順となります。 OSのバージョンによってPathが異なる場合がありますので、適宜読み替えてください。

ちなみにInfrastructure エージェントのインストールログでプラグインの存在確認をしており、Infrastructureエージェントのインストール時にフォルダやプラグインのファイルが存在している場合は、そのままInfrastructureエージェントのインストール時にNagiosインテグレーションもインストールされます。

今回の検証用サーバでは、Nagiosプラグインは別の場所にインストールされていましたので、シンボリックリンクで対応したいと思います。

下記のコマンドを使用して、/usr/local/nagios/libexec/ にアクセスした際に /usr/lib64/nagios/plugins/ 配下のフォルダの中のプラグインを利用できるように設定します。 もしNagiosサーバ側にNagiosプラグイン(NRPEプラグイン)が導入されていない場合は、先にNagiosのクライアントソフトやNagiosプラグインを導入してください。

$ mkdir /usr/local/nagios/libexec/
$ sudo ln -s /usr/lib64/nagios/plugins/* /usr/local/nagios/libexec/

次の画面に進むとNagiosインテグレーションのインストールコマンドが表示されますので、このコマンドを使用してインストールしてください。

インストールコマンドを実行するとおなじみの画面が表示されますが、そのまましばらく待つとプラグインのインストールが実行され正常にインストールが完了したことが確認できるようになります。

3. 設定ファイルの編集

インストールが完了したら、/etc/newrelic-infra/integrations.d/nagios-config.yml ファイルを編集して、監視したいNagiosのサービスチェックを定義します。

例えば下記のように設定しますが、この設定例ではSSHのサービスやICMP、ディスク使用量などを監視するNagiosチェックの定義となります。

service_checks:
    # name is a user-defined name to identify the service check

  - name: check_users
    # command is a command whose arguments are provided as an array of strings
    command: ["/usr/local/nagios/libexec/check_users", "-w", "5", "-c", "10"]
    parse_output: true
    # labels are an optional block that provide additional user-defined
    # key-value pairs to identify and group the service check
    labels:
      env: staging
      key1: val1

  - name: check_yum
    command: ["/usr/local/nagios/libexec/check_ssh", "localhost"]
    parse_output: true

  - name: check_ping_node1
    command: ["/usr/lib64/nagios/plugins/check_ping", "-w", "100.0,20%", "-c", "500.0,60%", "-H", "<クライアントIPアドレス>"]
    parse_output: true

  - name: check_disk_node1
    command: ["/usr/lib64/nagios/plugins/check_disk", "-w", "20%", "-c", "10%", "-p", "/", "-H", "<クライアントIPアドレス>"]
    parse_output: true

4. New Relicでの確認

設定が完了したらNew Relicのダッシュボードでデータが表示されているか確認します。 one.newrelic.com > Infrastructure > Third-party servicesに移動し、Nagios統合のリンクを選択します。

もしNagiosのデータをダッシュボードやアラートなどに二次利用する場合はメトリクスとしてNagiosからの情報が収集できているかが重要になりますが、Metrics & Event の情報を見る限り数値データとして届いていない(Nagiosの監視データがメトリクスとして表現されていない)ため、そのあたりを考慮すると転送されたデータを使ってできること、できないことを事前に検討した上でプラグインを導入するかどうか判断したほうがよいのかもしれません。

まとめ

New Relicのひとつの機能であるNagios統合について実際に設定してどのようなデータが送信されるか試してみました。 既存システムと簡単に連携できるため、New Relicのエージェントがインストールできないような機器の監視を統合する場合にメリットがありそうな半面、Nagios統合したとしてもリッチなデータの取得まではできなさそうなので、用途を絞って使うとよさそうに感じました。

こちらの記事がどなたかのお役に立てれば幸いでございます。

◆ 塩野 正人
◆ マネージドサービス部 所属
◆ X(Twitter):@shioccii
◆ 過去記事はこちら

前職ではオンプレミスで仮想化基盤の構築や運用に従事。現在は運用部隊でNew Relicを使ってサービス改善に奮闘中。