Pandora:FAQ JA

From Pandora FMS Wiki

Jump to: navigation, search

以下の多くの質問は、我々のフォーラム [1] や develop メーリングリスト [2] で質問されたものです。もし、あなたの問題に対する答えが見つからない場合は、フォーラムやメーリングリストも確認してみてください。

Contents

よくある質問 (FAQ)

どうやってインストールすれば良いですか?

Solaris に md5 をインストールするには?

回答: Sunfreeware から、あなたのシステムに合った md5 パッケージをダウンロードしてください。Unzip し、pkgadd を利用してインストールします。以下に Solaris 8 の例を示します。

root@sun:/export/home/root:> gzip -d md5-6142000-sol8-sparc-local.gz
root@sun:/export/home/root:> pkgadd -d ./md5-6142000-sol8-sparc-local 

the following packages are available:
  1  smcmd5    &nbspmd5
          (sparc) 6142000

select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: 1

古い AIX (4.3, 5.1) には Perl 5.8 がありません。エージェントを動かせないのですが。

回答: IBM toolbox より Perl 5.8 パッケージを取得できます。ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/perl/ よりダウンロードしてください。

なお、AIX には Perl 5.6 がバンドルされています。Pandora FMS エージェントに関してはこのバージョンでも動作しますので、Perl 5.8 をインストールする必要はありません。

古い HP-UX (11.0, 11.11) には、Perl 5.8 がありません。エージェントを動かせないのですが。

回答: HP-UX には、Perl 5.8 の公式 cpan パッケージをインストールできます。http://mirrors.develooper.com/hpux/downloads.html からダウンロードしてください。

Jpgraph はどうやったらインストールできますか?

ウェブコンソールの ./reporting/jgraph ディレクトリで Jpgrah ファイルを unzip してください。

Windows には GD ライブラリをどうやったらインストールできますか?

回答: Windows 用 PHP は、デフォルトで GD ライブラリを含んでいます。しかしデフォルトでは無効になっています。php.iniファイル (通常、c:\winnt\php.ini または c:\windows\php.ini にあります) を編集し、次の行を加えてください。

extension=php_gd2.dll

設定を反映させるためには、サーバを再起動してください。

CentOS で Pandora コンソールのインストールウェブページにアクセスできません

pandora_console フォルダは正しい場所(/var/www/html/pandora_console)にあり、パーミッションも正しい(ユーザ: apache - グループ: apache - パーミッション: 644)ですが、Pandora FMS コンソールインストールウェブページにアクセスできない場合は、Pandora の php コードの実行が制限されるポリシーで SELinux が有効になっている可能性があります。

それを確認するには、apache のエラーログおよび、apache の SELinux ポリシーの行を確認します。

この場合、対応としては SELinux を無効化します。これは、/etc/selinux/config を編集し、SELINUX=enforceing を disalbed に変更することにより行います。

# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

コメントにある通り、ファイルを編集したあとは SELinux を無効化するために再起動するか setenforce を行います。

# setenforce 0

Apache の再起動も忘れないようにしてください。

Windows には PEAR をどうやったらインストールできますか?

回答: Windows の PHP はすでに PEAR を含んでいます。php.ini ファイル内の include_pash のコメントを外す (行頭の ; を削除する) ことにより動作するようになります。

     ;include_path = ".;c:\php\includes"

また、PEAR のパスを追加してください。最後に次のような設定を追加します。

     include_path = ".;c:\php\includes;C:\php\PEAR"

その後、apache の再起動を忘れないようにしてください。

GNU/Linux の場合は、php-pear パッケージ、php-image-canvas および php-image-graph をインストールする必要があります。 Debian GNU/Linux のシステムに関する詳細は Openideas.info にあります。

CentOS の Firefox でフラッシュのグラフはどうしたら見れますか

Adobe サイトから rpm をインストールするには、firefox で動作する flash-plugin をパッケージリポジトリから取得します。yum install flash-plugin でインストールできます。

Windows で nmap が動作しません ( サテライトサーバまたは Pandora サーバ )

Windows で nmap.exe バイナリが動くようにするためには、MSVCP100.DLL ライブラリが必要です。

解決策としては、Microsoft の公式ウェブサイトから msvcp100.dll ライブラリをダウンロードします。"Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ" と共にインストールされます。

x86: http://www.microsoft.com/ja-jp/download/details.aspx?id=8328

x64: http://www.microsoft.com/ja-jp/download/details.aspx?id=13523

どうすれば良いですか?

アラートメールを送信するためのメールサーバはどう設定すれば良いですか

pandora_server.conf 内で設定します。変更を反映させるには、サーバを再起動する必要があります。

Solaris 8 で PERL 5.8 はどうやったら使えますか

最も良い方法は、BlashWave パッケージをインストールすることです。多くのオープンソースパッケージがパッケージシステムにあり、次のように動作します。

apt-get / yum / zypper システムが、リポジトリの記録および必要に応じたインストールまた、依存関係の解決を行います。詳細は以下を参照してください。 http://www.blastwave.org/howto.html

Linux から Windows のサービスを起動・停止するにはどうしたら良いですか (Pandora FMS のアラートでの実行)

Samba (3.x) の最新版と、リモートから Windows サーバへ管理者権限でアクセス(RPC)できる権限が必要です。以下の例では、対象サーバが 192.168.50.121 であり、"Administrator" ユーザに "pepe" というパスワードがついているとします。サービス一覧を表示し、"PandoraFMSAgent" という名前のサービスに対して操作を行いたいとします。

プロセス一覧の取得:

net rpc service list -U administrador%pepe -I 192.168.50.121 
.
. 全一覧


一つのプロセスの状態参照:

 net rpc service status  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 

 PandoraFMSAgent service is running.
 Configuration details:

	Controls Accepted    = 0x5
	Service Type         = 0x10
	Start Type           = 0x2
	Error Control        = 0x1
	Tag ID               = 0x0
	Executable Path      = C:\Archivos de programa\pandora_agent\PandoraAgent.exe
	Load Order Group     = 
	Dependencies         = /
	Start Name           = LocalSystem
	Display Name         = Pandora FMS agent

プロセスの停止:

net rpc service stop  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 .
PandoraFMSAgent service is stopped.

プロセスの起動:

net rpc service start  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 
Successfully started service: PandoraFMSAgent

複数モジュールの IP を同時に変更したいのですが、どうすれば良いですか

240の監視項目があるスイッチがあり、IP アドレスを変更しました。すべてのリモート監視の IP を、一つ一つ変更するのではなく、まとめて変更するにはどうすれば良いでしょうか。

Pandora SQL マネージャを使って、以下のような SQL を実行してください。(以下では、10.0.0.2 を 10.0.0.1 に変更しています)

UPDATE tagente_modulo SET ip_target = "10.0.0.1" WHERE id_target = "10.0.0.2";

Pandora FMS への MIB 追加はどうすればよいですか

質問: snmpwalk 機能で利用する MIB を pandora にロードする方法は? 回答: Pandora FMS は SNMP を直接は管理していません。GNU/Linux Net-SNMP ライブラリを利用しており、MIB のロード設定は /etc/snmp/snmp.conf にて行います。Pandora FMS を実行している Linux システムにて MIB ファイルの定義を /etc/snmp/snmp.conf で行う必要があります(また、apache を再起動します)。/etc/snmp/snmp.conf には、MIB 管理用のディレクティブがあります。

mibdirs DIRLIST

MIB ファイルを検索するディレクトリの一覧を定義します。これは、 -M オプションでも指定できます。詳細は snmpcmd(1) を参照してください。この値は、MIBDIRS 環境変数や -M オプションで上書きされることに注意してください。

mibs MIBLIST

ロードする MIB モジュールのリスト(ファイルではありません)を定義します。これは、-m オプションでも指定できます。詳細は snmpcmd(1) を参照してください。この値は、MIBS 環境変数や -m オプションで上書きされることに注意してください。

mibfile FILE

MIBのトークン(または同等の設定)から読み込んだリストに加えて、ロードする (単一の) MIB ファイルを指定します。この値は、MIBFILES 環境変数で上書きされることに注意してください。

用語

タイムスタンプとは?

タイムスタンプは、特定のイベントが発生した日付と時間を示した文字列です。たとば、エージェントからのデータを受信した時などです。

SVNとは?

Subversionのことです。Pandora FMS の開発に使っているバージョン管理ツールです。SVNは、コマンドラインツールの名前です。

全体の変更 / 管理

多くのモジュールの IP を一度で変更したいのですが、どうすれば良いですか

230のモニタ項目があるスイッチがあります。とある理由により、スイッチの IP アドレスを変更する必要があり、エージェントビューでの IP を変更する必要があります。すべてのリモートモニタリング項目に対する IP を変更したいのです。

エージェントの IP アドレスを一度の設定で変更するには、SQL マネージャで次の SQL を実行します。

UPDATE tagente_modulo SET ip_target = "10.0.0.1" WHERE id_target = "10.0.0.2";

データベース

Mysql の root のパスワードを忘れてしまいました。どうしたら良いでしょうか。

次のコマンドを実行します。

service mysql stop

MySQL が停止するのを待って、以下のコマンドを実行します。

mysqld_safe --skip-grant-tables &

すると、root でパスワード無しでログインできるようになります。

mysql -uroot mysql

MySQL のコマンドラインで、次のコマンドを実行します。

UPDATE user SET password=PASSWORD("none") WHERE user="root"; FLUSH PRIVILEGES;

実行中の mysqld のインスタンスを停止します。

       kill `ps aux | grep -e "--skip-grant" | grep -v grep  | awk '{ print $2 }'`

通常通、mysql のサービスを再起動します。

       service mysql start

以上で、root のパスワードが "none" にリセットされ、MySQL のユーザ権限が設定されます。次のように、新しいパスワードでログインできます。

mysql -uroot -pnone mysql


コマンドラインからの mysql および mysqldump の利用

質問: ドキュメントを参照しながら設定していますが、ドキュメントが間違っているようです。いくつかの場所では、ユーザ名に root と書かれていますが、デフォルトの sql ユーザ名は pandora です。

回答: 認識が正しいか /etc/pandora/pandora_server.conf を確認してください。いくつかの環境では正しく修正する必要があります。pandora ユーザにて、MySQL の Pandora FMS データベースに常にアクセスできる必要があります。

デフォルトでは、データベースは "pandora" で、ユーザ名も "pandora" です。パスワードはランダムな文字列が設定されます。コマンドとしては以下が実行されます。

mysql のコンソールにログインし、

mysql -u pandora -D pandora -p
<enter pass in console>

SQL のダンプを実行します。

mysqldump -u pandora -p pandora > file
<コンソールのパスワードを入力します>

繰り返しデータがデータベースに記録されません

Pandora データサーバで問題があります。以前のデータと同じ値をデータサーバが XML で受信していますが、DB に保存されません。これが Pandora データサーバの通常の動作であることを不思議に思います。これを変更できますか。設定ファイル等あるでしょうか。

これは、Pandora FMS の "通常の" 動作です。詳細は、ドキュメントの "Pandora の技術情報" を参照し、Pandora FMS の情報収集とデータベースへの保存をどのように行っているか確認してください。非同期(ASYNC)モジュールを使うことにより、自動圧縮を行わないようにすることができます。(ただし、Pandora FMS 3.2 以上です。それより前のバージョンでは他のモジュールと同様です。)

トラップコンソールで全てのトラップの削除方法

質問: トラップコンソールで全てのトラップを削除したいのです。特定の日付からのものを削除できますか。

回答: 全てのトラップを削除するには、DB インタフェース拡張にて次の SQL を実行します。

DELETE FROM ttrap;

2010年7月10日までの全てのトラップを削除するには、次の SQL を実行します。

DELETE FROM ttrap WHERE timestamp < '2010-07-10 00:00:00';

クラッシュしたテーブル

例えば下記のように、特定のテーブルがクラッシュしているというエラーが表示されることがあります (この例では pandora.tserver)。

SQL error:  Table './pandora/tserver' is marked as crashed and should be repaired  ('SELECT COUNT(id_server) FROM tserver WHERE 1 = 1 LIMIT 1') in /srv/www/htdocs/pandora_console/include/db/mysql.php on line 81
SQL error: Table './pandora/tserver' is marked as  crashed and should be repaired ('SELECT COUNT(id_server) FROM tserver  WHERE status = 1 AND keepalive > NOW() - INTERVAL 15 MINUTE') in /srv/www/htdocs/pandora_console/include/db/mysql.php on line 81

この問題は、MySQL サーバが正しくシャットダウンされなかった場合などに発生します。

解決するには、MySQL のコマンドラインから下記のクエリを実行し、破損したテーブルの修復を行います。

repair table tserver

Pandora Console インストール時に、"BLOB/TEXT column 'XXXXX' can't have a default value" というエラーが表示される

MySQL 5.6 から、sql_mode のデフォルト設定に "STRICT_TRANS_TABLES" が含まれるようになりました。 表題のエラーは、この設定の影響です。


解決するには、次のようにします。

  • MySQL の設定ファイル my.cnf を編集します。my.cnf は、/etc/my.cnf、/usr/my.cnf、/usr/local/mysql/my.cnf などのパスにあります。
  • my.cnf の下記の記述を探します。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
これを、下記のように変更します。
sql_mode=NO_ENGINE_SUBSTITUTION
  • 設定を反映するため、MySQL サーバを再起動します。
/etc/init.d/mysql restart

ネットワーク

自動検出でネットワークのトポロジを正しく検出できません

Pandora FMS を仮想環境で実行しており、共有のネットワーク(NATを使った接続)を利用している場合は、実際のネットワークでなく検出できません。この状態かどうかは、以下のようにコマンドラインから、traceroute を実行することにより簡単に確認できます。

traceroute -n google.com

対象に到達するまでに、共有のネットワーク内で 7-15 ホップが表示されます。

ブリッジ接続を利用すれば、正しく動作します。

Debian / Ubuntu での SNMP 問題

最近 (2011年4月に書いてます) のバージョンの Debian /Ubuntu では、SNMP エージェントで MIB ツリーが有効になっていません。つまり、SNMP エージェントが MIB の数字を "文字" に変換せず、OID のまま扱います。これは、SNMP ソフトウエアの問題で、次の手順で再設定が必要です。

  1. mibs-downloader パッケージをインストールします
  2. /etc/snmp/snmp.conf を編集し、コメントアウトされていない全ての行を削除(もしくはコメントアウト)します

SNMPトラップコンソールが動作せず、ログに "couldn't open udp:162" と出ます

これは、Pandora FMS から snmptrapd が起動される前に、snmptrapd が起動されていた場合に起ります。そして、ポートがブロック(使われている)状態になります。

システムで起動されているデーモンを停止します。

/etc/init.d/snmpd stop

(suse 以外のシステムではコマンドが違うことがあります)

pandora サーバを再起動します。

/etc/init.d/pandora_server restart

この競合を避けるには、Pandora FMS サーバが起動したあとに、システムの SNMP を遅れて起動するようにしておくと良いです。

"possible SYN flooding on port 41121. Sending cookies" という kernel メッセージが出ます

この問題は、多くの TIME_WAIT 状態の接続があることに起因します。(netstat -an | grep TIME_WAIT | wc -l が 20000 より大きい)

解決するには、以下の kernel パラメータ調整をしてください。

echo 32000 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 30 >  /proc/sys/net/ipv4/tcp_fin_timeout

ロードバランシングやクラスタ環境では以下はやらないでください。

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

Enterprise の ICMP サーバを有効にしている場合、遅延モジュールが動作しません

Enterprise の ICMP サーバを有効化している場合に、遅延監視が正しく動作しないことがあります。その場合は、次のように nmap が正しく SRTT を返しているかどうかを確認します。

nmap -nsP -PE -oX - www.pandorafms.com | grep srtt

次のような出力が表示されている必要があります。

<times srtt="181998" rttvar="181998" to="909990" />

エージェント

Pandora FMS エージェント 4.x のプロセスが RHEL/CentOS/Fedora でメモリリークします

RHEL/CentOS 5.x/Fedora の環境を利用している場合、Pandora エージェント 4.x でメモリリークが発生する可能性があります。

この問題は、上記ディストリビューションにおけるデフォルト(バージョン 5.8.8)の Perl のスレッドライブラリの不具合によるものです。バージョン 5.13.9 以上になるまで修正されていません。

この問題を解決するには複数の方法があります。

a) OS や Perl のバージョンをアップデートする。

b) /usr/bin/pandora_agent 内の次の行をコメントアウトする。

eval {
       local $SIG{__DIE__};
       require threads;
       require threads::shared;
       require Thread::Semaphore;
};
if (!$@) {
       $Sem = Thread::Semaphore->new;
       threads::shared::share (\$Xml);
       threads::shared::share (\$Sem);
}

これにより、Pandora エージェントはスレッドを使わずに動くようになりますが、スレッドライブラリの不具合によるメモリリークを避けることができます。

後者の場合は、/etc/pandora/pandora_agent.conf 内で agent_threads パラメータを無効にすることを忘れないでください。

ファイルコレクションが動きません

UNIX/Linux を利用している場合は、まず最初に unzip コマンドがインストールされているかチェックしてください。ファイルコレクションを利用するために必要です。あわせて、Pandora FMS エージェントを実行しているユーザが unzip コマンドを実行できるようにパスが設定されている必要があります。

unzip パッケージをインストールしたあとは、コレクションフォルダーの中を確認する必要があります。コレクションフォルダーは以下にあります。

<pandora_agent_path>/collections

デフォルトのパスは次の通りです。

/etc/pandora/collections

コレクションフォルダーないに同じ名前のフォルダが無い *.md5 ファイルを削除する必要があります。エージェントは、次回の実行タイミングでコレクションをダウンロードします。

Windows の Pandora FMS エージェントを利用している場合は、unzip コマンドを実行できるようにパスが設定されているか確認してください。unzip コマンドは、Pandora FMS エージェントと共にインストールされるため、別途インストールする必要はありません。

その後、コレクションフォルダがあるか確認してください。コレクションフォルダのパスは次の通りです。

<pandora_agent_path>\collections

デフォルトのパスは次の通りです。

C:\Archivos de Programas\pandora_agent\collections.

コレクションフォルダーないに同じ名前のフォルダが無い *.md5 ファイルを削除する必要があります。エージェントは、次回の実行タイミングでコレクションをダウンロードします。

Windows サービス PandoraFMSAgent が初期化されません

1. Pandora FMS エージェントを Administrator 権限でインストールしているか確認してください。また、サービスが SYSTEM 権限を持っているか確認してください。これらを満たしていないとサービスは動作しません。

2. Pandora FMS エージェントインストーラが置かれているパスと同じところに PandoraAgent.exe ファイルが無いことを確認してください。そうでないと、サービスは、デフォルトの pandora_agent フォルダにインストールされたものではなく、そのバイナリを見てしまいます。そして、エージェントを初期化できないというエラーを出力します。.exe のパスは、Pandora FMS エージェントに必要なその他ファイルのパスと同じではないためです。

モジュール / プラグインの実行

Windows で SYSTEM とは異なるユーザでコマンドを実行するにはどうしたら良いですか

他のユーザの権限でコマンドを実行するには、外部の仕組みが必要です。それは Windows のコマンド RunAS でできますが、そのユーザのパスワードをその場で入力する必要があるため、自動化するには使いにくいです。そこで、コマンドラインでユーザ名とパスワードを引数として渡して実行することができる他のツールが必要です。CPAU というツールがまさにそれが可能で、フリーウエアで以下から入手することができます。

http://www.joeware.net/freetools/tools/cpau/index.htm

基本的な利用方法:

CPAU -u user [-p password] -ex "WhatToRun" [switches]
  user       ログオンするユーザ 例: user または domain\user
  password   ユーザのパスワード
  WhatToRun  実行コマンド

パスワードを暗号化できる他のツールもあります。セキュリティ上、.conf ファイルにパスワードを書くことに抵抗がある場合に利用できます。ツールは、RunAsSSPC というもので、以下から入手できます。

http://robotronic.de/runasspcEn.html

プラグインでの module_interval の利用

プラグインで module_interval を使う場合、エージェントの設定で行うように、module_interval に応じた XML 出力を行うおようにプラグインを調整します。

これにより、Pandora コンソールでプラグインモジュールが不明になるのを避けることができます。

エラー: モジュールの追加で問題が発生します。処理エラーになります。

このエラーは、モジュール作成時に起こる可能性があります。この場合、ローカルコンポーネントの編集など他の処理を実行した場合でも発生する可能性があります。エラーメッセージは、作成できませんでした。処理エラー といった内容です。 これは、mysql の設定パラメータ sql_mode によるものなので、my.cnf ファイルに次の設定を加えることで非制限モードに設定します。

  [mysqld]
  sql_mode=""

その後 /etc/init.d/mysql restart で mysql サービスを再起動し、モードが正しく設定されているか確認します。

  mysql -u root -p
  select @@GLOBAL.sql_mode;

これにより関連する問題はすべて解決します。今後問題が発生するのを避けるためにパラメータは恒久的に残しておきます。

アップグレードおよび移行に関する問題

5.0 から 5.1 へアップデートした後、"アップデートマネージャ" が動きません

<pandora_console>/extensions/update_manager.php と <pandora_console>/extensiones/update_manager/ ディレクトリを削除する必要があります。

サーバをアップグレードや移行すると、ネットワークモジュールが不明状態になります

サーバ名が変更され、旧サーバ名がサーバテーブルに無い場合に発生します。新しいサーバを利用するようにエージェントを手動で設定する必要があります。一つ一つ編集をしたくない場合は、SQL マネージャを使って、すべてのエージェントの設定を変更することができます。たとえば、新しいサーバ名が "linux-ppby" であれば、次のような SQL を実行します。

update tagente set server_name = "linux-ppby" 

サーバの再起動は必要ありません。数分待てば、モジュールは再実行されます。

Pandora FMS 4.0 へアップグレードしたあと、Pandora サーバを起動できません

Pandora FMS 4.0 へのマイグレーション後、次のエラーが表示されることがあります。

DBD::mysql::db do failed: Failed to read auto-increment value from storage engine at /usr/lib/perl5/PandoraFMS/DB.pm line 556.

pandoraサーバを起動したときにこのようなエラーがでた場合は、Pandora DB に対して次の操作を行います。

ALTER TABLE tsesion AUTO_INCREMENT = 1;

将来のバージョンにおいて、データベースに違いは発生しますか?

はい。しかし、古いエージェントも問題無く動作する互換性を保っています。サーバやデータベースをアップデートしたあとに、エージェントを再インストールする必要はありません。

バージョン 5.0 へのアップグレードでマイグレーションスクリプトの実行で問題が発生します

4.1 から 5 へのマイグレーションで、treport_content テーブルに関してエラーが発生する可能性があります。

ERROR 1452 (23000) at line 266: Cannot add or update a child row: a foreign key constraint fails (`pandora`.<result 2 when explaining filename '#sql-867_1ba'>, CONSTRAINT `?sql?867_1ba_ibfk_1` FOREIGN KEY (`id_report_content`) REFERENCES `treport_content` (`id_rc`) ON DELETE CASCADE ON UPD) 

これが発生した場合は、mysql で以下のクエリを実行します。

DELETE from treport_content_item WHERE id_report_content NOT IN (select id_rc from treport_content);

この後、2つの選択肢があります。265行目までをコメントアウトし、マイグレーションスクリプトを再実行するかまたは、事前に取得したバックアップからデータベースをリストアし、上述のクエリと実行してからマイグレーションスクリプトを再実行します。

4.1 から 5.0 へマイグレーションすると、pandora_server が起動しません

バージョン 4.1 から 5 へマイグレーションした場合、次のエラーでサーバが起動しない場合があります。

DBD::mysql::db do failed: Unknown column 'last_error' in 'field list' at /usr/lib/perl5/PandoraFMS/DB.pm line 811.

この場合は、Pandora のデータベースで以下のクエリを手動で実行します。

ALTER TABLE `tagente_estado` ADD COLUMN `last_error` tinyint(4) NOT NULL DEFAULT 0;

カスタマイズ / 開発

コンソールの任意のページを自動更新するにはどうすれば良いですか

以下を追加するだけです。

&refr=60

上記を URL に追加すると、60秒ごとに更新されます。

エージェントからのデータのように XML ファイルを生成したのですが、なぜか XML が認識されません

実際の XML の例を以下に示します。最も基本的な内容となっています。

<agent_data agent_name="testxml" timestamp="2010-09-06 22:10:00" version="1.0" os="Other" 
os_version="1.0" interval="300">
<module>
<name>5min</name>
<type>generic_data</type>
<data>73.3</data>
</module>
</agent_data>

複数のデータを含む XML ファイルは次のようになります。

<agent_data agent_name="testxml" timestamp="2010-09-06 21:10:00" version="1.0" os="Other" 
os_version="1.0" interval="300">
<module>
<name>Multi Data Sample</name>
<type>generic_data</type>
<datalist>
<data>
<value>73.3</value>
<timestamp>2010-09-06 21:00:00</timestamp>
</data>
<data>
<value>13.3</value>
<timestamp>2010-09-06 21:05:00</timestamp>
</data>
</datalist>
</module>
</agent_data>

あとは、xxxxxxx.data という名前で、Pandora FMS の入力ディレクトリに置けば、データサーバに処理されます。

未分類のもの

コンソールでのタイムゾーンの強制設定

Pandora FMS コンソールでは、PHP でタイムゾーン設定がされていないとヨーロッパ時間が採用されます。これを変更するには、include/config_process.php のタイムゾーン設定をあなたの好みのタイムゾーンに変更してください。例えば、メキシコシティであれば、次の通りです。

if (ini_get('date.timezone') == ""){
        date_default_timezone_set("America/Mexico_City");
#       date_default_timezone_set("Europe/Berlin");
}

タイムゾーンの問題

システムのタイムゾーン設定の問題に関して、Pandora システムが異なる時間設定を利用しているかどうかの確認方法を以下にまとめます。以下の方法でそれぞれのタイムゾーンを確認できます。

- システム (ターミナルにて)

date +"%z"
date

- データベース (mysql にて)

