夜勤が多くて自宅警備をあまりできないので、自宅(サーバ)は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 というファイルが出来ていると思うので、こいつを変更してやります。書き方はおなじみapacheのhttpd.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通知なんかが想定されてるようですが、プロセスが死んでたら起動してやるといった事ももしかしたら出来るかも?
参考にしたサイトとか
- Xymon監視
- 公式サイトの日本語訳がある。情報量が一番多い
- Xymon 設定のツボ
- あまり情報量無いけどピンポイントに解説がある。ログ監視とか。
- 複眼中心 : Hobbitを設定
- インストール後の設定について一通り説明があって参考になる