Nagiosプラグインのcheck_mysqlとcheck_mysql_query
しつこくNagiosのMySQL監視ネタである。
Nagiosプラグインに標準で入っているcheck_mysqlとcheck_mysql_queryについて。
繰り返しになるが、これらのプラグインはおおざっぱに言うと、以下のような内容の監視をする。
check_mysql
MySQLの状態を確認する。通常のプロセス監視のようなもの。
check_mysql_query
MySQL DBにクエリを発行し、その結果を表示する。
ふーん、と思っていたが、いまいち踏み込んだ監視内容がわからなかった。
check_mysqlはヘルプを見ると”This program tests connections to a mysql server”
とあるので、「MySQLへの接続をテストし、かつプロセスの状態を表示するもの」
と捉えていいかと思う。ソースをうっすら覗いた限り、接続が確立できないとCRITICALの
ステータスになるものと思われる。
(プラグイン自体はバイナリだが、インストールディレクトリの中を探っていけば
コンパイル前のソースを確認できる)
プロセスの状態についてはクエリ数やスレッド数など表示してくれるが、閾値を
超えたら警告というところまではやらないので、必要であれば他のプラグインを探すか、
独自に実装することになりそうだ。
ちなみに表示される値はMySQLのSTATUSコマンドから取得しているもの。
追記
それから同時接続数が設定値を超えるとCRITICALになり”Too many connections”
と表示するみたいである。
check_mysql_queryは、ヘルプに”This program checks a query result against
threshold levels”とある。
つまりクエリを投げて、その結果を設定した閾値と照合するものらしい。
“The result from the query should be numeric.”とあるので、何らかの数値を返し、
それを基に判定するような実装をすることになるのだろう。
ヘルプからの抜粋だが、以下重要そうなオプション。
-q, – -query=STRING
SQL query to run. Only first colum in first row will be read.
-c, – -critical=RANGE
Critical renge.
それから-dオプションでデータベースを指定。
利用にあたっては監視専用のDBを用意することになるんだろうな。
まだまだよくわかっていない部分もあるが、いくぶん掴めてきた気も、する。
check_mysqlに限らずNagios標準のチェックツールは基本的には優れているのだろうが、
実装してみると「ここはこうしたい」「ここはこうでないと困る」などと何かと
要望が出てくるものだ。
そんな時は巷に多くのプラグインが出回っているし、いざとなったら自作すればいい、
ってことなのだろう。
Nagios標準のプラグインはCで書かれているが、shellだろうがPerlだろうが、
実行ファイルを/usr/local/nagios/libexec配下に置いて設定ファイルに適宜
追加・編集すればオリジナルの監視が可能となる。
Nagiosはオープンソースのなかでもとりわけ自力でどんどん工夫して望みの環境に
近づけていくツール、という印象が強い気がする。
ちなみに、Nagiosに関してはネットにも情報は多いが、包括的に前提となる情報を
得るにはやはり本を読むのがいいと思う。書籍「サーバ/インフラを支える技術」(技術評論社)
には、Nagiosの基本的な情報が含まれている。
(自分の場合ずっと前にこの本を買って読んではいたが、つい数日前にこれにも
書いてあるじゃないか!と「発見」したのである。。)
関連記事
NagiosでMySQLを監視する
NagiosでMySQL レプリケーション監視のプランニング