てきとうなさいと べぇたばん

Monitを使った死活監視とMuninを使ったリソース監視

cronのすてーたす

Muninを使ってきたわけだが、死活監視ができないという問題があった。

ちなみに、今回の作業はAnsible上で実行した。AnsibleについてはこのサイトのサーバーをAnsibleでDevOps化してDebianのバージョンアップを行いましたを参照。なので、以下のコマンドラインは擬似的なもの。ごめんねー

Munin

Muninについては、muninを設定するを参照した。Debian jessieになり、Apacheのバージョンが2.4になったため、少々変わったところがあったけど、特に問題なく投入できると思う。

Monitを使おう

Monitは、ブラウザからプロセスやファイルの監視ができる。M/Monitと組み合わせれば、状態監視もできる。ただし、有料。 今回は、Monitを使ってプロセスの監視を行う。

https://mmonit.com/monit/

インストールと設定

$ sudo aptitude install monit
$ sudo vi /etc/monit/monitrc

変更した部分だけ。メールのフォーマット。

set mail-format {
     from: monit@example.com
  subject: monit alert --  $EVENT $SERVICE
  message: $EVENT Service $SERVICE
                Date:        $DATE
                Action:      $ACTION
                Host:        $HOST
                Description: $DESCRIPTION

           Your faithful employee,
           Monit
}

アラートをメールで知らせてくれるようにする。ただし、立ち上がった時にもメールされるとめんどいので、その時は無効にする。

set alert email@example.com not on { instance, action }

メールサーバーの指定をする。

set mailserver localhost

これでmonitrcの編集は終了。/etc/monit/conf.d/httpd.confを作成して、以下の内容を書き込む。

set http port 2812
    allow username:password

これで、2812番ポートにhtmlのフロントエンドがつく。じっさいはぽーとかえてるよ。ごめんね。 /etc/monit/monitrc.dにいろいろなプロセスのテンプレートがあるので、監視したいプロセスのファイルをコピーしてconf.dに持っていく。

$ sudo cp /etc/monit/monitrc.d/apache /etc/monit/conf.d

これでmonitをたちあげる。

$ sudo service monit start
$ sudo monit start all

なんか落ちたらアラートメールがやってくる。フロントエンドにアクセスして状況を把握できるよ!やった!