select now();
mysql> SELECT @@global.time_zone, @@session.time_zone;

- perl

perl -e 'my $t = localtime(); print "$t";'

- PHP: apache のディレクトリ (/var/www もしくは /srv/www/htdocs) に test_timezone.php ファイル作成し確認します

 <?php
     echo date("Y/m/d H:i:s O e");
 ?>

http://your_ip_server_address/test_timezone.php のように、ブラウザで参照します。

異なる部分が見つかったら、正しい時間が表示されるように設定を変更する必要があります。コンポーネントが特定のタイムゾーンを利用するように設定する必要があります。特に気にしない場合であっても、全コンポーネントを同じタイムゾーンに設定する必要があります。

- システムの設定 (debian の場合)

dpkg-reconfigure tzdata

- DB (mysql) の設定: /etc/mysql/my.cnf を開き "[mysqld_safe]" セクションに次の行を追加します

timezone = <time_zone>

- PHP の設定: /etc/php5/apache2/php.ini (ディストリビューションにより場所は異なります) に次の行を追加します

date.timezone = <time_zone>

- pandora_console でのみの設定: <pandora_console>/include/config.php に次の行を追加します

putenv("TZ=<time_zone>");

pandora_db スクリプトが /etc/cron.daily に設定されていますが実行されません。なぜでしょう?

もし、Debian もしくは Ubuntu サーバを利用しているのであれば、/etc/cron.daily/apt スクリプトに runparts の実行を停止し /etc/cron.daily に設定されている他のスクリプトの実行を阻害する問題が報告されています。

解決するには /etc/cron.daily/apt を削除します。もしくは、pandora_db.pl を直接 /etc/crontab より起動するように設定します。

vmware/ISO イメージをダウンロードしたら、正しくないイメージのようですが...

時々 Sourceforge.net のミラーが失敗します。sourceforge.net の違う場所(ミラー)からのダウンロードを試してみてください。すべてのファイルはテスト済で正しく動作します。多くの人が利用できています。:-)

Pandora FMS は SNMP timeticks をサポートしますか?

はい。SNMP timeticks は 0.001 秒単位で、100 timeticks = 1秒です。例えば、日数データを取得するには、事前処理モジュールの機能を利用し、値に 0.000000116 を掛ける必要があります。結果として 8640000で割った値になります。注意点としては、事前処理は割り算はできず、掛け算しかできないということです。つまり、0.000000116 = 1 / 8640000 となります。同様に、時間データであれば 100x60x60 = 360000 で、1/360000 = 0.000002778 です。

アラートが上がったときに、メールが送信されません。

/etc/pandora/pandora_server.conf ファイルでの SMTP 設定の例を示します。

mta_adress smtp.domain.com
mta_port 25
mta_user myloginuser@domain.com
mta_pass 123456
mta_from pandora@domain.com

mta_auth 設定に注意してください。これは、認証方式の"タイプ"の設定であり、パスワードの設定 (それは mta_pass です) ではありません。特別な方式を使っている場合は、例えば次のように設定します。

mta_auth LOGIN

エージェントが情報を送信していない時のアラートの送信

Q: Windows エージェントが何の情報も送信してこなくなったときに、アラートメールを送るようにするにはどうすれば良いでしょうか。コンソールには、"Out of Limits" が表示され、最新の接続が赤になっています。この状態になったときにアラートを発生させるにはどうすれば良いでしょうか。

A: "keepalive" モジュールを使います。詳細はドキュメントを参照してください。これは、モニタ間隔の 2倍の期間エージェント (リモートもしくはソフトウエアエージェント) からの情報を取得できなくなったときに状態が変化する特別なモジュールです。

"Lock wait timeout exceeded" というエラーが出るのですが

これは、MySQL サーバの問題です。処理がスタックして進まない状態であることを示します。それは、不完全なトランザクションにより発生します。この場合は、mysql サーバに接続し、次のように対処してください。

show innodb status \G

次のような応答が返ってきます。

------------
TRANSACTIONS
------------
Trx id counter 0 2005868535
Purge done for trx's n:o < 0 2005868523 undo n:o < 0 0
History list length 4
Total number of lock structs in row lock hash table 12990
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 2005868508, not started, process no 6801, OS thread id 1150482768
MySQL thread id 67, query id 5223 localhost root
show innodb status
---TRANSACTION 0 2005868518, ACTIVE 833 sec, process no 6801, OS thread id 1150617936 rollback
mysql tables in use 2, locked 2
ROLLING BACK 12992 lock struct(s), heap size 1685488, undo log entries 1557131
MySQL thread id 70, query id 5111 localhost pandora end
DELETE FROM tagente_datos WHERE id_agente_modulo IN (SELECT id_agente_modulo FROM tagente_modulo WHERE  
delete_pending = 1)

現在のクエリを表示する簡単な方法は次の通りです。

SHOW FULL PROCESSLIST

この例では、id 70 の処理が 833秒間アクティブのままフリーズしており、データアクセスをブロックしているように見えます。"lock wait" エラーになっています。

次のように該当処理を kill してください。

KILL 70;

時々、KILL には時間がかかります。根気良く待ってください。kill -9 での mysql デーモンの強制停止は良い方法ではありません。それをすると、おそらく 99% の確率でデータベースの不整合が発生します。なので、終了を待ってください。

M-W-D-H グラフでだけ問題が発生します。表示されません。

include/config.php 内の '$config_fontpath' の TrueType フォント設定が正しくないことが原因と考えられます。例えば、Gentoo Linux では、arial.ttf は '/usr/share/fonts/corefonts/arial.ttf' にあります。コンソールのファイルでは、reporting/FreeSans.ttf が指定されています。

«Parse error: parse error, expecting `T_OLD_FUNCTION'» というエラーが表示されます。

正確には次のエラーです:
     Parse error: parse error, expecting `T_OLD_FUNCTION' 
     or `T_FUNCTION' or `T_VAR' or `'}

何らかのグラフを見ようとしたときに、jpgraph.php で発生します。

回答:

Jpgraph の PHP バージョンを確認してください。PHP4 と PHP5 は違います。

Pandora サーバがダウンします。

原因は、/var/log/pandora/pandora_server.error ファイルで見つけられます。次のようなエラーメッセージであった場合は、以降の解決策を行ってください。

Starting Pandora FMS Server. Error logging activated.
DBD::mysql::st execute failed: Table 'pandora.tagent_module_inventory' doesn't exist at /usr/local/share/perl/5.10.0/PandoraFMS/DB.pm line 199.

この場合、以前インストールしたエンタープライズ版の Pandora サーバのファイルが残っているのが原因です。 特に、/usr/local/share/perl/5.10.0/PandoraFMS/Enterprise.pm が影響します。これを削除すればダウンしなくなります。

PHP エラーログファイルにエラーが出力されません。

PHP エラーログの設定は、php.ini ファイルの設定にあります。バージョン 1.2 からは、エラーを表示しないようにウェブコンソールの ./include/config.php ファイルにオプションを追加しています。これはアプリケーションの設定であり、php.ini を参照することには変わりありません。オプションは Pandora ウェブコンソールのみに影響します。./include/config.php 内の設定を変更することにより、動作を変更することができます。

     error_reporting(0);

もしくは次の通り。

     error_reporting(E_ALL);

この関数に設定可能な値は、PHP のドキュメントを参照してください。

64bit 版 Windows 2008 でエージェントを動かすと問題が発生します。

エージェントは 64bit 環境でテスト済で動作します。問題は以下の 2つの理由で発生する可能性があります。

1. エージェント実行における問題として、Pandora FMS エージェントに付属のバイナリツール類は 32bit でコンパイルされているため、64bit 環境では問題が発生することがあります。使っているシェルコマンド (gawk, cut, grep) が正しく動作するか確認してください。もしうまく動かないようであれば、問題のあるものを他のバイナリと置き換えてみてください。

2. ログイベントのパースおよびモニタリングの問題です。これは、正しくない DLL (PDH.dll) により発生します。このライブラリは "C:\windows\system32" にある必要があります。もしなければ、他の 64bit マシンからコピーしてみてください。Google で検索するとわかりますが、いくつかのアンインストーラで削除されてしまうことが珍しくありません。

3.0 へデータベースの変換を行う時に、MySQL でテーブルの作成で問題が発生 (errno: 150) します。

次のようなエラーが出ていると思います。

ERROR 1005 (HY000) at line 101: Can't create table './pandora/talert_template_modules.frm' (errno: 150)

これは、MySQL でいくつかのフィールドが期待したタイプでない場合に発生する問題です。2.1 での id_agente_modulo フィールドのタイプは、bigint(10) です。1.x から変換を行うとこの問題が発生します。 3.0 への変換ツールを実行する前に、mysql のコンソールで次のコマンドを実行してください。

ALTER TABLE tagente_modulo MODIFY id_agente_modulo bigint(10) unsigned NOT NULL auto_increment;

