monitでサーバー監視

サーバーを運用してるとどうしても不具合やアタックや暴走などでシステム障害となる事がある。

監視サーバー(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)でチェックのタイミングとコンフィグディレクトリの指定がされている。

set daemon 60

1分間隔でチェックを行う事を指定

include /etc/monit.d/*

設定ファイルの保存ディレクトリを指定

/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
linux/error2.txt · 最終更新: 2013/04/16 01:30 by miyako



DMM.com電子書籍

CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0

- Media Kiss Lab -