読者です 読者をやめる 読者になる 読者になる

kariaの日記 @ Alice::Diary

フフーン、ノリツッコミの鳩子がはてなブログ書いちゃうよー

kariaの日記です。本家サイトはside=2です。Twitter ID:@karia
過去記事へのリンクとかは最下部参照。

UbuntuではじめるXymon(旧hobbit)

tech

夜勤が多くて自宅警備をあまりできないので、自宅(サーバ)はhobbitさんに警備してもらうことにしました。

インストール

hobbitなんてパッケージ無いよ?と思ったら2009年にxymonって名前に変わったそうです。

% sudo apt-get install xymon

インストールこれ一発で終わった。なんか設定とか面倒なの想像してたけど楽ちんでした。

ただし、インストール途中で「Hobbit サーバに接続するのに使うネットワークアドレスを入力してください」というダイアログが出ます。Xymonはクライアントを複数のノードにインストールすれば一括して監視することが可能なのですが、ここではとりあえず同一ノードにサーバもクライアントも入れるので自分自身のIPアドレスを入れました。

※2014/10/30追記:Ubuntu14.04で試したところ現在は一筋縄ではいかない模様。

# a2enmod cgid

としないとCGI動かないです。あと、/etc/apache2/apache2.conf から

 <Directory />

のセクションを丸ごとコメントアウトするか、AllowOverride Noneをallにするかしないと管理画面が全く見られません。結構ハマった。

サーバ管理画面の設定

インストールが終わると、xymonのサーバ&クライアント起動に加えてapacheの再起動も走り、xymonの管理画面が見られるようになります。といっても、初期設定ではlocalhostからの接続しか受け付けないようになってるので、うちの場合はLAN内からなら閲覧できるようにしました。

/etc/apache2/conf.d/hobbit というファイルが出来ていると思うので、こいつを変更してやります。書き方はおなじみapachehttpd.confと同じなので、

Allow from localhost ::1/128 192.168.0.0/24

てな感じ。3カ所あるので3カ所とも変更しました。

さらに、管理画面で設定変更するにはユーザ名とパスワードを求められるので、そのユーザの追加をしなければなりません。

% htpasswd -c /etc/hobbit/hobbitpasswd karia

てな感じ。hobbitpasswdはデフォルトで空っぽなので、htpasswdしてあげないと誰も設定変更できません。

監視画面

この状態で、http://サーバーのIP/hobbit/へ行くとこんな感じの監視画面が見えるはずです。

この状態で既にディスク使用率やCPUなどのリソース監視は始まっています。各アイコンの意味はXymon監視「赤・黄色・緑の異なるアイコンの意味は?」にあります。この画面ではディスク使用率がいきなりヤバい感じです。デフォルトでは90%を超えるとYellow(軽微な障害)、95%でRed(障害)になります。

面白いのはtrendsのアイコンで、クリックすると様々なリソースのグラフが一覧で見る事ができます。httpで接続可否の監視なんかもしてくれてます。昔MRTGの設定とかでだいぶ苦しんだ経験かすると、ほとんどノー設定でここまで勝手に監視してくれるのはスゴい。。。

さらに各グラフをクリックすると、48時間・12日といった形でスケールの違うグラフを表示してくれます。右上の虫眼鏡アイコンでさらに拡大することも出来ますが、これは残念ながらFirefoxでは上手く動作しないようです(IEだとうまくいく)。


監視項目追加

トップ画面に話を戻すと、白アイコン(正確にはClear)で表示されている項目は「データ無し」です。実は最初PROCが白だったのですが、今は設定してあるので緑アイコンになってます。というわけでPROCに監視設定を入れてやりましょう。/etc/hobbit/hobbit-client.cfgを開き、最下部にこう書きます。

        PROC    "/usr/bin/ruby ./citrus.rb"

これはプロセス監視で、横の""で囲まれた文字列をpsの結果から探してきてくれます。上例ではCitrusの起動コマンドを指定してます。本当は設定ファイルを引数に指定して起動しているのですが、設定ファイル名を変えると監視に引っかからなくなりそうなのでPROCの設定としては入れませんでした。

デフォルトでは1プロセス以上あればOKとなっており、つまりプロセスが0個になると障害となります。プロセス個数の閾値は変更でき、個数の上限も指定できるみたいです。

アラート設定

ここまでだといろんな項目が監視できてスゴーイで終わってしまうのですが、今度は何かマズそうなとき通知してもらいましょう。hobbit-alerts.cfgにこんな風に書いてみました。

HOST=* COLOR=red
        MAIL hoge@example.com RECOVERED REPEAT=12h
HOST=* すべての監視ホスト
COLOR=red ステータスがred(障害)のときだけ通知する
MAIL hoge@example.com 指定メアドにメール通知する
RECOVERED 障害になったときだけじゃなく復旧した時もメールする
REPEAT=12h 12時間毎に通知する。デフォルトでは30分毎に送ってくるので結構ウザいです。

これでhobbitを再起動すれば、障害時にメール送ってくれるようになる……というわけではなく、自分の場合はpostfixもmailコマンドも入ってなかったので別途入れました。

% sudo apt-get install postfix 
% sudo aptitude install mailutils

この辺は他に設定解説サイトが山ほどあると思うので省略で。。。

今後の野望

ログを監視してくれる機能(msgs)がデフォルトのsyslogしか入っておらず、追加したいんだけどまだうまくいってません。。。あとはポート監視(ports)に何も設定してないのでTweetIrcGatewayのポートでも設定しておいてやりたい。プロセス監視でも十分そうな気はしますが。

あとは、アラート通知でメール送信だけでなくコマンド起動ということもできるようです。SMS通知なんかが想定されてるようですが、プロセスが死んでたら起動してやるといった事ももしかしたら出来るかも?

参考にしたサイトとか