その後、変換ツールを再度実行してください。バージョン 2.x および 3.x では、MySQL で InnoDB のサポートが有効になっている必要があります。

その他の可能性としては、MySQL が古くいくつかの書式が対応していないことが考えられます。 少なくとも MySQL バージョン 5.1 を利用してください。

Pandora FMS サーバの debian (.deb) パッケージのインストールが失敗します。

Pandora FMS サーバを起動しようとすると、次のようなエラーが表示されます。

# /etc/init.d/pandora_server start
Pandora FMS Server is not running, cannot stop it.
Can't locate PandoraFMS/DB.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 
/usr/share /perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/bin/pandora_server line 28.
BEGIN failed--compilation aborted at /usr/bin/pandora_server line 28.
Cannot start Pandora FMS Server. Aborted.
Check Pandora FMS log files at '/var/log/pandora/pandora_server.error & pandora_server.log'

インストールされた Pandora FMS の perl ライブラリを次のようにコピーしてください。

cp /usr/local/share/perl/5.10.0 /usr/local/share/perl/5.10.1 -R

Pandora FMS がクラッシュし、ログに "DBD::mysql::db do failed: Duplicate entry '1808516' for key 'PRIMARY'" と出ます。

MySQL データベースに不整合が発生しています。また、自動インクリメンタルフィールドの同期がとれていません。 これを解決するには、問題が発生している自動インクリメンタルフィールドの値を更新します。

alter table xxxxx Auto_increment = 1234;

ここで、"1234" は最大値 + 2 です。この値は次のコマンドで得ることができます。

select MAX(primary_key_field) FROM xxxxx;

Pandora FMS のほとんどのテーブル不整合は、tagente_datos, tagent_access, tagente_datos_string, tevento で発生します。以下に tagente_datos_string の問題を修正する例を示します。

mysql> select max(id_tagente_datos_string) from tagente_datos_string;
+------------------------------+
| max(id_tagente_datos_string) |
+------------------------------+
|                      1900270 |
+------------------------------+
alter table tagente_datos_string Auto_increment = 1900272;

MySQL クラスタでノード間同期の問題が発生した場合は、[3] (ndb_autoincrement_prefetch_sz パラメータ) を参照してください。

これで修正できない場合は、SQL ノードで my.cnf ファイルに次の設定を試してみてください。

ndb-autoincrement-prefetch-sz=1
auto_increment_increment=5
auto_increment_offset=5

この場合も、テーブルが自動インクリメンタルでプライマリキーを持っていて上限があるために、同様の問題が発生します。

例えば、tsesion がデフォルトの int(4) で定義されてしまっていると、大きなシステムでは小さすぎます。これを修正するには、より多くの割当をするために alter table を実行します。

alter table tsesion modify ID_sesion bigint(20) unsigned;

3Com のスイッチを持ってます。SNMP でのモニタリングをしたいのですが、どうすれば良いですか ?

1. デバイスの MIB を見つけてください。たとえば、3COM OfficeConnect switch であれば、以下が検索できます。

http://www.mirrorservice.org/sites/ftp.3com.com/pub/mibs/open-view/3com-products.mib

MIB ファイルはデバイスごとにあります。MIB ファイルはテキストファイル (.txt もしくは .mib) で、テキストエディタで簡単に参照できます。

2. MIB ブラウザをダウンロードします。多くのフリーのツールがあります。例えば次のようなものがあります。

http://www.ireasoning.com/mibbrowser.shtml

もちろん、別のツールを使うこともできます。google で探してみてください。

3. MIB ブラウザに MIB をロードします。それぞれのツールで方法は異なります。

4. MIB ブラウザで対象のデバイスをブラウズします。アクセス元のホストからの SNMP アクセスが許可されている必要があります。もちろんデータをリモートから読みだすための SNMP コミュニティ名も必要です。

5. 使いたい項目を特定し、1.3.4.2.5.6.3.23 といった、それの数字を書きとめてください。これは "OID" です。これが Pandora FMS で該当デバイスからデータを取得するのに必要なもです。

6. 対象デバイスの IP アドレス、確認した OID および、SNMP コミュニティにて、ネットワーク SNMP モジュール(incremental data もしくは generic_data_inc タイプ) を作成します。

7. すべて問題なければ、初期データが 0 で、その後指定間隔でデータが収集されます。ほとんどの SNMP 情報はインクリメンタルデータなので、差分を確認するには少なくとも 2回データを収集する必要があります。

8. SNMP デバイスからステータス情報 (ポートの状態など) および、テキスト情報 (Cisco ルータの IOS バージョンなど) を取得することもできます。

SNMP モニタリングは最初の設定が難しいですが、一度できれば、ほとんどの SNMP モニタリングは同様に対応できます。あきらめないでください。;-)

問題が解決するまで 5分間隔でアラートが上がります。通知を一度だけに設定するにはどうすればよいですか?

「アラート管理」→「アラートテンプレート」で、アラートの再通知間隔を設定してください。

SUSE で、/tmp がテンポラリファイルでいっぱいになってしまいました。自動的に整理できませんか?

/etc/sysconf/cron にて、"temp" ディレクトリの削除ポリシーを定義してください。/var/spool/pandora/data_in にある pandora の古いデータ (例えば、古い _BADXML_ ファイル) の削除もできます。 SUSE の 11.x 以上には、テンポラリのディレクトリやデータを管理する強力なスクリプトがあります。

Pandora FMS がシャットダウンし、"Mysql has gone away" というエラーがログに記録されます。

my.cnf (MySQL の設定ファイル) を編集し、次のパラメータを設定してください。

wait_timeout = 40000
connect_timeout = 40000
interactive_timeout = 40000
max_allowed_packet=32M

コンソールで PHP 4.3 以上を使っている場合は、config_process.php を編集し、mysql_pconnect() をmysql_connect() に変更してください。いくつかの理由により、PHP 5.3 は接続し続ける動作をせず、MySQL のタイムアウトは考慮されません。そのため、"has gone away" エラーが発生します。

いくつかのサーバで多くのスレッドがあると、tserver テーブルがロックすることがあります。これを避けるためには、MySQL で次のコマンドを実行してください。

UPDATE tserver engine = MyISAM;

Pandora FMS からメールが送信されません

最初に、pandora_server.conf の設定をチェックしてください。mta_* の設定が問題ないことと、その MTA (メールサーバ) でメールを転送できることを確認してください。 もし、MTA で認証を利用している場合は、バージョン 0.79_16 以上の Sendmail.pm (通常 /usr/share/perl5/Mail/Sendmail.pm にあります) が必要です。 バージョン 0.79 は認証をサポートしていません。 もし、バージョンが古い場合は、0.79_16 に入れ替えてください。[4] から入手できます。もしくは、CPAN からインストールします。 古いバージョンでも、認証無しの MTA であれば問題ありません。

Windows XP で WMI サービスを使えません

原因としては以下のいずれかが考えられます。

1. ファイアーウォールにより WMI の接続ができない

2. リモート DCOM が有効になっていない。Microsoft の KB875605 [5] を参照してください。

3. その他問題 (WMI の問題や ACL) が発生している。この場合は、[6] を確認してください。

Windows 2003 server に Windows エージェントをインストールしましたが動作しません。サーバに何もデータが送られません。

いくつかのシステムでは、SYSTEM に追加したディレクトリパスがすぐに反映されず、新しいパス (pandora_agent/util) を %PATH% に設定するには再起動が必要です。他の方法としては、pandora_agent/util 内のファイルを c:\windows などパスが通っている場所にコピーします。XML データファイルのコピーに tentacle (デフォルト) を使う場合は、少なくとも tentacle_client.exe はパスが通っている場所にコピーする必要がありあす。

もちろん、サーバを再起動すれば、新たな Pandora FMS の util ディレクトリが認識されるので問題ありません。

Solaris 8 で PERL 5.8 は使えますか?

最善の方法は、BlashWave パッケージをインストールすることです。Lastware パッケージシステムに多くのオープンソースパッケージがあり、apt-get / yum /zypper システムのようにリポジトリデータを取得し依存関係を解決しながらインストールする動作をします。より詳しくは http://www.blastwave.org/howto.html 参照してください。

どんな操作をしても、ログイン画面に戻ってしまうのですが...

PHP プログラムが /usr/lib/php/session にあるファイルと異なるユーザで動作していないか確認してください。

Pandora SNMP コンソールを設定しましたが、トラップを受信しません。

次のように、pandora_snmptrap.log を確認してください。

tail -f /var/log/pandora/pandora_snmptrap.log

もし、"No access configuration - dropping trap." というログが出ていたら snmptrapd デーモンのアクセス制御の設定ができていません。問題解決には以下のコマンドを実行してください。

echo "authCommunity log public" >> /etc/snmp/snmptrapd.conf

/etc/init.d/pandora_snmpconsole restart

これで動作するでしょう。

いくつかのサーバでたくさんの BADXML ファイルが生成される問題が発生しつづけています。

よく繰り返される質問ですがエンコードタイプを変更してください。それ以外には以下を確認してください。

1. /etc/pandora_agent.conf のモジュール設定に、*少なくとも* 以下の行があるかチェックしてください。

module_begin
module_name
module_type
module_exec
module_end

確信はできませんが、BADXML を避けるためには、この順番で記述する必要があります。

2. データが "0.00" であるかどうか確認してください。なぜかは良くわかりませんが、全エージェントがこの値を返すと BADXML を生成します。単純に "0" に変更すると XML は正常に動作します。

Ubuntu 9.04, Fedora XX, Redhat XX, SuSe XX には、wmi-client パッケージがありません。どうしたら WMI を使えますか?

我々のダウンロードサイトから、一般的な Linux 用として提供されている wmiclient (32bit) をダウンロードしてください。これは、スタティックにリンクのバイナリですので、Ubuntu 9.04, Fedora およびその他 Linux ディストリビューションで動作します。

http://sourceforge.net/project/downloading.php?group_id=155200&filename=wmi_client_linux.tar.gz&a=54919695

もし問題があったり自分自身でコンパイルしたい場合は、Samba バージョン 4.x (3.x は WMI がなく WinExe をサポートしていません) の最新版のソースを取得する必要があります。コンパイルおよびリンクすると、wmic ツールが生成できます。先に説明した提供バイナリが動作しない場合にのみこの方法を利用してください。

安定版にアップグレードするにはどうすれば良いですか?

最新の安定版 (3.0) のコードは、我々のリポジトリの branches/pandora_3.0 ディレクトリにあります。Subversion クライアントを使って次のように取得できます。

svn co https://pandora.svn.sourceforge.net/svnroot/pandora/branches/pandora_3.0

新しいファイルで古いファイルを上書きしてください。ただし、安全のために、(データベースを含む)全てのバックアップを取得することをお勧めします。

また、エンタープライズ版の Pandora FMS [7] は、自動更新されます。

Linux から Windows サービスの起動/停止をする (Pandora FMS のアラートに応じて実行する) にはどうしたら良いですか?

Samba (3.x) と、Windows サーバへのリモート (RPC) からの管理者権限が必要です。以下に例を示します。192.168.50.121 がターゲットのサーバで、"Administrator" のパスワードが "pepe" です。"PandoraFMSAgent" というサービスを動作させたり、サービスの一覧を見たいとします。

サービス一覧を取得するには次のようにします。

net rpc service list -U administrador%pepe -I 192.168.50.121 
.
. full list


サービスの状態を見るには次のようにします。

 net rpc service status  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 

 PandoraFMSAgent service is running.
 Configuration details:

	Controls Accepted    = 0x5
	Service Type         = 0x10
	Start Type           = 0x2
	Error Control        = 0x1
	Tag ID               = 0x0
	Executable Path      = C:\Archivos de programa\pandora_agent\PandoraAgent.exe
	Load Order Group     = 
	Dependencies         = /
	Start Name           = LocalSystem
	Display Name         = Pandora FMS agent

サービスを停止するには次のようにします。

net rpc service stop  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 .
PandoraFMSAgent service is stopped.

サービスを開始するには次のようにします。

net rpc service start  PandoraFMSAgent -U administrador%pepe -I 192.168.50.121 
Successfully started service: PandoraFMSAgent

Pandora サーバはエージェントからデータを受け取っており、最新のデータは正しく表示されます。しかし、グラフが表示されません。エージェントは動作していて最新のデータも合っていますが、データベースは空です。

おそらく、Pandora FMS と時刻同期ができていないのでしょう。リモートシステムの時刻を確認してください。

データベースのバックアップは取れますか?

mysqldump にて簡単にデータベースのダンプが取れます。mysqldump で取得したダンプは、同じ名前の空の (データが入っていない) データベースへリストアできます。

バックアップの取得

mysqldump -u root -p pandora > /backup/pandoradb_backup.sql

バックアップからのリストア

mysql -u root -p
create database pandora;
use pandora;
source /backup/pandoradb_backup.sql

おそらく、次のように pandora ユーザにアクセス権を設定する必要があるでしょう。

grant all privileges on pandora.* to pandora@localhost identified by 'mypassword';

以上で完了です。

モジュールにアラートを設定しましたが条件に合致してもアラートが上がりません。proc モジュールでイベントログには出力されますが、アラートは上がりません。

"最小アラート数"が 0 であるか確認してください。例えば、もしそれが 1 であったとすると、アラートが上がる前に条件に合致する状態に 1度なっている必要があります。つまり、"最小アラート数" が 1 の場合、2回条件に合致しないとアラートは上がりません。

ネットワークサーバを起動したとき、'segmentation fault' となりサーバが停止します。

/etc/pandora/pandora_server.conf ファイルの network_threads の設定がいくつになっているか確認してください。もし、1GB より少ないメモリで 40 から 50 スレッド以上を使う設定をしていたとすると、おそらくそれだけのスレッドを扱う余裕がありません。減らしてみてください。設定と待ち時間によりますが、1つのネットワークスレッドで、100 から 200 のモジュールを十分扱えます。

Solaris 10 のマシンに pandora サーバをインストールしました。"This isn't GNU/Linux" というエラーを無視する方法はありますか。

Pandora は Solaris システムではあまりテストされていません。しかし、利用する方の責任において Solaris で使ってみることはできます。Config.pm の以下の部分を探してみてください。

die "[ERROR] This isn't GNU/Linux.

この行をコメントアウトすれば、Linux ではないことに関する警告無しに起動するでしょう。

Pandora FMS ウェブコンソールで、グラフに時間や日付、テキストが表示されません。

質問: ウェブコンソールをインストールしましたが、グラフを表示したときに日時や X 軸のテキストが表示されません。何が原因でしょうか。

回答: include/config.php を確認してください。pandora をインストールしたディレクトリが $config_homedir に設定されていなければなりません。

例:

 $config_homedir="/var/www/pandora_console/";

Pandora FMS への MIB の追加

質問: snmpwalk で使えるように、HP もしくは compaq の MIB を pandora にロードすることは出来ますか。

回答: Pandora FMS は SNMP を直接は管理していません。GNU/Linux のシステムに含まれる Net-SNMP のライブラリに依存しています。MIB のロードをするには、/etc/snmp/snmp.conf にて設定する必要があります。Pandora FMS コンソールが動作している linux システムにて、/etc/snmp/snmp.conf に MIB ファイルを追加してください。(また、apache を再起動します。) 以下に、/etc/snmp/snmp.conf の MIB 設定に関する説明を記載します。

mibdirs DIRLIST

MIB ファイルを検索するディレクトリのリストを設定します。これは、-M オプションを指定するのと同じです。詳細は、snmpcmd(1) のマニュアルを参照してください。この値は、環境変数 MIBDIRS および -M オプションで上書きされることに注意してください。

mibs MIBLIST

ロードする MIB モジュール (ファイルではありません) のリストを設定します。これは、-m オプションを指定するのと同じです。詳細は、snmpcmd(1) のマニュアルを参照してください。この値は、環境変数 MIBS および -m オプションで上書きされることに注意してください。

mibfile FILE

MIB のリスト(設定)に加えて、ロードする (一つの) MIB ファイルを指定します。この値は MIBFILES 環境変数により上書きされることに注意してください。

クイックインストールガイドでは説明されていない、Pandora FMS インストールに必要な設定項目がたくさんあります。

質問: ネットワークの設計やサポートを行っていますが、Apache や Perl、Linux に関してはあまり詳しくありません。監視の実現を考えていて、Pandora は良さそうに思うのですが、マニュアルを一つ一つ読むのに時間がかかっています。クイックインストールガイドでは説明されていない、多くの必要な設定があります。Apache などの設定はどうしたらよいですか。

回答: もし、ubuntu を使っているのであれば、apache や PHP の設定をする必要はありません。単純に依存パッケージをインストールするだけで大丈夫です。

apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server php-pear php5-gd php5-snmp snmp snmptrapd snmpd

上記コマンドで、Ubuntu サーバに、サーバおよびコンソールで必要なものがすべてインストールされます。Perl の依存ファイルに関する詳細は、クイックインストールガイドにあります。

同じマシンに、複数の pandora エージェントをインストールする方法を教えてください。

pandora_agent_daemon スクリプトの最初の 20行くらいに、変更すべき変数の定義があります。

PANDORA_PATH=/etc/pandora
DAEMON=/usr/bin/pandora_agent
PIDFILE=/var/run/pandora_agent.pid
LOGFILE=/var/log/pandora_agent.log

/etc/pandora2 ディレクトリを作ってください。

