サーバ編

Shift_JIS エンコーディングデータを pandora_agent から受け取るには?

pandora_agent は、Pandora FMS サーバへデータを XML 形式で送信してきます。多くの場合、エンコーディングは UTF-8 で問題ないのですが、監視対象が Windows サーバの場合 Pandora エージェントから呼び出すスクリプト(プラグイン)等が結果を Shift JIS で返すことがあるため、データ送信を Shift JIS で行いたい場合もあります。

しかしながら、Pandora FMS サーバでは XML のパースに Perl モジュールである XML::Parser を使っており、これには Shift JIS のマッピングファイルが含まれていないため、デフォルトでは Shift JIS データのパースができません。

これは、XML::Parser に含まれるマッピングファイルだけの問題であり、Pandora FMS 自体の機能ではありません。つまり、裏を返せば、XML::Parser が参照するマッピングファイルとして Shift JIS 用のファイルを用意してあげれば Pandora FMS で Shift JIS のデータを扱えるようになります。(Pandora FMS Enterprise 版には Shift JIS のマッピングファイルがあらかじめ付属していますが、OSS版には付属していません。)

マッピングファイルの追加は以下のサイトが参考になりますので、日本語 Windows を監視対象とする場合は、”shift_jis” という名前で、マッピングファイルを設定してみるとよいでしょう。

https://web.archive.org/web/20160404081025/http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm

こちらで配布されているスクリプトを用いて、次のように実行して、”shift_jis.enc” ファイルを生成します。

cp /usr/lib64/perl5/vendor_perl/XML/Parser/Encodings/x-sjis-cp932.enc /tmp
cd /tmp
perl {展開先ディレクトリ}/mkenc.pl x-sjis-cp932 shift_jis

/tmp 以下に shift_jis.enc というファイルが生成されますので、このファイルを以下のディレクトリに置きます。(ディレクトリが無い場合は作成します)

/usr/share/pandora_server/enc/

最後に pandora_server プロセスを再起動します。以上で、pandora_server は Shift JIS のデータを扱えるようになります。

なお、pandora_agent.conf 側で Shift_JIS でデータを送信する際は次の設定を行います。

encoding Shift_JIS

サーバ側のエンコーディングファイルは shift_jis.enc (小文字) であるのに対して、ソフトウエアエージェントでの設定は “Shift_JIS” であることに注意してください(大文字・小文字に注意)。

データベースは何が良い?

Pandora FMS は、監視設定や監視対象の状態などをすべてデータベースに保存します。対応しているデータベースは、MySQL です。(Pandora FMS 4.0 から6.0系では対応していましたが) PostgreSQL や Oracle は利用できません。

Pandora FMS 7.0NG からは、MySQL のみの対応となっています。

なお、Pandora FMS は、MySQL 互換 DB でも利用できます。たとえば、mariadb, percona などです。Percona XtraDB Cluster を用いたクラスタ構成の DB も利用することができますので、DB の冗長構成も取りたい場合は一つの選択肢になるでしょう。また、パブリッククラウド上に Pandora FMS サーバを構築する際は、クラウドサービスの MySQL およびその互換 DB サービスも利用できます。AWS の RDS (MySQL および Aurora) を使った構築の例もあります。

RedHat Enterprise Linux/CentOS 5.x 利用時の注意点

RHEL/CentOS バージョン 5.x に Pandora FMS をインストールすることはできますが、安定稼働のためには調整が必要です。

特別な理由がない限り、RHEL/CentOS 7 以上の利用をお勧めします。最新の Pandora FMS 7.0NG では、CentOS 7 および RHEL 8 およびその互換 OS が正式サポートとなっています。

perl のバージョンに関して

Pandora FMS サーバは、perl の thread を利用しています。 RedHat 5.x/CentOS 5.x 系のディストリビューションに含まれる perl は、バージョンが 5.8 系で、あまり thread の出来がよくありません。thread ライブラリがメモリリークする問題もあります。 Pandora サーバが停止する問題が発生する事例もあるようです。

従って、RedHat 5.x/CentOS 5.x は過去に日本で良く使われていたであろうディストリビューションですが、安定稼働面でお勧めできません。

Pandora FMS サーバをインストールするディストリビューションとしては、RedHat/CentOS であれば 7 以上の利用をお勧めします。

イベントにおける日本語文字化けに関して

RHEL/CentOS 5.x へ Pandora FMS をインストールした場合、日本語のエージェント名やモジュール名を登録していると、イベント表示が文字化けすることがあります。 これは、RHEL/CentOS 5.x に付属の perl モジュール、DBD::mysql のバージョンが古いことに起因します。

日本語のエージェント名やモジュール名を利用する場合は、DBD::mysql を 4.004 以降にバージョンアップしてください。なお、rpm パッケージは提供されていませんので、ソースからビルドする必要があります。