2012年12月27日木曜日

MySQLの監視テンプレートを適用する

zabbixでMySQLを監視するためにテンプレートを適用したいと思います。

zabbixをインストールしただけではMySQLのテンプレートは無いので、
以前の記事を参考に、監視テンプレート追加してください。

また、MySQLの監視を行いたいサーバーにzabbixエージェントがインストールされていない場合には
こちらの記事を参照してインストールまで行ってください。

■手順1
MySQL監視対象サーバーでzabbixエージェントの設定の編集。
vi /etc/zabbix/zabbix_agentd.conf

#Zabbixサーバーからのリモートコマンドを許可するかどうかを設定します。0:許可しない,1:許可する
EnableRemoteCommands=1

#実行されたシェルコマンドの警告をログに記録するかを指定。0:無効,1:有効
LogRemoteCommands=1

#処理がタイムアウトになる秒数を設定(デフォルト3秒)
Timeout=10

#includeされるディレクトリの確認(デフォルト値のまま)
Include=/etc/zabbix/zabbix_agentd.d/

■手順2
zabbix-agentの再起動
# /etc/init.d/zabbix-agent restart
Shutting down zabbix agent:                                [  OK  ]
Starting zabbix agent:                                     [  OK  ]
■手順3
MySQL用のUserParametersを追加する
/etc/zabbix/zabbix_agentd.d/にはデフォルトでサンプル用に
serparameter_examples.conf、userparameter_mysql.confが置かれている

UserParameterの書式
#基本
UserParameter=キー名,コマンド
#Webインターフェイスから引数を受け取って、コマンドを実行する場合
UserParameter=アイテム設定のキー名[*],コマンド
キー名は、Webインターフェイスとの紐付け用の名前になる?

MySQLの監視用の設定ファイルを新規に作成する。
vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql_ex.conf
##################################
#
# MySQLの監視用
#
##################################
#これまでに記録された同時接続数の最大値
UserParameter=mysql.max_connections,/usr/bin/mysqladmin variables|grep max_connections|awk '{print $4}'
#現在開いている接続の数
UserParameter=mysql.threads_connected,/usr/bin/mysqladmin extended-status|grep Threads_connected|awk '{print $4}'
#接続を処理するために生成されたスレッド数。起動してから生成されたスレッドの数。この値が大きい場合はthread_cache_sizeの値を大きくした方が良いかも。
UserParameter=mysql.threads_created,/usr/bin/mysqladmin extended-status|grep Threads_created|awk '{print $4;}'
#スリープ状態になっていないスレッド数
UserParameter=mysql.threads_running,/usr/bin/mysqladmin extended-status|grep Threads_running|awk '{print $4;}'
#スレッドキャッシュでキャッシュされているスレッドの数。
UserParameter=mysql.thread_cache_size,/usr/bin/mysqladmin variables|grep thread_cache_size|awk '{print $4}'
#
UserParameter=mysql.connections,/usr/bin/mysqladmin extended-status|grep Connections|awk '{print $4;}'
#問い合わせ平均応答秒数
UserParameter=mysql.query_per_sec_avg,/usr/bin/mysqladmin status|awk '{print $22}'
※/usr/bin/mysqladminの部分は、各環境にインストールされているパスにあわせる。パスの確認はwhichが使える。
# which mysqladmin
/usr/bin/mysqladmin

■手順4
zabbix-agentの再起動
# /etc/init.d/zabbix-agent restart
Shutting down zabbix agent:                                [  OK  ]
Starting zabbix agent:                                     [  OK  ]

■手順5
設定したUserParameterが正常に動いているか確認する。
# /usr/bin/mysqladmin variables|grep max_connections|awk '{print $4}'
151
# /usr/bin/mysqladmin extended-status|grep Threads_connected|awk '{print $4}'
2
# /usr/bin/mysqladmin extended-status|grep Threads_created|awk '{print $4;}'
4
# /usr/bin/mysqladmin extended-status|grep Threads_running|awk '{print $4;}'
2
# /usr/bin/mysqladmin variables|grep thread_cache_size|awk '{print $4}'
8
# /usr/bin/mysqladmin extended-status|grep Connections|awk '{print $4;}'
12666
# /usr/bin/mysqladmin status|awk '{print $22}'
0.146

■手順6
zabbixサーバーからUserParameterが取得できているか確認する。
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.max_connections
151
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.threads_connected
2
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.threads_created
4
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.threads_running
2
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.thread_cache_size
8
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.connections
12907
$ /usr/bin/zabbix_get -s 監視対象のMySQLサーバーのIPアドレス -k mysql.query_per_sec_avg
0.146

ここまでで、監視対象サーバーの設定は完了になります。
次に、Webインターフェイスの設定になります。

ここからはZabbixサーバーのWebインターフェイスの設定になります。
■手順1
「設定」→「ホスト」で、ホスト一覧から、MySQLのテンプレートを適用したいサーバーのホスト名をクリックし、ホストの設定画面を開きます。例では「kagoya vps mysql master」を指定します。

■手順2
ホストの設定画面が開いたら右上にある、「リンクしているテンプレート」の枠にある、「追加」のボタンを押して、テンプレート一覧から「Template_JP_App_MySQL」のチェックボックスにチェックし、一番下にある「選択」を押して、ホスト一覧画面に戻る。



■手順3
手順2で「リンクしているテンプレート」の枠内に、先程指定した「Template_JP_App_MySQL」が追加されているの確認し、左下にある「保存」を押して、ホスト一覧へ戻ります。


■手順4
ホスト一覧に先程指定した「kagoya vps mysql master」の行にあるテンプレートの欄に、
追加したテンプレートの「Template_JP_App_MySQL」が表示されている事を確認する。
また、ステータスが有効になっていることと、エージェントの状態のZが緑色であることを確認しておく。
問題が無ければ、「kagoya vps mysql master」の行にある「アプリケーション」の枠のアプリケーションのリンクをクリックして、アプリケーションの設定画面を開く。

■手順5
右上にあるホストのプルダウンが「kagoya vps mysql master」を選択されている事を確認し
Template_JP_App_MySQL:MySQLの行にあるアイテムのリンクをクリックして、アイテムの設定画面を開く。


■手順6
アイテムの設定画面で、各行のステータスが「無効」になっているもののリンクをクリックして、有効に変更する。


■手順7
「監視データ」→「最新データ」を開き、右上のホスト一覧で「kagoya vps mysql master」を選び、
最新データの地位欄からMySQLをクリックすると、監視対象サーバーで設定した各値が収集された最終時刻などの結果が表示されています。


■手順8
「監視データ」→「グラフ」で右上のホスト一覧のプルダウンから、
「kagoya vps mysql master」を選択して、その横のグラフのプルダウンから
「MySQL Connections」や「MySQL Threads」を選択すると、集計結果のグラフが確認できます。

以上です(`・ω・´)ゞビシッ!!
参考URL

0 件のコメント:

コメントを投稿