3. MySQL監視テンプレート(公式)の設定方法
公式テンプレートの中に、MySQL監視用のテンプレートが入っています。稼動状態を監視するために必要なデータを取得できるのですが、監視ホストにテンプレートを適用しただけではデータを取得できません。
今回は、MySQL監視テンプレートの設定方法を紹介します。
MySQL監視テンプレートの設定
Zabbixをインストールすると Template DB MySQL テンプレートが最初から入っています。
ZabbixサーバのMySQLの状態を確認するために、MySQLテンプレートを指定しても、以下のようにエラーになってしまいます。
MySQLのアイテムは、Zabbixエージェントで取得しますが、実際の処理はUser parameterに記載されています。
アイテムの説明欄に、User parameterに関する記載があります。本来は、テンプレート自体の説明欄に設定方法を記述しておくべきだと思うのですが、V2.x以前はテンプレートに説明欄がなく、アイテムやトリガーにしかなかったので、このような説明しかないのかもしれません。
ユーザパラメタは/etc/zabbix/zabbix_agentd.d/にあります。
$ cd /etc/zabbix/zabbix_agentd.d/ appliance@zabbix:/etc/zabbix/zabbix_agentd.d$ ls -l -rw-r--r-- 1 root root 1531 Nov 9 19:37 userparameter_mysql.conf $ less -SX userparameter_mysql.conf # For all the following commands HOME should be set to the directory that has .my.cnf file with password information. # Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert]. # Key syntax is mysql.status[variable]. UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'
各コマンドは、変数HOMEで指定されたディレクトリにある.my.cnfファイルからパスワードを取得するようです。
Zabbixアプライアンスの場合、そもそもUserparameterファイルで指定されている/var/lib/zabbiixというフォルダがありません。
$ cd /var/lib $ cd zabbix -bash: cd: zabbix: No such file or directory
フォルダを作成してから、.my.cnfファイルを作成し、パスワードを設定します。
パスワードの確認
$ grep ^DBPassword /etc/zabbix/zabbix_server.conf DBPassword=xxxxxxxx
ディレクトリとファイルの作成
$ cd /var/lib $ sudo mkdir zabbix $ sudo vi .my.cnf
以下の内容記載します。
[client] password="xxxxxxxx"
※Zabbixエージェントをroot権限で動かしている場合は、/root/.my.cnfをそのままコピーしてください。
これで値が取れるようになります。zabbix_getで確認します。
$ zabbix_get -s 127.0.0.1 -k mysql.status[Com_begin] 7960089
実際の値
MySQL監視テンプレートで取得する値のほとんどは、グラフで確認できます。
データの送受信量
SQL毎の処理件数
MySQLがダウンした時に通知を行うトリガーもあります。