Docker上のMySQL稼働情報をmuninで見る
適当にmuninのプラグインを入れれば localhost
の MySQL を見てくれて、あんまり苦労しないが、 docker run -d mysql
的なことをやっている場合、ちょっと一手間かかるよな、と思ったのでやったことをメモ。
参考URL
- Server Monitoring with Munin and Monit on Ubuntu 14.04 LTS
- Muninの監視項目を設定してみる - yk5656 diary
- Rookie Tech Info: Mysqlの接続について【localhost】と【127.0.0.1】の違い
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. 接続ユーザーの作成
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*]
セクションのみ、既存のはコメントアウトしてしまっていいようだ。
...(中略)...
[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
の画面にいろいろでてる「はず」。
反省
んん??いま思えば、どうせデータのディレクトリをマウントして実行してるんだから、その .sock
指定してやればはやいんじゃ・・・。それはまた今度やってみよう。
Author And Source
この問題について(Docker上のMySQL稼働情報をmuninで見る), 我々は、より多くの情報をここで見つけました https://qiita.com/PharaohKJ/items/c1606c5420ddef564a2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .