CentOS6にMonitをインストールしてMariaDB(MySQL)の死活監視
MariaDB Galera ClusterのノードになっているサーバーがPIDファイルを残したまま止まるので死活監視サービスを導入しようと調査したときの覚書。
環境: CentOS 6.7, MariaDB 10.0.21, Monit 5.14
目次
- ある日のエラー
- 監視ツールの選定
- MonitをYUM経由でインストール・設定
1.ある日のエラー
Node.jsからデータベース(MariaDB Galera Cluster)に接続できなくて状態を確認したら、こんなメッセージ。
# /etc/rc.d/init.d/mysql status
ERROR! MySQL is not running, but PID file exists
原因不明。あとで詳しく調べる。
ロードバランサになっているサーバーに監視ツールを導入して、エラーになったらメールを送る仕組みを構築することにした。
2.監視ツールの選定
サーバー監視ツールとして「Zabbix」が人気らしい。
けど、監視するサーバーにApacheやMySQLが必要。このためだけに複数サービスをインストールしたくない。
Monitを使うと簡単に監視できるらしい。
3.MonitをYUM経由でインストール・設定
EPELのYUMリポジトリからインストール。
# yum install monit
設定するのに参考にしたサイト
まずはインストール直後の設定ファイルを眺める
# less /etc/monit.conf
メールの設定をする
# vi /etc/monit.d/mail.conf
set mailserver localhost
set alert info@hoge.co.jp
set mail-format {
from: info@hoge.co.jp
}
ローカルのMariaDB(MySQL)を監視してみる
# vi /etc/monit.d/mysqld.conf
check host APP01 with address localhost
if failed
port 3306
protocol MYSQL username "user" password "pass"
then alert
サービス起動。自動起動にもしとく。
# /etc/rc.d/init.d/monit start
# chkconfig monit on
"Monit instance changed"のメールが届く。
MariaDBを停止してみる。
# /etc/rc.d/init.d/mysql stop
メールが届けば成功。デフォルトでは30秒感覚でチェックしてる。
MariaDBを起動すると、接続に成功したとメールが来る。
あとは本番環境で設定ファイルの「localhost」「user」「pass」を監視対象のIPアドレスとデータベースのパスワードに設定すれば動くはず。
MariaDB Galera Clusterと別ネットワークの場合はファイヤーウォールの設定などが必要。
< Related Posts >