Pocket

zabbix_get コマンドで MySQLの稼働状況を確認する方法(アカウント情報を分離)

  • add this entry to hatena bookmark

先日の記事「zabbix_get コマンドで MySQLの稼働状況を確認する簡易試験」では、userparameter_mysql.conf にMySQLへアクセスするアカウントとパスワードを直接記載していました。それはちょっとよろしくないという事で、別の手法で設定しましたので記載しておきます。

1.MySQLにZabbix用アカウントを作成

MySQLをZabbixで監視を行う為、MySQLにZabbixアカウントを作成します。

mysql> grant process on *.* to 'zabbix'@'localhost' identified by 'some_password';
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>

※パスワードは適切な文字列で設定します。

2.MySQLのdefaults-extra-file を作成します。

MySQLのdefault-extra-fileを作成します。ここで作成したファイルはこの後の設定で利用します。(userparameter_mysql.conf でコールしているmysqladmin コマンドで –defaults-extra-file オプションを指定します。)

内容は、先ほど作成したMySQLのzabbixアカウント情報を記載します。ファイル名は任意で良いみたいですが、MySQLの設定ファイルだと分かりやすいように my.cnf にしておきます。

# mkdir /etc/zabbix/mysql
# vi /etc/zabbix/mysql/my.cnf

my.cnf の内容は以下です。

[client]
user = zabbix
password = some_password

※パスワードは適切な文字列で設定します。

3.userparameter_mysql.conf の設定

userparameter_mysql.conf で、mysqladmin コマンドに「–defaults-extra-file=/etc/zabbix/mysql/my.cnf」を付与設定します。

UserParameter=mysql.ping,HOME=/var/lib/zabbix /usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping | grep alive | wc -l
UserParameter=mysql.uptime,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf status | cut -f2 -d":" | cut -f1 -d"T"
UserParameter=mysql.threads,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf status | cut -f3 -d":" | cut -f1 -d"Q"
UserParameter=mysql.questions,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf status | cut -f4 -d":" | cut -f1 -d"S"
UserParameter=mysql.slowqueries,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf status | cut -f5 -d":" | cut -f1 -d"O"
UserParameter=mysql.qps,HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf status | cut -f9 -d":"
UserParameter=mysql.version,mysql -V

以上で、userparameter_mysql.conf の設定は終了です。

 

4.zabbix_agentd を再起動

Zabbix設定ファイルを編集したので、Zabbixエージェントを再起動します。

# /etc/init.d/zabbix-agent status
zabbix_agentd (pid 7269 7268 7267 7266 7265 7263) is running...
# /etc/init.d/zabbix-agent restart
Shutting down zabbix agent:                                [  OK  ]
Starting zabbix agent:                                     [  OK  ]
# /etc/init.d/zabbix-agent status
zabbix_agentd (pid 7989 7988 7987 7986 7985 7983) is running...
#

以上で設定は完了です。

5.zabbix_get コマンドで値が取得できる事を確認

まず、分かりやすいように、mysqladmin コマンドの実行結果と、zabbix_get コマンドの実行結果を実行してみます。

# /usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping
mysqld is alive
# /usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping | grep alive
mysqld is alive
# /usr/bin/mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf ping | grep alive | wc -l
1
# zabbix_get -s 127.0.0.1 -k mysql.ping
1
#

同じ値が取得できているので、ちゃんと設定されています。

次に、userparameter_mysql.conf で設定した内容全てで、zabbix_get コマンドを実行し、MySQLの値が取得できる事を確認します。

# zabbix_get -s 127.0.0.1 -k mysql.ping
1
# zabbix_get -s 127.0.0.1 -k mysql.uptime
 4060109
# zabbix_get -s 127.0.0.1 -k mysql.threads
 1
# zabbix_get -s 127.0.0.1 -k mysql.questions
 15900502
# zabbix_get -s 127.0.0.1 -k mysql.slowqueries
 0
# zabbix_get -s 127.0.0.1 -k mysql.qps
 3.916
# zabbix_get -s 127.0.0.1 -k mysql.version
mysql  Ver 14.14 Distrib 5.5.23, for Linux (x86_64) using readline 5.1
#

すべての設定値がちゃんと機能しているようです。
なお、最後の mysql.version はアカウント情報は不要なので、defaults-extra-file は設定していません。

以上、ZabbixでMySQL監視を行う際の下準備にあたる、userparameter_mysql.conf や、その他必要な設定の内容となります。

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。