さまざまな時系列分析を行うシステムを構築しましたが、監視ツールからデータを供給したいと思います。私はすでにテスト環境にNagiosをセットアップしているので、そこから取得することを好みます。しかし、2番目の選択肢として、テスト用のZenossインスタンスにアクセスでき、Zenossの回答もいただければ幸いです。
欲しいもの
複数のデバイス上の複数のKPIの時系列が必要です。
理想的にはデータ形式を指定できますが、必要な情報が含まれている限り、受信時に変換できます。必要な情報は
最後に、HTTP経由でデータを送信したいと思います(今のところ、後でHTTPS経由で)。
アラートの場合はすでにこれを行うことができます-たとえば、しきい値に違反した場合、デバイスIPなどをパラメーターとして使用して私の単純なスクリプトを呼び出すようにNagiosを構成する方法を知っています-スクリプトはHTTPリクエストを実行します。しかし、これをすべてのポーリングで起動するように設定する方法はわかりません。
私が欲しくないもの
アラートデータは必要ありません。生の時系列が必要です。
このデータを取得するためにNagiosをポーリングしたくありません。ポーリング間隔はさまざまであり、不要なネットワークトラフィックを回避したいと思います。
この質問 を確認しましたが、スレーブNagiosノードからマスターNagiosノードにデータを送信しているようです。
これは、分散監視を目的とした部分で行うことができます。
たとえば、 ocspコマンド を使用して、すべてのチェック結果を別の場所に送信します。コマンドdefは、curlなどを介してperfdataをプッシュするスクリプトを指すことができます。
nagios.cfg
に追加しました
obsess_over_services=1
ocsp_command=OUR_COMMAND_NAME
次に、commands.cfg
で新しいコマンドを定義しました。
command_name OUR_COMMAND_NAME
command_line /path/to/our/script
スクリプトは次のパラメータを受け取ります。
私の質問を参照すると、必要なデバイスはこのホスト名であり、コンポーネントとKPIはサービスの説明とプラグインメッセージから抽出できます。
ただし、プラグインメッセージはマシンよりも人間向けに記述されているため、これらの値を取得するには、少し解析作業を行う必要があります。
OK - 1.05 GB used (1.05 GB RAM + 0.00 GB SWAP, this is 32.4% of 3.24 GB RAM)
しかし、少なくともフォーマットは一貫しているので、私は文句を言いません。