web-dev-qa-db-ja.com

Nagios / Zenossから別のシステムに監視データをプッシュする

さまざまな時系列分析を行うシステムを構築しましたが、監視ツールからデータを供給したいと思います。私はすでにテスト環境にNagiosをセットアップしているので、そこから取得することを好みます。しかし、2番目の選択肢として、テスト用のZenossインスタンスにアクセスでき、Zenossの回答もいただければ幸いです。

欲しいもの

複数のデバイス上の複数のKPIの時系列が必要です。

理想的にはデータ形式を指定できますが、必要な情報が含まれている限り、受信時に変換できます。必要な情報は

  • デバイス識別子(例: 10.2.42.2またはUbuntu-42A
  • 監視対象のコンポーネント(例: [〜#〜] cpu [〜#〜]またはメモリ
  • KPI例: %UsageKBytes Available
  • KPIの値
  • タイムスタンプ

最後に、HTTP経由でデータを送信したいと思います(今のところ、後でHTTPS経由で)。

アラートの場合はすでにこれを行うことができます-たとえば、しきい値に違反した場合、デバイスIPなどをパラメーターとして使用して私の単純なスクリプトを呼び出すようにNagiosを構成する方法を知っています-スクリプトはHTTPリクエストを実行します。しかし、これをすべてのポーリングで起動するように設定する方法はわかりません。

私が欲しくないもの

アラートデータは必要ありません。生の時系列が必要です。

このデータを取得するためにNagiosをポーリングしたくありません。ポーリング間隔はさまざまであり、不要なネットワークトラフィックを回避したいと思います。

この質問 を確認しましたが、スレーブNagiosノードからマスターNagiosノードにデータを送信しているようです。

1

これは、分散監視を目的とした部分で行うことができます。

たとえば、 ocspコマンド を使用して、すべてのチェック結果を別の場所に送信します。コマンドdefは、curlなどを介してperfdataをプッシュするスクリプトを指すことができます。

0
Keith

nagios.cfgに追加しました

  • obsess_over_services=1
  • ocsp_command=OUR_COMMAND_NAME

次に、commands.cfgで新しいコマンドを定義しました。

  • command_name OUR_COMMAND_NAME
  • command_line /path/to/our/script

スクリプトは次のパラメータを受け取ります。

  1. ホスト名
  2. サービスの説明
  3. サービス状態
  4. 関連するプラグインからのメッセージ

私の質問を参照すると、必要なデバイスはこのホスト名であり、コンポーネントとKPIはサービスの説明とプラグインメッセージから抽出できます。

ただし、プラグインメッセージはマシンよりも人間向けに記述されているため、これらの値を取得するには、少し解析作業を行う必要があります。

OK - 1.05 GB used (1.05 GB RAM + 0.00 GB SWAP, this is 32.4% of 3.24 GB RAM)

しかし、少なくともフォーマットは一貫しているので、私は文句を言いません。

0