Practice of Programming

プログラム とか Linuxとかの話題

Pandora FMS

モニタリングのシステムを探していて、どれにしようか悩んでました。
定番だと、Nagiosとか、zabbixとか、Gnagriaなんだろうけど、なんかちょっと違うことしないと面白くないなぁ...とか間違ったことを考えて、選んでみたもの。


Pandora FMS
http://pandora.sourceforge.net/en/index.php


Spainで作られているらしい。入れたのは、v2.0(Subversionのtrunkです)


昨日一日中、入れていじってましたが、良いのか、悪いのか、他のを使ってないからわからねぇ...(ぉ


サーバはperlでできてて、Webはphpでできているというもの。見た目はきれいです。
インストールも結構簡単、perlの普通のインストール方法で、サーバやエージェントを入れて、その後、pandorea_consoleをwebから見れるところにおいて、install.phpをたたくだけ。ちなみに、HAとかも考慮してるらしい。


とりあえず、アラート上げる分には困らない気がします。
デフォルトである程度そろっているのと、そのままコマンドたたくようなことができるので。デフォルトで、httpsのチェックができないのはどうなんだろう。


そのままコマンドたたくって言うのは、アラートのpluginというところでそういう設定ができるのですが、ぶっちゃけ、下記みたいな感じで、ちょっとあれです。

 GET -d https://example.com/; echo $?

かっけー(嘘。まぁ、好き勝手コマンド作れば、なんでもありってことです。


実際は、pluginのコマンドに、GET -d を登録して、
モジュールの登録の際に、pluginに渡す引数を設定できるので、それ以下を書く。
というか、pluginのコマンドに、何も指定しなきゃ、モジュール登録の引数がそのままコマンドになっちゃうかも。
しかし、なぜかアラートの下のpluginなのに、モジュールと関連があるという...意味不明


で、意味不明は不明なままに、モジュールとして登録するんだが、モニタリングのstatusには関与しない。モジュールってのがモニタリングするもののことなのかと思っていたのですが、モジュールとモニタリングの関係がよくわかりません。


ユーザ管理とかしっかりしています。ユーザーごとにできる権限とかを選べます。
いるのか?といわれると、僕にはいらないんですけどね。


Nagios to pandora みたいなツールも用意されているみたいです。
やってませんけどね。


わかりにくかったのが、エージェントの設定なんですが、これは、監視先に絶対エージェントいれなきゃいけないってわけではなく、Pandoraサーバから見に行くやつを「エージェント」と呼んでるのかもしれない。


とりあえず、エージェントを登録して、監視項目を設定して、アラートを登録して、みたいなノリですね。設定やアラートはテンプレートを作れたり、他のエージェントの設定項目からコピーできたりするみたいです。
エージェントは親子設定ができて、いい感じな図ができたりします。エージェントの親子とは関係ないんですが、自分で地図とかの上にオブジェクトを配置したりもできまます。


あと、レポート機能ですね。ある程度自由にレポートを作ることができますが...
若干めんどくさいですね。最初からいろいろ一覧で出してほしい。
個別のデータは別窓で見ることができますが、あんまりよくないですよね。
システムの状態見るときって、全体を眺めたいですから。
そういう一覧を作れるんだけど、作らないと出ないってのがめんどくさいです。


ちなみに、各サーバにエージェント突っ込んで、confに、PandoraのサーバのIP書いてやると、SNMP通信して、snmptrapd が拾うらしいですが、snmpわかんないからやってないです。いや、やってるんだけど、エージェントが理解されないって、ごねてます。


SNMPの本でも読むべきなのかな。


と、いろいろ書きましたが...なんでしょうねぇ。他の使ってみないと「良い」「悪い」の判断はできませんね。


とりあえず、ここまで書いといてあれですが、Webに情報があんまりないので、そういう意味ではお勧めできないですね(ぉ


っと、忘れてた。若干のパッチ。後者はあってるのかわかんないです。

Index: include/functions_db.php
===================================================================
--- include/functions_db.php    (revision 961)
+++ include/functions_db.php    (working copy)
@@ -545,7 +545,7 @@
                        FROM `tagente_modulo`, `ttipo_modulo`, `tagente`
                        WHERE `id_tipo_modulo` = `id_tipo`
                        AND `tagente`.`id_agente` = `tagente_modulo`.`id_agente`
-                       AND `ttipo_modulo.nombre` LIKE '%%_proc'
+                       AND `ttipo_modulo`.`nombre` LIKE '%%_proc'
                        AND `tagente`.`id_agente` = '%d'", $id_agent);
        return get_db_all_rows_sql ($sql);
 }
Index: operation/snmpconsole/snmp_alert.php
===================================================================
--- operation/snmpconsole/snmp_alert.php        (revision 961)
+++ operation/snmpconsole/snmp_alert.php        (working copy)
@@ -227,7 +227,8 @@
        // Priority
        echo '<tr><td class="datos">'.lang_string("Priority");
        echo '<td class="datos">';
-       echo form_priority ($priority);
+       // echo form_priority ($priority);
+       echo print_select (get_priorities (), "alert_priority", $priority, '', '', '');

        echo '</tr></table>';
        echo '<table cellpadding="4" cellspacing="4" width="650">