そして、/etc/init.d/pandora_agent_daemon を /etc/init.d/pandora_agent2_daemon にコピーします。コピーしたファイルの変数設定を、1つ目のエージェントと干渉しないように次のように編集します。

PANDORA_PATH=/etc/pandora2
DAEMON=/usr/bin/pandora_agent
PIDFILE=/var/run/pandora_agent2.pid
LOGFILE=/var/log/pandora_agent2.log

また、pandora_agent.conf を /etc/pandora2.conf にコピーします。pandora_user.conf を使う場合はそれも同様にコピーします。

Pandora FMS エージェントが Pandora FMS サーバに接続できません。接続しようとしたときに、Pandora FMS エージェントが、SSH のパスワードを聞いてきます。

XMLデータをコピーのための接続で、パスワードを聞かれます。SSH で接続させようとしていますが、うまくいっていません。

回答: pandora エージェントの接続を開始するまえに、SSH 鍵認証が動作するようになっている必要があります。その確認のためには、pandora エージェントをインストールしたホストにて、ssh pandora@pandora_server を実行してみてください。

pandora_server は、pandora サーバをインストールしたホスト名です。ログインできれば、SSH 鍵認証は正常に動作しており、pandora エージェントは Pandora サーバに接続可能です。

設定の仕方を以下に示します。 なお、SSH 鍵認証についての詳細は、Pandora FMS サーバのインストールドキュメントを参照してください。

1. Pandora FMS データサーバに "pandora" ユーザを作成します。"pandora" ユーザは、データファイルを受け取るディレクトリ (通常、/var/spool/pandora/pandora_in です) への書き込み権限があることが必要です。

2. Pandora FMS エージェントを利用しているシステムの root ユーザで、ssh の鍵を作成します。

ssh-keygen -t dsa

これで、/root/.ssh/id_dsa.pub ファイルが生成されます。

このファイルの内容を Pandora FMS データサーバの /home/pandora/.ssh/authorized_keys に追加します (ファイルが無い場合は新たに作成します)。 パーミッションは、pandora ユーザのみが読み書きできるようにしてください。

3. Pandora FMS エージェントをインストールしたシステムで、root ユーザにて次のように接続テストをします。

 ssh pandora@pandorafms_data_server

初回の接続時には、ホストのフィンガープリントと共に接続するかどうかを質問されます。 yes と答えると、問題なくシステムにログインできます。もし、うまくいかない場合は、SSH 認証の設定が正しくありません。もう一度上記手順を確認してください。

4. エージェントを起動します。Pandora FMS データサーバの受け取りディレクトリにデータファイルがコピーされます。

FC4 マシンのエージェントから、Pandora サーバへデータを送信できません。

fc4 のマシンにエージェントをインストールし、fc5 のマシンに pandora サーバをインストールしました。また、pandora サーバを動かしている fc5 のマシンにはエージェントもインストールしています。pandora サーバ(fc5) で動いているエージェントは問題ありませんが、fc4 のマシンで動いているエージェントから、pandora サーバへデータを送信できません。また、公開鍵の作成に問題がありました。

pandora エージェントの接続を開始するまえに、SSH 鍵認証が動作するようになっている必要があります。その確認のためには、pandora エージェントをインストールしたホストにて、ssh pandora@pandora_server を実行してみてください。

pandora_server は、pandora サーバをインストールしたホスト名です。ログインできれば、SSH 鍵認証は正常に動作しており、pandora エージェントは Pandora サーバに接続可能です。 SSH 鍵認証についての詳細は、Pandora FMS サーバのインストールドキュメントを参照してください。

Solaris の f-Secure ssh で用意した ssh 鍵を Linux に持ってくることはできますか

回答: IETF フォーマットを Openssh フォーマットへ変更する必要があります。Linux の Openssh にて次のように変換可能です。

ssh-keygen -i -f file_ietf_pubkey

グラフを見ようとすると画像が表示されません。また、壊れたアイコンを見ると、Fatal error: Call to undefined function: imagetypes() と表示されます

回答: imagetypes() は、GD の機能です。GD ライブラリがインストールされているか確認してください。また、gd.so ライブラリがロードされているか、php.ini を確認してください。ライブラリのロードには、次の設定を行います。

extension=gd.so.

Pandora ウェブコンソールが動作しません。MySQL のエラーが出ます。

回答: Pandora のデータベースを作成し、データベースに pandora ユーザを作成できているのであれば、include/config.php ファイル内のデータベースのユーザやパスワード設定を確認してください。また、MySQL サーバへの接続を手動で確認してみてください。

"client does not support authentication protocol" という MySQL のエラーが出ます

MySQL 4.1 もしくは MySQL 5.0 を使っています。ユーザ認証で Warning: mysql_connect() [function.mysql-connect]: client does not support authentication protocol requested by server; consider upgrading というエラーが出ます。

回答: MySQL 4.1 には、4.0 や 3.23 とは異なる新たな認証の仕組みがあります。PHP が、このバージョン向けにコンパイルされていない場合に発生します。解決方法は 2つあります。一つは、PHP を MySQL 4.1 クライアントライブラリを使ってコンパイルすることです。それが出来ない場合は、このテキストを参照して修正してください。基本的に、旧ハッシュアルゴリズムでの pandora ユーザのパスワードを保存しておく必要があります。

mysql> set password for 'pandora'@'localhost' = old_password('pandora');

Pandora agent を IPSO で動かせますか

回答: IPSO の不具合により、時々 Pandora の実行プロセス数を間違って検出したり他の Pandora エージェントを検出することがあります。これが発生するような場合は、Pandora エージェントを次のように起動してみてください。

$ nohup ./pandora_agent.sh &

Pandora エージェントを Cisco で動かすことはできますか?

回答: いいえ、できません。しかし、近くのホストにて Cisco に SNMP アクセスするサテライトエージェントを動かすことができます。また、Pandora サーバから、Cisco 機器に対してリモートで ICMP、TCP、UDP もしくは SNMP アクセスができます。Pandora FMS データサーバにてデータを収集するような設定もできます。

Pandora はどれくらいの規模の監視までサポートしますか?

回答: あなたが使っているシステムに依存します。もし、1台のサーバ (MySQL、Pandora サーバ、Pandora コンソールが一緒) であれば、Pentium4、512MBメモリの Linux システム (kernel 2.6) で、250〜350くらいのモニタ項目で、一ヶ月に 100万件のデータに対応できます。より強力な環境で、MySQL を最適化しメモリを大量に用意すれば、もっと多くのモニタリングが可能です。

いくつかのエージェントで、同じデータが 2回見られるのですが

回答: これは、Pandora サーバを複数起動すると起ります。Pandora サーバの起動が 1つだけか確認してください。

より高性能な設定として冗長構成で複数サーバをたてることはできますか。

回答: はい。HA および複数サーバのソリューションがあります。詳細については、(pandorainfo (at) gmail.com) までお知らせください。Pandora 1.2 以降で HA が可能です。

MySQL サーバで問題が発生 (シャットダウンやリスタート) したあとに、Pandora サーバが停止します。データの消失はありますか。

回答: Pandora サーバは、MySQL サーバに接続できなくなると自動的にシャットダウンします。Pandora サーバが停止すると、データパケットは Pandora サーバのデータ受け取りディレクトリに保存されます。Pandora サーバが再起動したときに、そのデータが処理され、失うことはありません。

Pandora Windows エージェント用の SSH 鍵ペアを生成するにはどうすれば良いですか

回答: Putygen を起動し、メインウィンドウの下で SSH2-DSA を選択してください。"Generate" をクリックします。ランダムな値を生成するために、空白部分でマウスを動かすように指示されます。鍵が生成されたら、"Conversion" メニューを開き、"Export OpenSSH key" を選択することによりエクスポートします。エクスポート時にパスフレーズは設定しないでください。ワーニングダイアログが表示されたら、"No" をクリックします。これで秘密鍵をエクスポートします。それを "id_dsa" として保存してください。

公開鍵をエクスポートするには、Putygen のメインウインドウの上の "Public key for pasting into OpenSSH authorized_keys file" を利用します。全テキストを選択し、クリップボードにコピーします。notepad でファイルを作成し、コピーしたテキストをペースとします。このファイルを "id_dsa.pub" として保存してください。

Pandora サーバに WIndows エージェントの鍵を設定する方法を教えてください

回答: サーバにログインし、/home/pandora/.ssh ディレクトリに行ってください。ディレクトリが存在しない場合は、作成してください。"authorized_keys" ファイルを適当なエディタで開き、公開鍵を新しい行として追加します。Windows エージェントから次のように確認してください。

c:\path\to\pandora> PandoraAgent --test-ssh

UNIX 用 Pandora エージェントの初回起動時の問題

質問: 次のように実行しました。

[root@localhost root]# /opt/pandora_agent/pandora_agent_daemon start
Pandora Agent is now running with PID 14786

すると、次のように表示されます。

