Linux: Monit導入


Linux: Monit導入Monitとは?

Monit とは、プロセスを監視して、 なにか問題があったときに再起動などを行ってくれる、便利なユーティリティです。

 

便利そうなのでいれてみる。

CentOS5.3はrpmforgeを見ないとmonitが無いようなので一度確認する。

# yum search --enablerepo=rpmforge monit
・・・
monit.x86_64 : Process monitor and restart utility
・・・

見つかったのでインストール

# yum install --enablerepo=rpmforge monit
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * rpmforge: fr2.rpmfind.net
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package monit.x86_64 0:5.2.5-1.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                                 Arch                                     Version                                          Repository                                  Size
====================================================================================================================================================================================
Installing:
 monit                                   x86_64                                   5.2.5-1.el5.rf                                   rpmforge                                   567 k

Transaction Summary
====================================================================================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 567 k
Is this ok [y/N]: y
Downloading Packages:
monit-5.2.5-1.el5.rf.x86_64.rpm                                                                                                                              | 567 kB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : monit                                                                                                                                                        1/1

Installed:
  monit.x86_64 0:5.2.5-1.el5.rf

Complete!

インストールできた。

設定ファイルはここに出来上がる
/etc/monit.conf
/etc/monit.d

起動スクリプトはここに出来上がる
/etc/rc.d/init.d/monit

設定変更前にバックアップ
# cp /etc/monit.conf /etc/monit.conf.default

設定を変更する。変更後のdiff。

# diff /etc/monit.conf.default /etc/monit.conf
19,20c19,20
< # set daemon  120           # check services at 2-minute intervals
< #     with start delay 240  # optional: delay the first check by 4-minutes (by
---
> set daemon  120           # check services at 2-minute intervals
>     with start delay 240  # optional: delay the first check by 4-minutes (by
28c28
< # set logfile syslog facility log_daemon
---
> set logfile syslog facility log_daemon
35c35
< set idfile /var/monit/id
---
> #set idfile /var/monit/id
43c43
< set statefile /var/monit/state
---
> #set statefile /var/monit/state
52a53
> set mailserver localhost
107c108
< # set alert sysadm@foo.bar                       # receive all alerts
---
> set alert xxxxx@xxxxxx.co.jp                      # receive all alerts アラートメールの送信先設定
116,117c117,118
< # set httpd port 2812 and
< #     use address localhost  # only accept connection from localhost
---
> set httpd port 2812 and
>     use address example.com  # only accept connection from localhost  http://example.com:2812で管理画面が見られる
119c120
< #     allow admin:monit      # require user 'admin' with password 'monit'
---
>     allow username:password      # require user 'admin' with password 'monit' 管理画面にアクセスする際のユーザ名とパスワード

httpの監視設定ファイルの作成
# vim /etc/monit.d/httpd

check process httpd with pidfile /var/run/httpd.pid
      start program = "/etc/init.d/httpd start"
      stop program = "/etc/init.d/httpd stop"
      if failed port 80 then restart
      if cpu > 90% for 5 cycles then alert
      if mem > 90% for 5 cycles then alert

mysqlの監視設定ファイルの作成
# vim /etc/monit.d/mysql

check process mysql with pidfile /var/run/mysqld/mysqld.pid
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed port 3306 protocol mysql then restart
   if cpu > 90% for 5 cycles then alert
   if mem > 90% for 5 cycles then alert

monitの起動

# /etc/init.d/monit start
Starting monit: Starting monit daemon with http interface at [example.com:2812]
Monit start delay set -- pause for 240s
                                                           [  OK  ]

ブラウザからアクセスしてみる。
この例ではhttp://example.com:2812
※iptablesとかで絞ってるならあけないと。。

管理画面はこんな感じ

ちょっとapache止めてみる。

# /etc/rc.d/init.d/httpd stop
httpd を停止中:                                            [  OK  ]

管理画面を見てみると・・・。

httpdが止まってる。
そのまま数分放置してまた管理画面を見ると・・・。

再起動してる!

とりあえずこんな感じ。

参考URL
monit で始めるお手軽サーバ監視
プロセスの監視を行う デーモン monit
Monit の導入
Monit の導入 – 設定ファイルいくつかAdd Star
monit入門
monit でプロセスを監視する
monit でいろいろ監視する

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です