サーバ管理
Pandora FMS サーバ管理
Pandora FMS サーバの手動起動/停止
メンテナンスにより Pandora FMS サーバを手動で停止する場合は、サービスウォッチドッグが実行されているかどうかを確認してください。詳細は、こちらの章を参照してください。
Pandora FMS を手動で起動・停止するには、コマンドラインから以下を実行します。
- デーモンの停止 :
/etc/init.d/pandora_server stop
- デーモンの起動:
/etc/init.d/pandora_server start
- デーモンの再起動:
/etc/init.d/pandora_server restart
バージョン NG 756 以上
バージョン NG 756 以上では、上記の手順で pandora_ha サービスも起動されます。
Pandora FMS サーバ のみ を手動で起動・停止するには、コマンドラインから次のように実行します。
- デーモンの停止:
/etc/init.d/pandora_server stop-server
- デーモンの起動:
/etc/init.d/pandora_server start-server
- デーモンの再起動:
/etc/init.d/pandora_server restart-server
systemd を通して次のように pandora_ha の状態を確認できます。
systemctl status pandora_ha.service
データベース管理
Pandora FMS インフラストラクチャは外部メンテナンスを必要としませんが、古いデータを削除し、データベースをできるだけコンパクトに維持することが非常に重要です。 これらのタスクの実行を担当する Pandora FMS に不可欠なツールがあります。
Pandora FMS オープンソース版では以下にあります。
/usr/share/pandora_server/util/pandora_db.pl
Pandora FMS Enterprise 版の場合は以下です。
/usr/bin/pandora_db
このツール(以降 pandora_db.pl)は、Pandora FMS サーバパッケージに含まれているため、Pandora FMS サーバがインストールされているシステムから実行する必要があります。 コンソール用とサーバ用で 2つのシステムがある場合、Pandora FMS サーバがホストされている方で pandora_db を実行する必要があります。
Pandora_db は、Pandora FMS が適切に動作するための重要なツールです。そのため、システムの cron タスクで一時間ごとに実行するように設定されています。 以下のファイルで設定されています。
/etc/cron.hourly/pandora_db
このツールは、データベースの全てのメンテナンスを自動的に実行します。
- 古いデータの削除をします。
- 既存のデータを圧縮し、いくつかの間隔を補間します。これにより、グラフは同じですが、それらを保存するために必要なスペースははるかに小さくなります(これが、Pandora FMS が大量の情報を処理できる理由の 1つです)。
- 存在しないモジュールのデータベースでの整合性や、初期化されていないために利用されていないモジュール (これらのモジュールは、未初期化モジュールとして表示されます) をチェックします。
- エージェントの一日の接続情報を削除します。Pandora FMS は、24時間を越えるエージェント接続情報は必要としません。もし、それが増えると、データベースのアクセス速度が低下します。
前述したように、pandora_db の実行はシステムの cron タスクで設定されます。この設定は Pandora FMS サーバのインストールに自動的に含まれますが、確認すると良いでしょう。 /etc/cron.hourly/pandora_db
が存在し、次の行が含まれている必要があります。
Pandora FMS オープンソース版の場合:
"/usr/share/pandora_server/util/pandora_db.pl" "/etc/pandora/pandora_server.conf">/dev/null 2>&1
Pandora FMS Enterprise 版の場合:
"/usr/bin/pandora_db" "/etc/pandora/pandora_server.conf">/dev/null 2>&1
パーミッションとファイルの所有者を確認することも同様に重要です。 正しいパーミッションは 755
です。これは、次を実行することで付与できます。
chmod 755 /etc/cron.hourly/pandora_db
所有者に関しては、ユーザとグループ共に “root” である必要があり、次のように設定できます。
chown root:root /etc/cron.hourly/pandora_db
メンテナンスツールの手動実行
必要に応じて、前のセクションで説明した pandora_db を手動で実行できます。 シェルコンソールからコマンドを実行します。
Pandora FMS オープンソース版の場合:
/usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf
/usr/bin/pandora_db /etc/pandora/pandora_server.conf
次のような出力が表示されます。
負荷が高いシステムでは数時間かかる場合があるため、バックグラウンドでプロセスを実行することをお勧めします。
手動でメンテナンスツールをバックグラウンド実行するには、次のようにします。
Pandora FMS オープンソース版の場合:
nohup /usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf
nohup /usr/bin/pandora_db /etc/pandora/pandora_server.conf
バックグラウンドでプロセスの実行には少々時間がかかります。プロセスの実行中でも、シェルこのソールを閉じることができます。
インストールの状況によっては、ツールのディレクトリが変わります。ほとんどの場合は以下の通りです。
/usr/share/pandora_server/util/
Pandora FMS の以前のバージョンでは以下にあります。
/usr/share/pandora/util/
古いバージョンではなく、新しいバージョンのツールを使用していることを確認することが非常に重要です。 引数なしでプログラムを実行すると、メッセージの先頭にツールのバージョンが表示され、サーバにインストールしたバージョンが一致している必要があります。
データベースバックアップ
これは、他のファイルやサーバ設定を含めずに、データベースのみのバックアップまたは復元であることを認識しておくことが重要です。
コマンド mysqldump は、テーブル構造とその内容の完全なデータベースダンプを行います。このコマンドには、バックアップを実行するためのいくつかのオプションがありますが、ここでは最も基本的な使用法に焦点をあてます。これは、データベースを実行しているのと同じホストから実行することを意味します。 バックアップが行われるデータベース名とそれにアクセスするための認証情報を指定します。
mysqldump -u <user> -p <data_base>
例えば、“pandora” データベースをバックアップし、.sql
ファイルにダンプを出力するには次のようにします。
mysqldump -u root -p pandora > /backup/pandoradb_backup.sql
そのようにして行われたバックアップから、データベースを完全に復元できます。MySQL にログインし、復元されるデータベースの作成に進み、そのデータベースにバックアップをロードします。前のファイルを例にすると、次のように実行します。
[root@pandorafms ~]# mysql -u root -p mysql> create database pandora; mysql> use pandora; mysql> source /backup/padnoradb_backup.sql
最後に、Pandora FMS コンソールとサーバの両方で設定済みのユーザ権限を再度設定し、データベースへのアクセス権を付与します。(mypassword
をあなたのパスワードで置き換えてください)
grant all privileges on pandora.* to pandora@localhost identified by 'mypassword';
これは、データベースのバックアップ/リカバリを実行するのみであり、サーバの設定などの他のファイルに対するものではないことに注意してください。
Pandora FMS のバックアップとリカバリ
Pandora FMS サーバの配布パッケージには、Pandora FMS を完全にバックアップおよび復元するのに役立つスクリプトがあります。 このスクリプトは、サーバとコンソールが同じマシン上にあるシステムでのバックアップと復元を目的としています。
コンポーネントが複数に分かれた環境の場合は、適切なパラメーターでツールを使用するか、ニーズに合わせてツールを調整する必要があります。
この処理を実行するには、スクリプトを root 権限で実行する必要があります。スクリプトは以下にあります。
/usr/share/pandora_server/util/pandora_backup.sh
引数無しで実行すると、ヘルプを表示します。
このスクリプトは、次のコンポーネントのバックアップとリストアをするように設計されています。
- サーバ設定ファイル
- 処理待ちのファイルおよび、エージェントのリモート設定ファイル
- DB 全体
- ウェブコンソール全体
バックアップ元とバックアップ先オプション
このスクリプトは、ウェブコンソールの設定ファイルに設定されている DB のアクセス情報を利用します。そのため、ウェブコンソールの設定ファイルのパスを -c
オプションで指定する必要があります。
このパラメータは、ウェブコンソールのバックアップを取得するためにも利用されます。
パックアップ先は、-d オプションで指定します。バックアップファイルが pandorafms_backup_xxxxxxx.tar.gz
というファイル名で圧縮されて置かれます。
そのようにして、次のコマンドは完全な環境バックアップを実行します。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/
-b
オプションを付けるとデータベースのバックアップを行いません。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/ -b
データベースリストア
スクリプトでデータベースをリストアするには、パラメーター -d
を -s
に置き換えて、バックアップ先のパスを指定します。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz
これは、ディレクトリを含まないデフォルトのリストアです。
データベースとディレクトリのリストア
-f
オプションを使用すると、バックアップファイルを復元できます(現在のファイルを上書きします)。 現在の設定ファイルを上書きすると深刻な結果になる可能性があるため、バックアップリカバリを実行し、すべての Pandora FMS のファイル(コンソールおよびサーバ)を復元する場合は、-f
を使用します。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f
grant コマンドを使って、データベースのユーザ権限の復元を忘れないようにしてください。
ファイルのリストア(データベースではない)
前のオプションと同じように、データベースを含めずにファイルのみを復元できます。 それを行うには、上記の実行例に -b
オプションを追加します。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f -b
利用例
バックアップの作成
root で以下を実行します。
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -d /tmp/
次のようなメッセージが表示されます。
Backup completed and placed in /tmp//pandorafms_backup_2021-12-16-16-11-50.tar.gz
これは、バックアップが /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz
にできたことを意味します。
バックアップからのリストア
自動でバックアップからリストアするために、コマンドラインからデータベースへアクセスできる権限が設定されていると仮定します。
実行:
/usr/share/pandora_server/util/pandora_backup.sh -c /var/www/html/pandora_console/ -s /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz -f
次のような表示がされます。
Detected Pandora FMS backup at /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz, please wait... Dropping current database Restoring backup database Restoring files and configuration Done. Backup in /tmp/pandorafms_backup_2021-12-16-16-11-50.tar.gz restored
コンソール障害時におけるバックアップからのリストア
Pandora FMS コンソールが障害により異常状態になった場合、このツールでバックアップを取得していれば、コンソールをリストアすることができます。そのためには、次のようにバックアップファイルを手動で展開します。
cd /tmp tar zxvf pandorafms_backup_2021-12-16-16-11-50.tar.gz
これより、ウェブコンソールのファイルが /tmp
ディレクトリに展開されます。上記の例のバックアップの場合、次のようなディレクトリが作成されます。
/tmp/var/www/html/pandora_console
このディレクトリ内の全てのファイルをウェブコンソールのディレクトリ (利用しているディストリビューションにより異なります) にコピーしてください。
cp -R /tmp/var/www/html/pandora_console /var/www/html
以上でバックアップからリストアされ使えるようになります。
Pandora FMS の Watchdog 実装
コードリポジトリには、“ウォッチドッグ” (Watchdog) として使用できる小さなスクリプトがあります。 このスクリプトは、Pandora FMS の状態監視を実行します。
復旧動作(Pandora FMS の起動を試みる)を実行できますが、失敗した場合は、警告を発行します。このツールは以下にあります。
/usr/share/pandora_server/util/pandora_watchdog.sh
アラート生成スクリプト
pandora_watchdog.sh
スクリプトは、/usr/bin/pandora_alert
内の設定ファイルを探し、アラートを生成します。 このファイルには、ウォッチドッグが Pandora FMS サーバを起動できないときに実行するコードを定義します。この例では、SMS を介した警告に加えて、Tentacle サーバを停止します。
#!/bin/bash sendsms +34458474843 "The Pandora FMS has suffered some issue and it cannot be started." /etc/init.d/tentacle_serverd stop
スクリプトに実行パーミッションを与えます。
chmod 750 /usr/bin/pandora_alert
ウォッチドッグ起動
ウォッチドッグを起動し、バックグラウンドで動作させるには、次のように実行します。
nohup /usr/share/pandora_server/util/pandora_watchdog.sh &
ウォッチドッグを実行しているときに、メンテナンス上の理由で Pandora FMS サーバを手動で停止したい場合は、事前にウォッチドッグプロセスを停止して、サービスが自動的に起動されないようにする必要があります。
ヒストリデータベース
ヒストリデータベースは、メインの Pandora FMS データベースの応答を良くするために、そこから古いモジュールデータを移動させ保存しておくためのものです。データは、レポートやモジュールグラフの参照時に Pandora FMS コンソールでシームレスに利用できます。
ヒストリデータベースの設定
ヒストリデータベースを設定するには、それをホストする新しいサーバが必要です(メインデータベースのサーバとは異なります)。MySQL がインストールされているサーバを用意したら、次の手順に従います。
Pandora FMS コンソールで、セットアップ(Setup) → セットアップ(Setup) → ヒストリデータベース(Historical database) へ行き、接続設定 (接続先設定(Configure connection target)) にアクセスします。
次のフィールドを入力します。
- ホスト(Host): ヒストリデータベースのホスト名(または IP アドレス)
- ポート(Port): ヒストリデータベースの接続ポート番号。標準は、
3306
です。 - データベース名(Database name): ヒストリデータベースの名前。デフォルトは
pandora
です。 - データベースユーザ(Database user): ヒストリデータベースユーザ。デフォルトは
pandora
です。 - データベースパスワード(Dabase password): ヒストリデータベースのパスワード。これにより、ヒストリデータベースに接続できるようになります。 次に、カスタムパラメータを入力します(設定のカスタマイズ):
このフォームの最後のフィールドアクティブなデータベースに保持するデータ日数、転送ブロックサイズ(ステップ) および 転送の遅延(秒) は、データがヒストリデータベースへ送信される方法を定義します。つまり、オーバーロードを避けるために、n 日(データ日)以上前の古いデータが、n 行(ステップ)単位で、それぞれの送信単位の間に n 秒(遅延)待機しながらヒストリデータベースに移動されます。
同じ画面で、n 日を超えるイベントをヒストリデータベースに送信するかどうかを決定することもできます(アクティブなデータベースにイベントを保持する日数)。ただし、 イベントはヒストリデータベースを大幅に増大させることと、レポートを生成するときにのみ参照されイベント表示では参照されない点を考慮する必要があります。
ヒストリデータベースは、/usr/bin/pandora_db
バイナリを使用してデータを転送する Enterprise 版の機能です。加えて、ヒストリデータベースのメンテナンス設定を行う必要があります。
NG 753 およびそれ以前のバージョンにおけるヒストリデータベース
こちらの手順は、バージョン 753 およびそれ以前のバージョンのみを対象としています。バージョン 754 以降、必要なのは前の章で説明した接続値を設定することだけです。Pandora FMS は、インストールプロセス全体と ヒストリデータベースのメンテナンスを処理します。
ヒストリデータベースを設定するには、それを格納する(メインのデータベースとは異なる)新たなサーバが必要です。MySQL をインストールしたサーバを準備したら、以下の手順を実行します。
- 新たなヒストリデータベースを作成します。
[root@pandorafms ~]# mysql -u root -p mysql> create database pandora_history;
- Pandora FMS データベーススキーマを作成します。Pandora FMS コンソールと共に提供されている
/var/www/html/pandora_console/pandoradb.sql
が利用できます。それをヒストリデータベースサーバへコピーします。
cat pandoradb.sql | mysql -u root -p -D pandora_history
- ヒストリデータベースにアクセスできるように Pandora FMS サーバとコンソールで利用するユーザのパーミッション(
user
とpassword
)を設定します。
MySQL 5.7 向け:
GRANT ALL PRIVILEGES ON pandora_history.* TO 'user'@'%' IDENTIFIED BY 'password';
MySQL 8 向け:
$DBROOTPASS
: MySQL 8 root ユーザパスワード。$DBUSER
: MySQL 8 ユーザ名。$DBPASS
: MySQL 8 ユーザパスワード。$DBPORT
: MySQL 8 用接続ポート。$DBHOST
: MySQL 8 サーバの IP アドレスまたは FQDN。$DBNAME
: データベース名。
これらの環境変数を使用するには、GRANT を実行する前に次のようにターミナルで設定するだけです。
env TZ='Europe/Madrid' \ DBHOST='127.0.0.1' \ DBNAME='pandora' \ DBUSER='pandora' \ DBPASS='pandora' \ DBPORT='3306' \ DBROOTPASS='pandora'
ターミナルで以下を実行します:
systemctl restart mysql
ターミナルで以下を実行します:
export MYSQL_PWD=$DBROOTPASS echo "CREATE USER \"$DBUSER\"@'%' IDENTIFIED BY \"$DBPASS\";" | mysql -uroot -P$DBPORT -h$DBHOST echo "ALTER USER \"$DBUSER\"@'%' IDENTIFIED WITH mysql_native_password BY \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%'" | mysql -uroot -P$DBPORT -h$DBHOST export MYSQL_PWD=$DBPASS
ヒストリデータベース(DB)にはすべてのシステムデータ(無制限)を含めることができますが、ヒストリデータベースからデータを削除または圧縮する場合は、pandora_db スクリプトがノードから実行される際の設定を示すデータベース内の特定のデータを使用する必要があります。
これらの手順はすべて、バージョン 753 以前のバージョンのみを対象としていることに注意してください。
まず、ヒストリデータベースのデータを tconfig テーブルに入力します。 この SQL クエリを使用して最小限の設定を作成し、pandora_db がヒストリデータベースに対して実行される際の設定をします。 まず、MySQL のコマンドライン(CLI)を使用してデータベースに接続する必要があります。
これは例です。値は好みに応じて置き換えます(ただし、history_db_enabled
はゼロのままにします)。
INSERT INTO `tconfig` VALUES (1,'days_purge','180'); INSERT INTO `tconfig` VALUES (2,'history_db_enabled','0'); INSERT INTO `tconfig` VALUES (3,'days_compact','120'); INSERT INTO `tconfig` VALUES (4,'step_compact','1'); INSERT INTO `tconfig` VALUES (5,'event_purge','180'); INSERT INTO `tconfig` VALUES (6,'string_purge','180'); INSERT INTO `tconfig` VALUES (7,'MR','<actual MR value>');
< actual MR value >
を、メインの Pandora FMS サーバの現在の MR 値に置き換える場合は特に注意してください。- この例は、ヒストリデータベースに過去 6ヵ月間(180日)のデータを保存します。(
days_purge
) - 120日より古いデータを圧縮します。(
days_compact
) - メインデータベースに最低 1ヵ月分のデータがある場合、前月分がヒストリデータベースになくてもメインデータベースにはデータがあるため、合計 6か月のデータを参照できます。(
event_purge
およびstring_purge
) - 各値は任意に変更してください(
MR
およびhistory_db_enables
は除く)。ヒストリデータベースのストレージの上限は、マシンの空き容量にのみ依存します。 ヒストリデータベースは、メインデータベースおよび Pandora FMS から独立した物理サーバ にある必要があることに注意してください。
Pandora FMS 753 以前のバージョンでは、通常のデータベースのように、データベースであらかじめ設定したデータを使用してヒストリデータベースサーバ自体でメンテナンススクリプト pandora_db を実行し、さらに以下で説明するように設定ファイルを作成する必要があります。
Pandora FMS 753 以前のバージョンでは、追加の pandora_server.conf
ファイルを作成します。独自の設定ファイルとして /etc/pandora/pandora_server_history_db.conf
という名前を付けます。
dbengine mysql dbname pandora_history dbuser user dbpass password dbhost 192.168.70.140 log_file /var/log/pandora/pandora_db_history.log
これらの手順はすべて、バージョン 753 以前のバージョンのみを対象としていることに注意してください。
これで、ヒストリデータベースに対して pandora_db ツールを実行できるようになり、定期的に実行するように設定できます。
/usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server_history_db.conf
この処理は、別のサーバの別のデータベースに対して実行されるため、メインのデータベースには影響を与えません。