web-dev-qa-db-ja.com

サーバー(監視対象クライアントではない)でアラームしきい値が定義されているSensu代替(?)

質問/ TLDR;

(SensuやNagiosのように)監視対象のクライアントサーバーではなく、中央の監視サーバーでアラームしきい値を定義するSensuの代替(つまり、RabbitMQに基づくオペレーティングシステムの監視エージェント/サーバー)はありますか?

RabbitMQが必要なので、Zabbix etalは必要ありません。

背景:

オーケストレーションツール(Puppet et al)をインストールできない大規模な環境(WindowsおよびRHEL)があるため、インストールされるサービスの量を最小限に抑える必要があります。

システム情報を収集し、ログを(Logstashに)中継し、リソース消費についてレポートする単一のエージェントを開発できるかどうかを調査しています。これらすべての値をRabbitMQにプッシュしてから、Logstashがログをサブスクライブし、監視サービスがリソースメトリックをサブスクライブし(そしてそれらからアラームを作成し)、CMDBシステムがシステム情報をサブスクライブできます。

ただし、リソース消費に関する情報を受け取り、監視サーバーでアラームを作成するだけで、アラームのしきい値を変更するために各サーバーのしきい値を変更する必要はありません。

そのようなエージェントを見つけるのは私だけではありません...

説明:

Sensu監視の下のサーバーでディスクが不足している場合、Sensuエージェントはディスク領域をチェックし、そのサーバーで定義されているCRITICALしきい値と比較してしきい値を超えると、RabbitMQを介して中央監視サーバーにCRITICALアラームが送信されます。 Puppetなどを使用せずにしきい値を変更するには、サーバーにログインする必要があります(右?)

私がこのように機能する方法は、監視エージェントがディスクスペースをチェックするときに、使用可能なディスク(または使用済みディスク)の量を送信することです。および合計など)RabbitMQを介して中央サーバーに送信され、中央サーバーはその値を中央サーバーで定義されたしきい値と比較し、必要に応じてアラームを送信します。

しきい値を変更する必要がある場合は、中央サーバーでしきい値を変更するか、複数のサーバーからの複数の値を比較してアラームを作成できます。

Nagiosとの互換性を採用するという決定は理解していますが、これはSensuに関する私の主な問題です。

中央サーバー->監視対象サーバーのトラフィックが必要ない場合も望ましいでしょう。中央サーバーがしきい値をエージェントに送信し、エージェントがしきい値を「ローカル」として実行するという問題が発生する可能性があると思います。環境のためのネットワークはこれを非常にトリッキーにします。

誰かが持っているかもしれないアイデアをありがとう!

5
Hace

オープンソースコンポーネントを使用して、次のコンポーネントを使用します(RabbitMQを介してメトリックを送信する必要がある場合)。

  1. クライアント側で collectd を使用して、メトリックをRabbitMQに送信します AMQPプラグイン
  2. graphite-amqp-tools を使用してRabbitMQからのメッセージを消費し、それらを Graphite に送信します。

これで、Graphiteにメトリックが作成されたので、リソース消費量を照会できます。私の$ WORKの環境では、Nagiosサーバーにアラートしきい値を設定して、どのGraphiteをクエリするかをチェックしています。しかし、Graphite(グラフ、json、csv、プレーンテキストの結果を返すことができるクエリ用のhttpインターフェイスがあります)ができたので、Graphiteをクエリできる限り、何でもビルド/使用できます。

3
Dave Wongillies

しきい値は、sensu監視サーバー側で定義できます。9ページを参照してください http://samples.leanpub.com/sensumonitoringandmetrics-sample.pdf (ただし、サーバーでクライアントが定義されている場合は、safe_mode = falseを確認してください)クライアントのものと正確に一致しません。12ページを参照してください)

1
jfburdet

はい、これはまさにdataloop.ioが行っていることです。 Sensuと同様に、リアルタイムのメトリックと単純な構成にキューベースのアーキテクチャを使用しますが、アラートはNagios/Sensuのようなスクリプトだけでなくサーバー側で構成できます。

Sensuはまた、グラフを取得するためにGraphiteのような他のものをインストールする必要があるため、セットアップは非常に簡単ではありません。

0
dgildeh

私がそれを正しく理解していれば、データをRabbitMQにプッシュする必要があります。それでは、報告されたデータをRabbitMQにプッシュする方法についてのトピックではありませんか?

たぶんあなたはいくつかのオプションを使うことができます:

  • エージェントレス監視-古い(良い)snmpを使用して、そのデータを解析できますonサーバー。それを行うことができる多くのツールがあり、それからあなたが望むところにそれを転送することができます。

  • エージェントベースの監視-たとえば、promise(中央サーバーからプルされた)をチェックできるcfengineを使用したり、ファイルシステムの状態をレポートしてデータを解析したりすることができます。

0
jirib