MuninでMySQLを可視化する (FreeBSD 10.3R、2016/09/04) [FreeBSD]
WordPressでMySQLを使うようになったので、MySQLをMuninで可視化してみることにしました。
が、いきなりの挫折。ローカル環境ではうまくいっているのですが、VPS上の正式運用しているMySQLは可視化できないのです。
決定的な違いと言えば、パスワードの設定有無やアクセスユーザ名の違いです(ローカル環境はパスワードなし)。 MySQL側のユーザ作成は実施済みですし、関連情報をコンフィグファイルにちゃんと記載していることから、てっきりコンフィグファイルが読み込めていないものとばかり思っていました。(パスワードにマイナスの文字が入っていたので、構文解釈でエラーを起こしている線も疑っていました。)
しかし何を何回修正してもダメ。munin-run --debug mysql_commandsを実施してみたところ、どうやらユーザ名、パスワード情報はちゃんと反映されている模様。そこでさらにログを見つめていると、どうやらmysqlというデータベースにアクセスして失敗しているらしい。
そこまで切り分けできてくると、思い当たることが一つ。
ここまでくれば犯人は分かったも同然。ユーザmuninがmysql というデータベースにアクセスする権限を持っていませんでした。GRANT文でmysqlデータベースに対してSELECT権限を与えてみたところ、とりあえずエラーは出なくなりました。
可視化への第一歩を踏み出したかな? と思ったのですが、そもそもmysqlってデータベースって何なのでしょう。ここにアクセスできればMySQL全体の統計情報が取得できる場所だったら良いのですが、単純にmysqlってデータベースの統計情報を可視化しているだけだったら、もうちょっとチューニングが必要そう。(WordPressで実際に使っているデータベースを指定していないと意味がないので)
とりあえずしばらく放置してみることにします。
が、いきなりの挫折。ローカル環境ではうまくいっているのですが、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
コメント 0