前回はMuninによるnginxの監視項目を増やしました。
今回はMuninについてくる標準のプラグインを使ってMySQLの監視を行いたいと思います。
MySQL用のプラグイン
MuninにはMySQL用として次のプラグインが用意されています。
- mysql_
MySQLサーバの稼働状況 - mysql_bytes
MySQLの送受信バイト - mysql_innodb
InnoDBテーブルスペースの空き容量 - mysql_isam_space_
ISAM/MyISAMテーブルスペースの空き容量 - mysql_queries
SQL別のクエリ数 - mysql_slowqueries
スロークエリの発生状況 - mysql_threads
MySQLサーバーの稼動スレッド数
今回は上記のうち、このWordPressサイトを監視するために、myql_bytes・mysql_isam_space_・mysql_queries・mysql_slowqueries・mysql_threadsを設定しました。
myql_bytesプラグイン
まずはこのプラグインのシンボリックリンクを作成してプラグインを有効にします。
ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_byteデータベース名
シンボリックリンクを作成するときに名前の後ろに「データベース名」をつけるのがポイントです。こうすることによって複数のデータベースを監視することができます。なお、WordPressのデータベースを監視したい場合は、WordPressの設定ファイル(通常は/etc/wordpress以下にあります)の「DB_NAME」という変数に設定されている名前がデータベース名になります。
次に/etc/munin/plugin-conf.d/munin-nodeというファイルを編集して次の行を追記します。
[mysql*データベース名] env.mysqlopts --user=データベース名 --password=パスワード --host=localhost
パスワードのところはこのデータベース名で指定したデータベースのパスワードです。WordPressの場合はWordPressの設定ファイルのDB_PASSWORDという変数に設定されている文字列がパスワードになります。
なお、パスワードを書き込みますので、このファイルはroot以外読み取れないようにしておきます。
chmod 600 /etc/munin/plugin-conf.d/munin-node
また、munin-nodeを再起動します。
service munin-node restart
これでMySQLの転送バイト数(スループット)を監視することができます。
ちゃんと設定できると次のようなグラフが表示されます。
mysql_isam_space_プラグイン
このプラグインを使う際もまずシンボリックリンクを作成します。
ln -s /usr/share/munin/plugins/mysql_isam_space_ /etc/munin/plugins/mysql_isam_space_データベース名
/etc/munin/plugin-conf.d/munin-nodeについてはmysql_bytesプラグインの設定をしてれば特に変更は不要です。設定をしていない場合は、mysql_bytesプラグインで紹介した行を追記してください。
最後にmunin-nodeを再起動します。
service munin-node restart
うまく設定できると次のようなグラフが表示されます。
実はこのグラフは一日単位だとまあリ変化がわからないようです。一番期間が長い「by year」のグラフにするとwp_commentmetaがどんどん大きくなっていくのがわかりました。
mysql_queriesプラグイン
このプラグインもmysql_isam_space_プラグインと一緒でシンボリックリンクを作成すれば、mysql_bytesプラグインと同じ設定で使えます。
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queriesデータベース名 service munin-node restart
うまく設定できると次のようなグラフが表示されます。なにやら夜中の3時ぐらいにアクセスが急増していることがわかります。
mysql_slowqueriesプラグイン
このプラグインもmysql_queriesプラグインと一緒でシンボリックリンクを作成すれば、mysql_bytesプラグインと同じ設定で使えます。
ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueriesデータベース名 service munin-node restart
設定に成功すると次のようなグラフが表示されます。何も表示されていないようですが、実はスロークエリーが発生していないだけです。”by year”のグラフを見ると稀にスロークエリーが発生していました。
mysql_threadsプラグイン
最後にmysql_threadプラグインです。
このプラグインもmysql_queriesプラグインと一緒でシンボリックリンクを作成すれば、mysql_bytesプラグインと同じ設定で使えます。
ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threadsデータベース名 service munin-node restart
グラフは下記のようになります。多くても3スレッドに収まっているようです。
まとめ
今回はMuninを使ってMySQLを監視する方法を紹介しました。
1日(by day)のグラフでは良くわかりませんが、より長期のグラフを見ることによって傾向がつかめるので、MySQLが遅くなっているかどうかなどがわかると思います。
次回はGithubにあるMySQL用のプラグインを使って更に監視項目を増やしたいと思います。
コメント