サイト管理者
なみかわみやこ
サーバーを運用してるとどうしても不具合やアタックや暴走などでシステム障害となる事がある。
監視サーバー(Nagiosなど)で生死確認をしてるものの、OOM-KILLERでSSHDが落とされた日にゃ~データセンターに置いてるサーバーは現地に行かなきゃどうする事も出来なくなる。
まぁ、大概のデータセンターには電話かければサーバーの電源をOFF/ONしてくれるサービスがあるんだけど(^^;)
前置きが長すぎた。
そこでmonitというデーモン監視ツールを導入してみよう
EPELやDAGのリポジトリにあるのでCentOS/Scientific LinuxだとyumでインストールOK
yum -y install monit
特に依存関係とか無いみたいなので、monitだけがインストールされる。バージョンが気になるなら新しい方(たぶんDAGの方が新しい)のRPMを落としてきてインストールしても大丈夫だと思う。
インストールが完了すると以下のファイルやディレクトリが作成される
/etc/monit.conf /etc/monit.d/logging
monit.confの中をみてみる
# set daemon mode timeout to 1 minute set daemon 60 # Include all files from /etc/monit.d/ include /etc/monit.d/*
殆どがコメントで、最後の4行(2行はコメントだけどw)でチェックのタイミングとコンフィグディレクトリの指定がされている。
1分間隔でチェックを行う事を指定
設定ファイルの保存ディレクトリを指定
/etc/monit.d/loggingにはログの設定がされている
# log to monit.log set logfile /var/log/monit
syslogにも吐き出せるみたいだけど、あまりログファイルがごっちゃになってるのは嫌いなので、これでOKw
ログローテーションとかは別途考えないといけないけどね
次にメールの設定をする。これをしておかないとメールで通知が来ないからねw
vi /etc/monit.d/mailset
set mailserver localhost
set mail-format {
from: root@$HOST
subject: $SERVICE - $EVENT
message: Renbird Surveillance - Monit -
ACTION : $ACTION
SERVICE : $SERVICE
at $DATE on $HOST.
DESCRIPTION : $DESCRIPTION
}
set alert 送信先メールアドレス
とりあえずSSHDを監視する設定ファイルを作ってみる
vi /etc/monit.d/sshd
check process sshd with pidfile /var/run/sshd.pid every 2 cycle group system start program = "/etc/rc.d/init.d/sshd start" stop program = "/etc/rc.d/init.d/sshd stop" if 5 restarts within 5 cycles then unmonitor
pidファイルの場所やサービスの起動スクリプト名とかは環境に合わせて変更が必要ですよ~
monitを起動してみよう
service monit start
自動起動するように設定しとく
chkconfig monit on