1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Monitでのサーバー監視等の自動化

Last updated at Posted at 2020-02-26

Monitとは

統合監視デーモンで、設定の閾値以上でメール通知や自動復旧等や監視を実施することができます。
・httpレスポンス、プロセス、ポートの監視 例)Apache、MySQL、SSL、Postfix、fluentd
・CPU、メモリ、ロードアベレージ、ディスク容量等

#1.初期設定(新規でサーバーに導入する場合)

①EPEL rpmパッケージをインストールして有効にする

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

②monitをインストール

$ sudo yum -y install monit

③関連ファイルがあるか確認

$ 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

④設定ファイルのバックアップ

$ sudo cp -av /etc/monitrc{,.bk}
`/etc/monitrc' -> `/etc/monitrc.bak'
// -a 権限を出来る限りそのままにしてコピー
// -v コピー前にファイル名を表示する
// {,.bk} ブレース展開と言われる手法で.bkというファイル名でコピー

⑤設定ファイルの編集

$ vi /etc/monitrc
…
set daemon  30              // デフォルトチェック間隔は30secなので任意に変更
…
include /etc/monit.d/*.conf // .confだけを読み込むよう編集

⑤' monitはWWWサーバの機能も持っており、HTTP 経由で設定を参照したり、 サービスの制御を行ったりすることができる

set httpd port 2812 and    # Webインターフェースポート(Default:2812)
    allow localhost        # アクセスを許可するIP(localhost)
    allow XXX.XXX.XXX.XXX/XX  # アクセスを許可するIP(任意のIP)
    allow admin:monit      # 管理コンソールのuser='admin' password='monit'
#以下SSLを使わないためコメントアウト
    #with ssl {            # enable SSL/TLS and set path to server certificate
    #    pemfile: /etc/ssl/certs/monit.pem
    #}

⑥設定ファイルの作成

$ vi /etc/monit.d/XXXX.conf // 設定ごとに新規作成
$ mv /etc/monit.d/logging /etc/monit.d/logging.conf // ログ設定ファイルの名前変更

#2.共通設定ファイル
以下がメイン設定ファイルです。

/etc/monitrc
バックアップ:/etc/monitrc.bk

includeして、以下の個別設定ファイルを読み込んでいます。
/etc/monit.d/*.conf

#3.個別設定ファイル(例)

/etc/monit.d/test.conf
// 監視プロセス設定
check process test matching "test"
// 起動設定
start program "/usr/local/test/bin/start_test.sh"
// 停止設定
stop program "/usr/local/test/bin/stop_test.sh"
// プロセスがない場合、リスタート
if does not exist then restart
// slackに通知 ※
if does not exist then exec "/usr/local/test/bin/slacknotice.sh"
// 5回の監視中に5回リスタートして起きなければやめる
if 5 restarts within 5 cycles then unmonitor

※実行するシェルに実行権限付与することを忘れないこと
$ chmod +x

※slack通知参考サイト: https://cloudpack.media/10085

monitのベストプラクティスとして以下のcronを仕込むことが推奨されている。

echo "0 */1 * * * /usr/bin/monit monitor all" >> /var/spool/cron/root

4.実行コマンド

起動コマンド
$ systemctl start monit
OS起動時に自動起動
$ systemctl enable monit
停止コマンド
$ systemctl stop monit
ステータス
$ monit status
設定を変更した場合のリロード (重要!!)
$ monit reload
設定を変更した場合のテストコマンド
$ monit -t
監視状況を知る
$ monit summary
monitがさぼってる場合(Not monitoredのとき)
$ monit monitor all
コマンド一覧
$ monit -h

5.管理画面(Monit Service Manager)

IP:monitのサーバーのIP
PORT:⑤'で設定したPORT
http://XXX.XXX.XXX.XXX:2812/

#6.有償のM/Monitについて
以下のサイトが詳しく記載されていました。
https://inokara.hateblo.jp/category/monit

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?