LoginSignup
8
7

More than 5 years have passed since last update.

Docker上のMySQL稼働情報をmuninで見る

Last updated at Posted at 2016-04-28

適当にmuninのプラグインを入れれば localhost の MySQL を見てくれて、あんまり苦労しないが、 docker run -d mysql 的なことをやっている場合、ちょっと一手間かかるよな、と思ったのでやったことをメモ。

参考URL

1. プラグイン、MySQL Client のインストール

ubuntu@mysql-docker:$ sudo apt-get install mysql-client munin-plugins-extra
ubuntu@mysql-docker:$ cd /etc/munin/plugins
ubuntu@mysql-docker:$ sudo ln -s /usr/share/munin/plugins/mysql_ mysql_
ubuntu@mysql-docker:$ sudo ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
ubuntu@mysql-docker:$ sudo ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
ubuntu@mysql-docker:$ sudo ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
ubuntu@mysql-docker:$ sudo ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

2. 接続ユーザーの作成

mysql -h localhost とやると、.sock を使った接続になってしまうのでちゃんと 127.0.0.1 を指定すること。

ubuntu@mysql-docker:$ mysql -u root -p -h 127.0.0.1 

接続にいくのは、Dockerコンテナの外からIP経由になるので、とりあえず接続元は '%''localhost' にしてあるが、適切なファイアウォール設定などで本当の外部から接続できないことを確認したほうがよい。

mysql> CREATE DATABASE munin;
mysql> GRANT SELECT ON munin.* TO munin@'%' IDENTIFIED BY '<munin_no_password>';
mysql> GRANT SELECT ON munin.* TO munin@'localhost' IDENTIFIED BY '<munin_no_password>';
mysql> FLUSH PRIVILEGES;

3. munin-node の設定

設定ファイルを編集し、ユーザーや接続先を書き込む。

ubuntu@mysql-docker:$ sudo vim /etc/munin/plugin-conf.d/munin-node

編集するのは[mysql*]セクションのみ、既存のはコメントアウトしてしまっていいようだ。

munin-node.conf
...(中略)...
[mysql*]
user root
env.mysqlopts -u munin --password=<munin_no_password> -h 127.0.0.1
# env.mysqlopts --defaults-file=/etc/mysql/debian.cnf
# env.mysqluser debian-sys-maint
# env.mysqlconnection DBI:mysql:mysql;mysql_read_default_file=/etc/mysql/debian.cnf
...(中略)...

4. 確認

それぞれ値が表示されれば成功。

ubuntu@mysql-docker:$ sudo /usr/sbin/munin-run mysql_queries
ubuntu@mysql-docker:$ sudo /usr/sbin/munin-run mysql_slowqueries
ubuntu@mysql-docker:$ sudo /usr/sbin/munin-run mysql_threads
ubuntu@mysql-docker:$ sudo /usr/sbin/munin-run mysql_bytes

5. 反映

munin-node を再起動させてやればよい。

ubuntu@mysql-docker:$ sudo /etc/init.d/munin-node stop
ubuntu@mysql-docker:$ sudo /etc/init.d/munin-node start

6. 結果確認

これで munin の画面にいろいろでてる「はず」。

スクリーンショット 2016-04-28 23.50.22.png

反省

んん??いま思えば、どうせデータのディレクトリをマウントして実行してるんだから、その .sock 指定してやればはやいんじゃ・・・。それはまた今度やってみよう。

8
7
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
8
7