Hai Adachinです。
今回はプロセス監視で有名な「monit」を紹介します。
ブルドックちゃんイカツイ・・・
ふと、会社のzabbix/nagiosが落ちてしまったので、自動で起動して、メールも通知できたらいいねとなったので、
じゃあシェルスクリプトでいいじゃないでしょうか!となったのですが、
せっかくだからmonit導入しよう!となったので、インストールからプロセス監視までブログしていきます。
■インストール
1 |
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm |
1 |
# yum -y install monit |
1 2 3 |
# monit -V This is Monit version 5.14 Copyright (C) 2001-2015 Tildeslash Ltd. All Rights Reserved. |
1 |
# /etc/init.d/monit start |
1 |
# chkconfig monit on |
■/etc/monit.conf
2つ追記します
・webインターフェースの設定
1 2 3 4 5 |
set httpd port 2812 and #use address localhost # only accept connection from localhost #コメントアウト allow localhost # allow localhost to connect to the server and allow 192.xx.xx.xx/255.255.255.0 # allow localhost to connect to the server and #ネットワーク許可 allow adachin:adachinmonit # require user 'admin' with password 'monit' #ログイン名パスワード |
・アラートメール設定
1 2 3 4 5 6 7 8 9 10 11 12 13 |
set mailserver localhost set mail-format { from: monit@server01 subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: server01 Description: $DESCRIPTION Your faithful employee, Monit } set alert adachin@hoge.com |
■/etc/monit.d
・monit.dディレクトリにプロセス監視したいサービスを追加していきます。
今回はzabbix-serverのプロセス監視ファイルを作成します。
1 2 3 4 5 6 |
# vim zabbix set daemon 60 check process zabbix with pidfile /var/run/zabbix/zabbix_server.pid #プロセス名 lockファイルでも可能 start program = "/etc/init.d/zabbix-server start" #起動コマンド stop program = "/etc/init.d/zabbix-server stop" #停止コマンド group zabbix #グループ権限 |
こんな感じで、nagios、nginx、mysqldなどなど監視ファイルを作成していきます。
・monit再起動と設定確認
1 |
#/etc/init.d/monit restart |
1 2 |
# /usr/bin/monit -vI エラー等出てなければOK |
■ログイン
http://GIP:2812
adachin:adachinmonit
あとはポチポチ押せばこのプロセス止めたいとか起動したいとかできます。
それにプロセスが落ちたらアラートメールが来て、すぐに落ちたプロセスを起動して復旧メールも届きます。
※追記(2018/1/9)
monit v5.2以上であればプロセス名やpidファイルでない場合、
matchingという機能を使ってで検知できるようになりました。
Added support for monitoring processes without pidfile using pattern
matching. You can use POSIX regular expressions or string matching
process name with arguments as provided by the ‘ps’ utility. If the
pattern matches multiple processes, the first match is used.
Example:
check process debian
matching “/usr/lib/vmware/bin/vmware-vmx .*deb.vmx”
http://lists.gnu.org/archive/html/monit-general/2010-09/msg00081.html
・例)
1 2 3 |
check process test matching "/usr/bin/php /home/test/current/api/oil refine watchdog:receivetest > /dev/null" start program = "/usr/bin/sudo -u root FUEL_ENV=production /usr/bin/php /home/test/current/api/oil refine watchdog:receivetest > /dev/null" stop program = "/usr/bin/pkill php" |
■まとめ
導入がかなり簡単なので、死活監視はmonitでも良さそう・・・
ブルドックやりおる(・∀・)
・参考
https://mmonit.com/monit/
http://www.tecmint.com/how-to-install-and-setup-monit-linux-process-and-services-monitoring-program/
0件のコメント