Monit プロセス監視と自動再起動


check programでパラメータを与える


新しいmonitに更新

# RHEL 7
rpm -ql monit
...
/etc/logrotate.d/monit
/etc/monit.d
/etc/monit.d/logging
/etc/monitrc
/usr/bin/monit
/usr/lib/systemd/system/monit.service
/usr/share/doc/monit-5.14
/usr/share/doc/monit-5.14/COPYING
/usr/share/doc/monit-5.14/README
/usr/share/man/man1/monit.1.gz
/var/log/monit.log
# RHEL 6
rpm -qlpi monit-5.25.1-1.el6.x86_64.rpm
...
/etc/monit.conf
/etc/monit.d
/etc/rc.d/init.d/monit
/usr/bin/monit
/usr/share/doc/monit-5.25.1
/usr/share/doc/monit-5.25.1/COPYING
/usr/share/doc/monit-5.25.1/README
/usr/share/man/man1/monit.1.gz
/var/lib/monit
/var/monit

# RHEL 7
rpm -qlpi monit-5.25.1-1.el7.centos.x86_64.rpm
...
/etc/monit.conf
/etc/monit.d
/usr/bin/monit
/usr/lib/systemd/system/monit.service
/usr/share/doc/monit-5.25.1
/usr/share/doc/monit-5.25.1/COPYING
/usr/share/doc/monit-5.25.1/README
/usr/share/man/man1/monit.1.gz
/var/lib/monit
/var/monit
# EHEL 6
rpm -qlpi monit-5.25.1-1.el6.x86_64.rpm
...
/etc/logrotate.d/monit
/etc/monit.conf
/etc/monit.d
/etc/monit.d/logging
/etc/rc.d/init.d/monit
/usr/bin/monit
/usr/share/doc/monit-5.25.1
/usr/share/doc/monit-5.25.1/COPYING
/usr/share/doc/monit-5.25.1/README
/usr/share/man/man1/monit.1.gz
/var/log/monit

# EHEL 7
rpm -qlpi monit-5.25.1-1.el7.x86_64.rpm
...
/etc/logrotate.d/monit
/etc/monit.d
/etc/monit.d/logging
/etc/monitrc
/usr/bin/monit
/usr/lib/systemd/system/monit.service
/usr/share/doc/monit-5.25.1
/usr/share/doc/monit-5.25.1/COPYING
/usr/share/doc/monit-5.25.1/README
/usr/share/man/man1/monit.1.gz
/var/log/monit.log
# 古いバージョンを待避
which monit
/usr/bin/monit
sudo service monit stop
sudo mv /usr/bin/monit /usr/bin/monit.5.3.2
wget https://mmonit.com/monit/dist/binary/5.24.0/monit-5.24.0-linux-x64.tar.gz
tar xvfz monit-5.24.0-linux-x64.tar.gz -C ./
sudo cp monit-5.24.0/bin/monit /usr/bin/
# ~/.monitrc, /etc/monitrc, /usr/local/etc/monitrc, /usr/local/etc/monitrc or at ./monitrc しか読んでくれないためsymlink
sudo ln -s /etc/monit/monitrc /etc/monitrc
sudo monit start
sudo monit status

トラブル


check programで監視中に復帰しない事がある

以下、monit 5.25.1 に更新すると解消する事を確認。


  1. 障害テストのためtcp/80をブロック
    sudo iptables -A INPUT -p tcp -m tcp --dport 14186 -j DROP
  2. /opt/healthcheck/httpd/check.sh のexit statusが!0を返す
  3. 3回ヘルスチェックが失敗したら、execが実行される。(想定通り)
  4. 障害から復帰したつもりでiptablesを停止
    sudo service iptables stop
  5. 手動では /opt/healthcheck/httpd/check.sh のexit statusが0を返す
  6. /var/log/monit.log には /opt/healthcheck/httpd/check.sh のexit status が !0 のまま(異常)で、再起動を繰り返す。(想定外)

監視中のファイルを変更すると実行に失敗する


ゾンビプロセスが増加する

# ゾンビプロセスの表示
ps aux | awk '{if($8 ~ /Z/) print}'

CPU Usage監視がうまく動作しない


動作確認


設定ファイルの構文チェック

monit -t

アラートメール送信


デバッグ


exec


監視状況の確認


CentOS 6.x用rpm


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-02 (木) 18:56:05