データベースモニタについて
お世話になります。
フォーラムの内容、いつも参考にさせて頂いています。
zabbixの[データベースモニタ]について、ご教授頂きたいと思います。
これまで本機能を利用していませんでしたが、
データベースの監視強化の為、本機能を利用できるか検討しています。
マニュアルや実機で確認したところ、以下の様な機能であると認識しています。
(1).Zabbix本体またはAgent導入対象サーバで動作しているデータベースに対して、
SQLクエリの実行が可能。
(2).クエリの実行結果をアイテムとして、収集可能。
(3).クエリの実行結果が複数存在していても最初の1つのみ、収集する。
(その他は切り捨て)
テーブル使用状況の一覧を取得するクエリを投げて、
使用状況のモニタリング等を考えましたが、取得可能な値が1つであることから難しい認識です。
いろいろな事が出来そうですが、良い利用方法が思いつきません。
フォーラムにもあまり情報がなく・・・。
つきましては皆様の利用方法など、教えて頂けましたら参考にさせて頂きたいと思います。
また、機能に対する私の認識に誤りがありましたら、ご指摘頂けると幸いです。
■利用中のバージョン
・Zabbix Zabbix 3.0.2
よろしくお願い致します。
wakaba - 投稿数: 228
広瀬です。
具体的にデータベースモニタでどのような監視を行いたいのでしょうか?
例えば私は前職にておこなっていた事ですと、MySQL自体のプロセス監視の代わりに、
select VARIABLE_VALUE ~長いので端折ります~ where VARIABLE_NAME='UPTIME';
などというSQL文投げて応答があればOK、無ければNG判定ですとか、
select VARIABLE_VALUE ~長いので端折ります~ where VARIABLE_NAME='OPEN_TABLES';
MySQLのオープンテーブル数の値取得ですとか、SELECT回数、UPDATE回数、INSERT回数等など
まぁSQL文で表現できるものは結構取ってました。データベースモニタ監視で取得したアイテムで、二つ
以上のアイテムの合計(四則演算)が必要なら、プラスして計算機能を使います。
この辺はZabbixの領域では無く、SQLの世界になりますので、SQL文で何を取り、何を監視したいか次
第です。SQL(MySQL、PostgreSQL、Oracle等々さまざまです)の性能を見たいのか、そうでないのか。
特定の取得値の結果を見たいのかケースバイケースです。
当然ですが、各データベースソフトウェアへのアクセスの権限、ロール制御が必須になってきますので、
その辺の制御も一通り必要ですので、お忘れなく。
Basi - 投稿数: 6
広瀬様
具体的な利用事例について、ご返信有難う御座います。
> 具体的にデータベースモニタでどのような監視を行いたいのでしょうか?
漠然と以下の様なことができないか考えていました。
(1).データベースの応答確認(監視)
(2).テーブルの利用状況確認(モニタリング)
(1).はプロセスだけ生きており、プロセス監視で検知できないケースがあるので、実際にSQLの応答を持って、生死を確認したいと思います。
これはご案内頂いた前者の方法で対応が可能と認識しました。
(2).はデータベースに起因する障害が発生した場合に、テーブルサイズの利用推移を確認したいと考えています。
(肥大化や枯渇などの予兆を確認したい)
当初、SQL文を発行できるのであれば一覧を取得するクエリを実行すればいけそうと考えていましたが、
質問内容の(3)の様な制約があるので、難しそうだと思えてきました。
実現する為にはテーブル単位でのアイテム作成が必要でしょうか。
> この辺はZabbixの領域では無く、SQLの世界になりますので、SQL文で何を取り、何を監視したいか次
> 第です。SQL(MySQL、PostgreSQL、Oracle等々さまざまです)の性能を見たいのか、そうでないのか。
> 特定の取得値の結果を見たいのかケースバイケースです。
取得可能な内容はSQL文次第であること、理解しました。
可能であればご回答頂きたいのですが、どの様なSQL文を用意しても、単一のデータベースモニタでは、
1つの値しか取得できないとの認識に相違はないでしょうか?
TNK - 投稿数: 4769
Zabbixの場合、1つのアイテムでは1つの値しか取得できません。
パラメータを変更して同様の値を取得されたいのであれば、それぞ
れ用のアイテムを作成してください。
別のアイテムとして用意すれば、異なる複数のSQLを実行すること
は可能です。
ただし、一度にまとめて取得することができませんので、ご注意く
ださい。
wakaba - 投稿数: 228
広瀬です。
データベースモニタでの監視はアイテム1つにつき、1クエリ中1カラムを返答させる必要があります
複数カラムの場合は、たぶん後続が切り捨てられるかエラーとなるだけです。
複数のカラムの値を取得したい場合は、アイテムを2つ以上それぞれにSQL文貼り付けて頂ければ
問題ありません。その際にアイテム同士の合算をしたい場合は別途、計算機能を使って下さい。
良くあるテーブルサイズの取得の場合の事例ですが・・・
1.総容量
2.データ量
3.インデックス量
それぞれカラムが違いますので、計3つのアイテムを作る必要があるということです。
総容量だけなら、アイテムは1つだけで良いですけどね。
同様に、クエリ数を詳細に取りたいとします。
1.Query数<全SQLステートメントの発行総数
2.SELECT数
3.INSERT数
4.UPDATE数
5.DELETE数
・・・などなど、SQLステートメントを全部あげつらう訳にもまいりませんが、上記なれば、
5つはアイテムを作る必要があります。総Query数用のアイテム、SELECT数ようのア
イテム・・・と言った具合です。
公式にもあるドキュメント、及びTNKさんの言われることは、発行したSQL文で2カラム
以上の値がとれてしまう状況下ではどちらを主とするべきか、Zabbixでは判断が出来
ない為、1アイテムで1(カラム)値という意味です。
Basi - 投稿数: 6
広瀬様、TNK様
質問へのご回答ありがとございました。
具体的な説明をいただき、機能に対する疑問点を解消することができました。
実行するSQL文については試行錯誤したいと思います。