ksaitoの日記

日々試したことの覚え書き

mysqlのデータベースサイズを監視する

移転しました。

自動的にリダイレクトします。

Zabbixで監視したデータサイズが気になったので監視することにしました。

何を監視するか

mysqlのデータベースファイルは、/var/lib/mysqlに作成されます。
duコマンドでzabbixのデータベースファイルのサイズを調べることができます。

$ sudo du -s /var/lib/mysql/zabbix
1072	/var/lib/mysql/zabbix
$ 

zabbix_agentdに必要な設定

zabbix_agentdを動かすzabbixユーザではアクセス権がなくエラーになってしまいます。

$ sudo -u zabbix du -s /var/lib/mysql/zabbix
du: `/var/lib/mysql/zabbix'にアクセスできません: 許可がありません
$ ls -ld /var/lib/mysql
drwx------ 5 mysql mysql 4096 2011-05-15 18:52 /var/lib/mysql
$ 

グループにもパーミッションがないのでsudoを使います。
パスワードなしでduコマンドを使えるようにします。

$ sudo grep zabbix /etc/sudoers
zabbix	ALL=NOPASSWD:	/usr/bin/du
$ sudo -u zabbix sudo du -s /var/lib/mysql/zabbix
1072	/var/lib/mysql/zabbix
$

ここまでできたらzabbix_agentd.confに設定を追加します。

$ grep sudo /etc/zabbix/zabbix_agentd.conf
UserParameter=mysql.dbfile.size[*],sudo du -s /var/lib/mysql/$1|cut -f1
$ zabbix_get -s zabbix.local -k mysql.dbfile.size[zabbix]
1072
$ 

これでzabbixで任意のmysqlデータベースのサイズを監視できます。