SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

【DevOpsDays Tokyo 2013】クラウド時代のモニタリングツール、UNIXの思想が息づくsensuチュートリアル
――Heavy Water Operations, LLC

sensuの基本機能

 sensuがやっていることは、すべてのサーバーをチェックし、その結果から特定のイベントを発生させ、イベントハンドラに送るということである。チェックデータは、exitステータスを伴って標準出力または標準エラーに出力すればよい。exitステータスは、0=OK、1=Warning、2=Critical、3以上=未定義またはユーザー定義となっている。

sensuのチェック結果はステータス値で調べる
sensuのチェック結果はステータス値で調べる

 sensuはNagiosと違い、クライアントのコレクションに対してもチェックを実行できるという。各クライアントには、サブスクリプションリストという形で名前やサービスの種類、役割などを記述する。この機能によって、1つのチェックリクエストで、複数のサーバー、特定のサーバー群などに対して一斉にチェックできる。つまりチェックのオーケストレートが可能ということだ。

チェックの定義例
チェックの定義例

 イベントはどのように生成されるのだろうか。すべてのチェックリクエストのexitステータスは検査され、非0か、それは最初に発生したものか継続しているexitステータスか、メトリック値か、といったことが判別される。これらの検査によってイベントが生成される。

クライアントでイベントを発生させる方法
クライアントでイベントを発生させる方法

イベントハンドラの起動・記述は自在

 イベントハンドラは、標準入出力によるパイプ、TCP/UDPのソケット、AMQP、Setなどによってチェック結果のイベントを受け取り、それに対するアクションを定義・記述する。ここで、Poter氏は、簡単なRubyスクリプトをスライドで紹介し、パイプチェックでイベントを受け取りメールを送信するやり方を説明した(写真)。

ハンドラを説明するPoter氏
ハンドラを説明するPoter氏

 もちろん、メールを送るだけでなくさまざまなハンドラを記述できる。クラウドサービスも利用可能なので、TwilioのようなテレフォニーAPIサービスを利用して、イベントに応じた電話を発信したりショートメッセージを送信することもできる。ストレージサービスやログサービスなどと接続してもよい。

ハンドラは各種クラウドサービスと連携させることで、高度な処理も可能
ハンドラは各種クラウドサービスと連携させることで、高度な処理も可能

次のページ
メッセージバス・redis・JSONがつなぐsensuサーバーとクライアント

この記事は参考になりましたか?

イベントレポート連載記事一覧

もっと読む

この記事の著者

中尾 真二(ナカオ シンジ)

フリーランスのライター、エディター。アスキーの書籍編集から始まり、翻訳や執筆、取材などを紙、ウェブを問わずこなす。IT系が多いが、たまに自動車関連の媒体で執筆することもある。インターネット(とは当時は言わなかったが)はUUCPの頃から使っている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7442 2013/10/11 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー