- Zabbix Server
- CentOS release 6.2 (Final)
- zabbix-server 1.8.16-1.el6.JP.x86_64
- mikoomi mongodb plugin (Rev 78)
- MongoDB & Zabbix Agent
- CentOS release 6.3 (Final)
- MongoDB 2.2.1
はじめに
今回は、mikoomiさんに作っていただいたMongoDB Zabbixテンプレートを使います。仕組みとしては、zabbixのextentionにMongoDBドライバをつかったPHPのスクリプトを置き、PHPのスクリプトがMongoDBに接続して、各種ステータスをクエリでとってきて、zabbixに渡すというもの(zabbix-agentは使いません)。 これにより、時系列でのクエリ件数やらいろんな統計情報が取得できます。
[処理シーケンス]
Zabbix --> Zabbixテンプレート --> PHPスクリプト --> MongoDB-PHPドライバ --> MongoDB
手順
基本的にmikoomiさんブログ通り進めていきます。 ZabbixとMongoDBのインストールは割愛します。MongoDB-PHPドライバのインストール
まず、必要なライブラリをyumでインストール。# yum install php-devel php-pear gcc make次に、Mongo-phpドラインをインストール
# pecl install mongo最後に/etc/php.iniに以下の行を追加。
extension=mongo.soMongoDB-PHPドライバの稼働確認には以下のスクリプトを書いて、phpで実行し、成功するかどうかを確認すればOKです。
<?php new MongoClient("mongodb://server:27017"); ?>
Zabbix-MongoDB監視テンプレートのインストール
まず、mikoomiさんの作ったphpとshをzabbixのexternalscriptsに置きます(私がとったときはSVNのリビジョンは78でした。) そして、実行権限を与えます。# cd /etc/zabbix/externalscripts/ # wget http://mikoomi.googlecode.com/svn/plugins/MongoDB%20Plugin/mikoomi-mongodb-plugin.php # wget http://mikoomi.googlecode.com/svn/plugins/MongoDB%20Plugin/mikoomi-mongodb-plugin.sh # chmod 755 mikoomi-mongodb-plugin.* # chwon zabbix:zabbix mikoomi-mongodb-plugin.*次に、このZabbixテンプレートのXMLをダウンロードして、zabbixのテンプレートに追加します。これで完了です。
MongoDBのサーバをZabbixAgentとして登録
まず、Zabbixのホストを追加して、「リンクしているテンプレート」に「Template_MongoDB」を選択します。次に、これが唯一のハマりどころ(※)ですが、「マクロ」のところに、以下の二つの値を定義します。
- マクロ = "{$SERVER}" , 値 = MongoDBのサーバのIPアドレス
- マクロ = "{$PORT}" , 値 = MongoDBのポート番号
これで以下の図のようにMongoDBの各種統計情報がとれていると思います。
※)ハマりどころについて
mikoomiさんのブログには{$MONGODB_HOSTNAME}、{$MONGODB_PORT}、{$MONGODB_ZABBIX_NAME}の3つの値をマクロにセットしろと書いてあるんですが、これだとうまくいきません。phpやshにうまく引数が渡りません。
テンプレートのXMLをみると
item type="10" key="mikoomi-mongodb-plugin.sh[-h {$SERVER} -p {$PORT} -z {HOSTNAME}]" value_type="3"と書いてあるので、ここに合わせて{$SERVER}と{$PORT}を定義したところうまく動きました。