====== サーバ管理 ======
{{indexmenu_n>6}}
[[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]
===== Pandora FMS サーバ管理 =====
==== Pandora FMS サーバの手動起動/停止 ====
メンテナンスにより Pandora FMS サーバを手動で停止する場合は、サービス**ウォッチドッグ**が実行されているかどうかを確認してください。詳細は、[[:ja:documentation:pandorafms:installation:06_server_management#pandora_fms_の_watchdog_実装|こちらの章]]を参照してください。
Pandora FMS を手動で起動・停止するには、コマンドラインから以下を実行します。
* //[[:ja:documentation:pandorafms:introduction:03_glossary#daemon|デーモン]]//の停止 :
/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
{{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}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時間を越えるエージェント接続情報は必要としません。もし、それが増えると、データベースのアクセス速度が低下します。
* {{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}Enterprise 版では、全ての古いデータをスタンバイデータベースに移動します。
前述したように、**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
{{https://prewebs.pandorafms.com/manual/_media/wiki/icono-modulo-enterprise.png?direct&23x23|Enterprise 版}}Pandora FMS Enterprise 版の場合:
/usr/bin/pandora_db /etc/pandora/pandora_server.conf
次のような出力が表示されます。
{{ :wiki:pandora_fms_db_tool_v7.0ng.757_build_210915.png }}
負荷が高いシステムでは数時間かかる場合があるため、バックグラウンドでプロセスを実行することをお勧めします。
手動でメンテナンスツールをバックグラウンド実行するには、次のようにします。
Pandora FMS オープンソース版の場合:
nohup /usr/share/pandora_server/util/pandora_db.pl /etc/pandora/pandora_server.conf
{{https://prewebs.pandorafms.com/manual/_media/wiki/icono-modulo-enterprise.png?direct&23x23|Enterprise 版}}Pandora FMS Enterprise 版の場合:
nohup /usr/bin/pandora_db /etc/pandora/pandora_server.conf
バックグラウンドでプロセスの実行には少々時間がかかります。プロセスの実行中でも、シェルこのソールを閉じることができます。
インストールの状況によっては、ツールのディレクトリが変わります。ほとんどの場合は以下の通りです。
/usr/share/pandora_server/util/
Pandora FMS の以前のバージョンでは以下にあります。
/usr/share/pandora/util/
古いバージョンではなく、新しいバージョンのツールを使用していることを確認することが非常に重要です。 引数なしでプログラムを実行すると、メッセージの先頭にツールのバージョンが表示され、サーバにインストールしたバージョンが一致している必要があります。
==== データベースバックアップ ====
これは、他のファイルやサーバ設定を含めずに、データベース**のみ**のバックアップまたは復元であることを認識しておくことが重要です。
コマンド **mysqldump** は、テーブル構造とその内容の完全なデータベースダンプを行います。このコマンドには、バックアップを実行するためのいくつかのオプションがありますが、ここでは最も基本的な使用法に焦点をあてます。これは、データベースを実行しているのと同じホストから実行することを意味します。 バックアップが行われるデータベース名とそれにアクセスするための認証情報を指定します。
mysqldump -u -p
例えば、"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
引数無しで実行すると、ヘルプを表示します。
{{ :wiki:pandora_server_util_pandora_backup.png }}
このスクリプトは、次のコンポーネントのバックアップとリストアをするように設計されています。
* **サーバ設定**ファイル
* **処理待ちの**ファイルおよび、エージェントの**リモート設定**ファイル
* **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 サーバを手動で停止したい場合は、事前に**ウォッチドッグ**プロセスを停止して、サービスが自動的に起動されないようにする必要があります。
==== ヒストリデータベース ====
{{ :wiki:pfms-databases-sql.png?nolink& }}
{{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}ヒストリデータベースは、メインの Pandora FMS データベースの応答を良くするために、そこから古いモジュールデータを移動させ保存しておくためのものです。データは、レポートやモジュールグラフの参照時に Pandora FMS コンソールでシームレスに利用できます。
=== ヒストリデータベースの設定 ===
バージョン NG 754 およびそれ以降{{:wiki:icono-modulo-enterprise.png?23x23|Enterprise 版}}
\\
{{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}ヒストリデータベースを設定するには、それをホストする新しいサーバが必要です(**メインデータベースのサーバとは異なります**)。MySQL がインストールされているサーバを用意したら、次の手順に従います。
Pandora FMS コンソールで、**セットアップ(Setup)** → **セットアップ(Setup)** → **ヒストリデータベース(Historical database)** へ行き、[[:ja:documentation:pandorafms:management_and_operation:12_console_setup#ヒストリデータベース|接続設定]] (**接続先設定(Configure connection target)**) にアクセスします。
{{ :wiki:pandora_console_06.png }}
次のフィールドを入力します。
* **ホスト(Host)**: ヒストリデータベースのホスト名(または IP アドレス)
* **ポート(Port)**: ヒストリデータベースの接続ポート番号。標準は、''3306'' です。
* **データベース名(Database name)**: ヒストリデータベースの名前。デフォルトは ''pandora'' です。
* **データベースユーザ(Database user)**: ヒストリデータベースユーザ。デフォルトは ''pandora'' です。
* **データベースパスワード(Dabase password)**: ヒストリデータベースのパスワード。これにより、ヒストリデータベースに接続できるようになります。 次に、カスタムパラメータを入力します(**設定のカスタマイズ**):
{{ :wiki:pandora_console_06-1.png }}
このフォームの最後のフィールド**アクティブなデータベースに保持するデータ日数、転送ブロックサイズ(ステップ)** および **転送の遅延(秒)** は、データがヒストリデータベースへ送信される方法を定義します。つまり、オーバーロードを避けるために、n //日(データ日)//以上前の古いデータが、n 行(//ステップ//)単位で、それぞれの送信単位の間に n 秒(//遅延//)待機しながらヒストリデータベースに移動されます。
同じ画面で、n 日を超えるイベントをヒストリデータベースに送信するかどうかを決定することもできます(**アクティブなデータベースにイベントを保持する日数**)。ただし、 イベントはヒストリデータベースを大幅に増大させることと、レポートを生成するときにのみ参照されイベント表示では参照されない点を考慮する必要があります。
{{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}ヒストリデータベースは、''/usr/bin/pandora_db'' バイナリを使用してデータを転送する Enterprise 版の機能です。加えて、[[:ja:documentation:pandorafms:management_and_operation:12_console_setup#ヒストリデータベースメンテナンスオプション|ヒストリデータベースのメンテナンス]]設定を行う必要があります。
=== NG 753 およびそれ以前のバージョンにおけるヒストリデータベース ===
こちらの手順は、バージョン 753 およびそれ以前のバージョンのみを対象としています。バージョン 754 以降、必要なのは前の章で説明した接続値を設定することだけです。Pandora FMS は、インストールプロセス全体と [[:ja:documentation:pandorafms:management_and_operation:12_console_setup#ヒストリデータベースメンテナンスオプション|ヒストリデータベースのメンテナンス]]を処理します。
{{:wiki:icono-modulo-enterprise.png?23x23 |Enterprise 版}}ヒストリデータベースを設定するには、それを格納する(メインのデータベースとは異なる)新たなサーバが必要です。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 >'' を、メインの 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
この処理は、別のサーバの別のデータベースに対して実行されるため、メインのデータベースには影響を与えません。
[[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]