mysqlのテーブルから情報取得
初めて質問させていただきます。
現在、zabbixでmysqlを使用しているデータベースサーバを監視しようとしています。
監視内容は「一分間に発行されたクエリ数がどれくらいか」です。
mysqlのstatus情報には起動してからの総クエリ数は情報としてあるものの一分間のクエリ数はないとのことなので、プログラムを組んで一分間のクエリ数を求めました。
そして求めた値を環境変数に代入したのち、このようにテーブルに格納しました。
>select * from query
+-------------+
| querynumber |
+-------------+
| 2 |
+-------------+
ここで質問ですがzabbixはテーブルから情報を取得することは可能でしょうか?
調べてみてもstatusから取得する方法しか載っておらず困っています。
初めての質問で至らない点、情報不足なところもあると思いますがもしご存知の方がいらっしゃればお願い致します。
バージョン
・mysql 5.6.38
・zabbix-server 3.0.13
・zabbix-agentd 3.0.13
TNK - 投稿数: 4769
UserParameterを使用するか、アイテムのタイプとして「外部スク
リプト」のアイテムを使用して、スクリプトやコマンドを実行した
実行結果としてそのquerynumberの数値を出力させ、それをアイテ
ムの値とする方法が考えられます。
別の方法としては、ODBCを使用する方法もあります。
マニュアルもご参照ください。
外部チェック
https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/e...
ODBC監視
https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/o...
総クエリ数から、差分を取得する方法も考えられます。
例えば、UserParameterを使用して総クエリ数を取得できるのであ
れば、アイテムの設定として差分を保存する(保存時の計算で「差
分/時間」を選択)ようにします。
そうすることで、標準で用意されているのは秒あたりの差分を求め
て保存する機能であるため1分単位ではありませんが、1秒毎のクエ
リ数を監視することはできるでしょう。
近松 - 投稿数: 2
返信ありがとうございます。
UserParameterを使用し
UserParameter=mysql.query[*],echo "use zabbix;select querynumber from query " | MYSQL_PWD="〇〇〇" mysql -uzabbixagent -N
で少々無理やりかもしれませんが取得することができました。
教えて頂いた他の方法でもやってみたいと思います。
ありがとうございました。