ようへいの日々精進XP

よかろうもん

sensu で監視システムを作ってます(今までのまとめ)

はじめに

一連の sensu 関連の記事をざっくりまとめた。


構成

構成図

現在の構成をざっくり書くと以下のような構成。

f:id:inokara:20140323234404p:plain

使っている技術

  • sensu(Redis や RabbitMQ も含む)
  • AWSSNS(通知)
  • Elasticsearch と kibana(イベント情報の収集、メトリクスの収集、可視化)

メモ、気づいた点

sensu のインストール、設定

  • ほぼドキュメント通り
  • chef や puppet でのインストールが推奨されているが基本的なインストールは RPM パッケージを手動でインストールした
  • 但し、監視対象の追加(設定とプラグインの配布)は chef の野良レシピ*1で配布することで面目を保っている*2
  • 監視スクリプトは全てのホストで必要になるが、監視設定は sensu-server のみに設定する
  • Redis や RabbitMQ の外部システムの面倒を見なければいけないのがちょっと不安(運用実績が無無いので)

sensu の動作等

  • sensu-client から sensu-server へメトリクスをプッシュ(RabbitMQ へプッシュ)しているのでクライアント追加による sensu-server への設定がほぼ不要(嬉しい)
  • 通知やグラフ化等のツールを自由に選ぶことが出来る
  • JSON が共通言語(監視結果や動作ログ)である
  • プラグインで機能を追加していくという設計と Ruby で実装されているという点で sensu の動作自身を追うことが出来る
  • sensu-server を再起動するとなぜか sensu-api が落ちることがある
  • 設定ファイル名は自由に付けても動くのは嬉しいけど色々と迷う
  • プラグインを書きたい場合には sensu-plugin を入れておきたい
  • 同じくハンドラを書きたい場合にも sensu-plugin も入れておきたい

ハンドラスクリプトを作ってみて

  • sensu-handlerrequire しておけば @event の中からイベントデータが取り出せてます
  • スクリプト自体は Ruby である必要は無さそう

〆の言葉

  • 引き続き、気づいたら書いていく
  • 何度か言ってるが sensu イイと思います!

todo

  • Graphite ととの連携
  • ハンドラスクリプトを色々と作ってみる

*1:自作レシピ

*2:なんの?