■muninで複数mysqldを監視する設定メモ
CentOS環境で同一ホスト内に設定された複数mysqld自体やデータベースサイズの監視をmuninで行う設定のメモ。epelリポジトリが必要。munin設定ができている前提。複数mysqldの起動設定メモはこちら。
■複数mysqld自体の監視
1)必要なモジュールをインストールする
# yum install perl-Cache perl-Cache-Cache perl-DBD-MySQL
2)監視ファイルがサポートしているパラメータの参照
/usr/share/munin/plugins/mysql_ のファイルを利用する
以下のコマンドで出てきたリストのパラメータが取得可能
# /usr/share/munin/plugins/mysql_ suggest
mysql_bin_relay_log
mysql_commands
mysql_connections
mysql_files_tables
mysql_innodb_bpool
mysql_innodb_bpool_act
mysql_innodb_insert_buf
mysql_innodb_io
mysql_innodb_io_pend
mysql_innodb_log
mysql_innodb_rows
mysql_innodb_semaphores
mysql_innodb_tnx
mysql_myisam_indexes
mysql_network_traffic
mysql_qcache
mysql_qcache_mem
mysql_replication
mysql_select_types
mysql_slow
mysql_sorts
mysql_table_locks
mysql_tmp_tables
3)複数mysqldの分をコピーで作成し必要な編集を行う
# cp /usr/share/munin/plugins/mysql_ /usr/share/munin/plugins/mysql01_
# vi /usr/share/munin/plugins/mysql01_
132行目からデータソースを指定
my %config = (
‘dsn’ => $ENV{‘mysqlconnection’} || ‘DBI:mysql:mysql;host=localhost;mysql_socket=/path/to/mysql01/mysql.sock’,
‘user’ => $ENV{‘mysqluser’} || ‘dbuser’,
‘password’ => $ENV{‘mysqlpassword’} || ‘password’,
);
145行目でキャッシュネームを指定
‘namespace’ => ‘munin_mysql01’,
690行目で接頭値を指定
my $graph = substr(basename($0), length(‘mysql01_’));
814行目でmunin上で表示するカテゴリ名を指定
print “graph_category mysql01\n”;
これをmysqldの数だけ値を変えて作成
4)監視したいパラメータのリンクを貼る
# cd /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql01_ mysql01_commands
# ln -s /usr/share/munin/plugins/mysql01_ mysql01_qcache
# ln -s /usr/share/munin/plugins/mysql01_ mysql01_qcache_mem
# ln -s /usr/share/munin/plugins/mysql01_ mysql01_slow
5)値が取得できているか確認
ここでエラーが出ているようだと設定にミスがある
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_commands
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_qcache
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_qcache_mem
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_slow
■複数mysqld内のデータベースサイズを監視
1)プラグインを入手して設置する
http://exchange.munin-monitoring.org/plugins/mysql_size_/details からプラグインダウンロード
/usr/share/munin/plugins/ にmysql01_size_ 等番号を付けて必要分配置する
42行目
unless ($0 =~ /mysql_size(?:_([^_]+)|)_(.+)\s*$/)
48行目
my $MYSQLADMIN = $ENV{mysqladmin} || “mysql”;
を設定や環境に合わせて修正
例えば
unless ($0 =~ /mysql01_size(?:_([^_]+)|)_(.+)\s*$/)
my $MYSQLADMIN = “/usr/bin/mysql”;
2)munin-nodeに必要なパラメータを設定する
# vi /etc/munin/plugin-conf.d/munin-node
[mysql01_*]
env.mysqlopts -uroot -ppassword –socket=/path/to/mysql01/mysql.sockk
env.mysqladmin /usr/bin/mysqladmin
[mysql02_*]
env.mysqlopts -uroot -ppassword –socket=/path/to/mysql02/mysql.sock
env.mysqladmin /usr/bin/mysqladmin
など
3)監視したいDBのリンクを設定する
# cd /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql01_size_ mysql01_size_dbname01
# ln -s /usr/share/munin/plugins/mysql01_size_ mysql01_size_dbname02
# ln -s /usr/share/munin/plugins/mysql02_size_ mysql02_size_dbname03
4)値が取得できているか確認
ここでエラーが出ているようだと設定にミスがある
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_size_dbname01
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql01_size_dbname02
# /usr/sbin/munin-run –servicedir /etc/munin/plugins mysql02_size_dbname03
■動作が確認できたら設定を反映する
# /sbin/service munin-node restart