4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zabbix MMySQL監視の手順(MariaDB)

Posted at

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

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

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

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

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

image.png

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

image.png

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

Zabbix監視用アカウントの作成

MySQLをZabbixで監視する為に、MySQLにZabbix用アカウントを作成します。アカウント名は何でもよいですが、分かり易いように「zabbix」というアカウントを作成します。

$ mysql -u root -p
mysql> grant process on *.* to 'zabbix'@'localhost' identified by 'keichan0322';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from mysql.user where user='zabbix';
+-----------+--------+
| host      | user   |
+-----------+--------+
| localhost | zabbix |
+-----------+--------+
1 row in set (0.00 sec)

mysql> exit

次に、作成したアカウントを、Zabbixエージェントが利用できるように「–defaults-extra-file」で指定するファイルに記載します。このファイルは新規作成で良く、ファイル名は任意で良いみたいですが、MySQLの設定ファイルだと分かり易いように以下では「my.cnf」という名称にしておきます。

$ sudo mkdir /etc/zabbix/mysql
$ sudo vi /etc/zabbix/mysql/my.cnf

パスワードの確認

[root@monitor ~]# grep ^DBPassword  /etc/zabbix/zabbix_server.conf
DBPassword=keichan0322

my.cnf の内容は以下になります。

[client]
user = zabbix
password = keichan0322

–defaults-extra-file が使える状態である事を確認する為、mysqladmin コマンドで利用してみます。以下、1回目は個別でパスワードを打ち込むパターン、2回目は–defaults-extra-fileを指定するパターンです。

$ mysqladmin -u root -p ping
Enter password:
mysqld is alive
$ mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping
mysqld is alive

問題なく–defaults-extra-file が使える状態である事が確認できました。(パスワードを打ち込まなくてもコマンド実行結果を得る事ができました。)

##userparameter_mysql.conf の設定

引き続き、Zabbixエージェント側の設定となります。

Zabbixエージェントのインストール時にデフォルト配置されている「/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf」に一部設定を追加修正します。

以下の2行が修正対象です。

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql-N | awk '{print $$2}'
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

この2行に「–defaults-extra-file=/etc/zabbix/mysql/my.cnf」をそれぞれ追記します。

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/mysql/my.cnf -N | awk '{print $$2}

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping | grep -c alive

keyが mysql.status[*]とmysql.pingはアカウント情報が必要なので、–defaults-extra-fileを設定しています。

keyが mysql.version はアカウント情報は不要なので、–defaults-extra-file は設定していません。
設定後は、Zabbixエージェントを再起動してください

$ systemctl restart zabbix-agent

$ systemctl status zabbix-agent
zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since 月 2020-06-08 14:19:20 JST; 1h 17min ago
  Process: 11997 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 11999 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 12001 (zabbix_agentd)
   CGroup: /system.slice/zabbix-agent.service
           tq12001 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
           tq12002 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           tq12003 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
           tq12004 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
           tq12005 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
           mq12006 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

##Zabbixエージェント側での設定作業は以上です。

zabbix_get コマンドを実行

[root@monitor ~]# zabbix_get -s 127.0.0.1 -k mysql.ping
1
[root@monitor ~]# zabbix_get -s 127.0.0.1 -k mysql.status[Uptime]
6495
[root@monitor ~]# zabbix_get -s 127.0.0.1 -k mysql.status[Questions]
115657

無事、値が取れているようです。

最後に、Zabbixサーバ側(WebUI)で「Template App MySQL」を監視対象ノードに適用します。そうすると、MySQLの値が取得できるようになります。

なお、値取得の状況は、ZabbixのWeb画面「監視データ」-「最新データ」画面で確認できます。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?