誰でも ZABBIX

Zabbixの使い方、役に立つ情報、等々

3. MySQL監視テンプレート(公式)の設定方法

公式テンプレートの中に、MySQL監視用のテンプレートが入っています。稼動状態を監視するために必要なデータを取得できるのですが、監視ホストにテンプレートを適用しただけではデータを取得できません。

今回は、MySQL監視テンプレートの設定方法を紹介します。

MySQL監視テンプレートの設定

Zabbixをインストールすると Template DB MySQL テンプレートが最初から入っています。
f:id:Unam:20180319221853p:plain

ZabbixサーバのMySQLの状態を確認するために、MySQLテンプレートを指定しても、以下のようにエラーになってしまいます。
f:id:Unam:20180319222046p:plain

MySQLのアイテムは、Zabbixエージェントで取得しますが、実際の処理はUser parameterに記載されています。
f:id:Unam:20180319222405p:plain

アイテムの説明欄に、User parameterに関する記載があります。本来は、テンプレート自体の説明欄に設定方法を記述しておくべきだと思うのですが、V2.x以前はテンプレートに説明欄がなく、アイテムやトリガーにしかなかったので、このような説明しかないのかもしれません。
f:id:Unam:20180319222239p:plain

ユーザパラメタは/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監視テンプレートで取得する値のほとんどは、グラフで確認できます。

データの送受信量
f:id:Unam:20180319225248p:plain

SQL毎の処理件数
f:id:Unam:20180319225332p:plain

MySQLがダウンした時に通知を行うトリガーもあります。
f:id:Unam:20180319225435p:plain