[root@localhost root]# The authenticity of host '192.168.182.157 (192.168.182.157)' can't be established.
RSA key fingerprint is 9c:11:1b:ac:44:2e:10:98:16:75:00:58:34:18:5b:2d.
Are you sure you want to continue connecting (yes/no)?

yes と入力しても再度表示されます。何が問題でしょうか。

回答: エージェントを停止して、初回の接続を手動で行ってください。 ssh pandora@pandora_server_ip を手動で実行して、yes と入力してください。また、ssh 公開鍵の設定が正しくできている必要があります。これを実行したのち、エージェントを起動してください。以降は問題なく動作します。

PandoraFMS エージェントをシステム起動時に自動起動させるにはどうすれば良いですか

質問: Linux システムに pandora エージェントをインストールしました。システム起動時に自動起動するようにしたいのですがどうすれば良いですか。

回答: pandora_agent_daemon を /etc/init.d にコピーします。

そして、pandora_agent_daemon がシステム起動時に実行されるように次のようにします。

ln -s /etc/init.d/pandora_agent_daemon /etc/rcX.d/S99pandora_agent_daemon

ここで、X は、起動させる run レベルです。

また、シャットダウン時に pandora_agent_daemon が停止する設定をします。

ln -s /etc/init.d/pandora_agent_daemon /etc/rc0.d/K99pandora_agent_daemon
ln -s /etc/init.d/pandora_agent_daemon /etc/rc6.d/K99pandora_agent_daemon

PHP-PEAR RPM の問題

質問: php-pear rpm パッケージをインストールしましたが、グラフが動作しません。

回答: デフォルトでは php-pear は /usr/share/pear にインストールされます。

次のようにしてください。

 cp /usr/share/pear/PEAR.php /var/www/html/pandora_console/reporting/

(pandora_console の PATH を確認してください)

そして、apache がそのファイルを読めるようにします。

 chown apache PEAR.php

(どのユーザで apache を実行しているか確認してください。おそらく apache もしくは www-data です)

ウェブコンソールでの "Unknown agent" の問題

質問: ウェブコンソールでエージェントを作成しましたが、データの取得ができません。ログを見たら次のようなエラーが出ていました。

  2007/07/11 14:13:45 ulises_Data [V1] ERROR: Received data from an unknown agent

But the agent is created in the webconsole

しかし、ウェブコンソール上にエージェントは作成されています。

回答: libxml-simple-perl のインストールが必要です。

  apt-get install libxml-simple-perl

VMWare イメージで eth0 が動きません

質問: eth0 インタフェースが見つかりません。IP アドレスを変更しようとしたらできませんでした。(eth0: error while getting interface flags: no such device と表示されます)

回答: 次のように eth0 のキャッシュをクリアしてください。これは、vmware イメージをコピーした時に MAC のキャッシュが原因で発生します。

  rm /etc/udev/rules.d/*.*

SLA の定義に小数を使うにはどうすれば良いですか

回答: 次のように (MySQLの) SQL コマンドで ALTER TABLE を実行してください。

ALTER TABLE treport_content_sla_combined MODIFY `sla_limit` double(18,3) default NULL;
ALTER TABLE treport_content_sla_combined MODIFY `sla_min` double(18,3) default NULL;
ALTER TABLE treport_content_sla_combined MODIFY `sla_max` double(18,3) default NULL;

この例では小数点以下 3位までになります。もっと必要であれば再度 alter table を行ってください。この操作は SLA に対してのみ可能です。

postprocess フィールドの精度をもう少し上げたいのですが

回答: 次のように SQL クエリを実行してください。

ALTER TABLE tagente_modulo MODIFY `post_process` double(18,13) default NULL;

Debian に Pandora FMS 3.0 をインストールすると、PandoraFMS/DB.pm が無いといわれるのですが

回答: perl のバージョン検出の問題です。次のようにコピーしてください。

# cp /usr/local/share/perl/5.10.0 /usr/local/share/perl/5.10.1 -R

一括操作で SNMP が動きません

一括操作で snmpwalk を実行すると、数秒後に検出したインタフェースが表示されます。一つのインタフェースを選択すれば、値が表示されます。何も表示されない場合は、OID の解釈に問題があることを意味しています。

"SNMP OID の読み込みの問題" を参照してください。

SNMP OID の読み込みの問題

OID は、インストールされた MIB ファイルにより変換されます。最新バージョンの Ubuntu/Debian では、MIB はシステムにインストールされていません。そのため、MIB は明示的にダウンロードし、インストールする必要があります。

そのためには、snmp-mibs-downloader というパッケージをダウンロードしてインストールします。インストール後、/etc/snmp/snmp.conf ファイルを編集し、"mibs:" という行をコメントアウトします。

バージョン 3.2 にアップグレードしましたが、ポリシーモジュールが未リンク状態になります

バージョン 3.2 のポリシーモジュールから、カスタマイズでポリシーから未リンク状態にできるようになりました。ただし、既存のポリシーモジュールは、アップグレードするとリンクモジュールとしてマークされません。これは、次の SQL クエリで修正できます。

UPDATE pandora.tagente_modulo SET policy_linked=1 WHERE id_policy_module!=0;


グラフおよびレポートで使うフォントは、どのように追加したら良いでしょうか

Pandora にフォントを追加するには、include/fonts にファイルをコピーするだけで良いです。

より詳細は、http://www.openideas.info/wiki/index.php?title=Pandora_3.0:Documentation_ja:Data_Presentation にあります。

SNMP v1 と Pandora コンソールで問題があります

SNMP v1 を使って snmpwalk 機能を実行した時に、ウェブサーバのログに次のようなログが出ているかどうかで問題を確認できます。

snmprealwalk(): This name does not exist:

これは PHP のバグで、詳細は以下で確認できます。

https://bugs.php.net/bug.php?id=51336&edit=1

修正するには、PHP を新しいバージョンにアップグレードしてください。

SSLeay thread safe エラー

Pandora FMS サーバがダウンし、/var/log/pandora/pandora_server.error に次のようなエラーが出力されます。

/lib64/libc.so.6[0x399ea748f4]
/lib64/libc.so.6(realloc+0x102)[0x399ea753e2]
/lib64/libcrypto.so.6(CRYPTO_realloc+0x60)[0x39a22dae50]
/lib64/libcrypto.so.6(lh_insert+0xf9)[0x39a227e9f9]
/lib64/libcrypto.so.6(OBJ_NAME_add+0x6d)[0x39a225c72d]
/lib64/libcrypto.so.6(OpenSSL_add_all_ciphers+0x38f)[0x39a228532f]
/lib64/libcrypto.so.6(OPENSSL_add_all_algorithms_noconf+0xe)[0x39a2284f8e]
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Crypt/SSLeay/SSLeay.so(XS_Crypt__SSLeay__CTX_new+0x291)[0x2aaaaaee3be1]
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so(Perl_pp_entersub+0x3f6)[0x39a1290aa6]
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so(Perl_runops_standard+0xe)[0x39a128a34e]
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so(Perl_call_sv+0x650)[0x39a12376f0]
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so(Perl_ithread_run+0x155)[0x2af9342782f5]
/lib64/libpthread.so.0[0x399f20673d]
/lib64/libc.so.6(clone+0x6d)[0x399ead44bd]
...

この問題は、perl-Net-SSLeay ライブラリのバージョンが 1.42 以前で、thread-safe でない場合に発生します。より詳しい情報は http://search.cpan.org/~mikem/Net-SSLeay-1.45/lib/Net/SSLeay.pod#Using_Net::SSLeay_in_multi-threaded_applications を参照してください。

問題解決には、パッケージを新しいバージョンにアップデートする必要があります。

扱える数値データの上限を変更する

tagente_datos.datos が保持できるより大きな数値データを扱いたい場合は、Pandora FMS のデータベースに対して次のようなクエリを発行し、 扱える数値データの上限を変えることができます。

ALTER TABLE tagente_datos MODIFY datos double(precision, 2) default NULL;

例えば 128ビットの整数の範囲までを扱いたい場合は(最大値 3.4e38)、整数部に 39桁必要です。 Pandora FMS は小数点以下 2桁使うので、発行するクエリは次のようになります。

ALTER TABLE tagente_datos MODIFY datos double(41, 2) default NULL;

Pandora FMS のデータベースがとても大きく、pandora_db.pl がフリーズします

pandora_db.pl の Pandora FMS のデータベースの整理処理に問題が発生した場合は、$BIG_OPERATION_STEP を増やし(例えば、1000 から 10000)、$SMALL_OPERATION_STEP を減らして(100 から 200)ください。

$BIG_OPERATION_STEP は、時間で分割されるブロック数です。大きな値にするとブロックが大きくなり、早く処理されますがデータベースの負荷は上がります。

$SMALL_OPERATION_STEP は、1つのクエリで処理される行数です。小さい値にすると、クエリが軽くなります。