SSブログ

MuninでMySQLを可視化する (FreeBSD 10.3R、2016/09/04) [FreeBSD]

WordPressでMySQLを使うようになったので、MySQLをMuninで可視化してみることにしました。
が、いきなりの挫折。ローカル環境ではうまくいっているのですが、VPS上の正式運用しているMySQLは可視化できないのです。
root@vps:~ # cat /var/log/munin/munin-node.log
2016/09/04-02:20:07 [6833] Error output from mysql_commands:
2016/09/04-02:20:07 [6833]      DBI connect('mysql;mysql_connect_timeout=5','munin',...) failed: Access denied for user 'munin'@'localhost' (using password: YES) at /usr/local/etc/munin/plugins/mysql_commands line 902.

決定的な違いと言えば、パスワードの設定有無やアクセスユーザ名の違いです(ローカル環境はパスワードなし)。 MySQL側のユーザ作成は実施済みですし、関連情報をコンフィグファイルにちゃんと記載していることから、てっきりコンフィグファイルが読み込めていないものとばかり思っていました。(パスワードにマイナスの文字が入っていたので、構文解釈でエラーを起こしている線も疑っていました。)
root@vps:~ # cat /usr/local/etc/munin/plugin-conf.d/plugins.conf
[mysql*]
#env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysql /usr/local/bin/mysql
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow
env.mysqluser munin
env.mysqlpassword xxxxxxxxxx

しかし何を何回修正してもダメ。munin-run --debug mysql_commandsを実施してみたところ、どうやらユーザ名、パスワード情報はちゃんと反映されている模様。そこでさらにログを見つめていると、どうやらmysqlというデータベースにアクセスして失敗しているらしい。
そこまで切り分けできてくると、思い当たることが一つ。
root@vps:~ # mysql -u root -p xxxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
mysql>quit;
root@vps:~ #
root@vps:~ # mysql -u munin -p xxxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
mysql>quit;

ここまでくれば犯人は分かったも同然。ユーザmuninがmysql というデータベースにアクセスする権限を持っていませんでした。GRANT文でmysqlデータベースに対してSELECT権限を与えてみたところ、とりあえずエラーは出なくなりました。
可視化への第一歩を踏み出したかな? と思ったのですが、そもそもmysqlってデータベースって何なのでしょう。ここにアクセスできればMySQL全体の統計情報が取得できる場所だったら良いのですが、単純にmysqlってデータベースの統計情報を可視化しているだけだったら、もうちょっとチューニングが必要そう。(WordPressで実際に使っているデータベースを指定していないと意味がないので)
とりあえずしばらく放置してみることにします。
タグ:munin
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。