MySQLの稼働状況をZabbixで監視する為に、まずは、Zabbixに付属しているコマンド「zabbix_get」で値が取れるかどうかをやってみました。
少しハマったのですが、やっと設定方法が分かりました。ここに記載しているのは、設定を少しずつ進める為の作業ログです。完全なZabbixでのMySQL監視手法にはまだ至っていない状態ですが、ご了承ください。後日ちゃんとした記録を記載したいと思います。
確認した環境
1台のCentOS上で確認しました。
このOSには、MySQL「5.5.23」が動いており、Zabbixエージェントは「1.8.16」が動いています。動いているのは「zabbix_agentd」(デーモンのほう)です。
MySQL設定
今回の試験では、MySQL側は何も設定変更を行っていません。
Zabbixでちゃんと監視を行う際には、Zabbix監視用のMySQLアカウントを設定する事になると思いますが(後日行う予定)、今回の試験では全て登録済の「root」アカウントで行いました。「root」アカウントには、もちろんパスワードを設定しています。
Zabbix設定
まず、「zabbix_agentd.conf」の設定を行います。
今回の作業はすべて1台のCentOS上からのローカル操作になります。よって、以下の設定を入れました。
Server=127.0.0.1
この「Server」設定項目は、ZabbixサーバのIPアドレスを設定する場所です。複数のIPアドレスを設定する場合はコンマで区切ります。
今回の試験作業で、zabbix_get でなかなか値が取れなかった原因は、この「Server」設定にローカルIPアドレスを入れていなかった事でした。
次に以下の「ListenIP」にも「127.0.0.1」を設定しておきます。後ほど実行する zabbix_get コマンドで利用します。
ListenIP=127.0.0.1
こちらも、複数のIPアドレスを設定する場合はコンマで区切ります。
あとは、この後に設定するファイルに関係しますが、以下の「Include」設定が有効になっている事を確認します。
Include=/(zabbix設定ファイル置き場)/zabbix_agentd.d/
その他の設定(ListenPortなど)は既存のままです。
次に、/(zabbix設定ファイル置き場)/zabbix_agentd.d/ 配下にある「userparameter_mysql.conf」を少し編集します。
例えば、mysql.ping を監視したい場合、以下のように、mysqladmin コマンドにユーザとパスワードの情報を渡します。今回はあくまで試験なので、パスワードを直接記載する設定で一時的に試してみました。ちゃんとやる場合はZabbix用のユーザアカウントをMySQLに登録して、パスワードは別の方法で保護する予定です。
UserParameter=mysql.ping,HOME=/var/lib/zabbix /usr/bin/mysqladmin -uroot -ppassword ping | grep alive | wc -l
※-ppassword の部分は正しい値に置き換えます。
以上で、zabbix設定ファイルの変更は終了です。
設定の変更を有効にする為に、zabbixエージェントを再起動します。
# /etc/init.d/zabbix-agent restart Shutting down zabbix agent: [ OK ] Starting zabbix agent: [ OK ] #
zabbix_getコマンドで値が取れる事を確認
zabbix_get コマンドで、mysql.ping の値が取得できる事を確認します。
# zabbix_get -s 127.0.0.1 -k mysql.ping 1 #
無事「1」という値が取れました。「userparameter_mysql.conf」で設定した mysql.ping でのコマンドで「grep」と「wc」をかましているので、「1」の値が取得できれば問題ない状態です。
あと、試しに「mysql.threads」も同じような設定を行ってから、zabbix_get を実行してみました。あと、アカウントは関係ない「mysql.version」も取得してみました。
# zabbix_get -s 127.0.0.1 -k mysql.threads 1 # 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 #
ちゃんと値が取得出来ており、問題ない結果です。
仕組みと挙動が分かったので、後日もう少しちゃんとした設定を行い、Zabbixのアイテムからも値が取れる事を確認したいと思います。