サーバデータディレクトリの複数 Pandora サーバでの共有
概要
Pandora FMS データサーバは、 /var/spool/pandora/data_in ディレクトリを利用し、ソフトウエアエージェントに送受信する情報を管理します。
このディレクトリはまた、Pandora コンソールからもアクセスできる必要があります。エージェントに送信する設定やコレクションにアクセスするためです。
複数のコンソールと複数のサーバがある場合、それぞれのコンソールは、サーバが対応しているエージェントを管理することができます。
ここで、複数の Pandora サーバが共通の環境で動作している場合を想定します。
それぞれのサーバのエージェントは、<i>data_in</i> フォルダを使って割り当てられたデータサーバと通信します。単一コンソールで、複数のデータサーバがある構成では、共通の情報として <i>spool</i> を共有するために NFS を使ってエージェント管理を一元化します。
コレクションの管理を簡単にするため、異なるコンソール間での pandora_console/attachment フォルダの共有も必要です。
HA 環境では data_in の conf, md5, collections, netflow フォルダーを共有する必要があり、pandora_console/attachment フォルダーも共有することをお勧めします。 data_in フォルダ自体は共有してはいけません。ただし、XML ファイルに対してTentacle サーバが同時アクセスするように設定されている場合を除きます。
NFS 設定
はじめに
<i>nfs-utils</i>パッケージを NFS でディレクトリを共有するすべてのシステムにインストールします。
yum install -y nfs-utils
NFS サーバの設定
NFS サーバは、Pandora FMS サーバとは 別サーバ であることが重要です。Pandora FMS サーバの 1つが NFS サーバーとして設定されていて、クライアントが接続できない障害があった場合、共有ファイルはアクセスできなくなり、Pandora FMS における エラーの原因 となります。
/etc/exportを編集し、次の行を加えます。
/var/spool/pandora/data_in/conf [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/collections [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/md5 [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/netflow [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash) /var/www/html/pandora_console/attachment [IP_CLIENTE](rw,sync,no_root_squash,no_all_squash)
ここで、[CLIENT_IP] は、リソースを共有するシステムの IP アドレスを意味します。
/var/spool/pandora/data_in/conf 192.168.70.10(rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/collections 192.168.70.10(rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/md5 192.168.70.10(rw,sync,no_root_squash,no_all_squash) /var/spool/pandora/data_in/netflow 192.168.70.10(rw,sync,no_root_squash,no_all_squash) /var/www/html/pandora_console/attachment 192.168.70.10(rw,sync,no_root_squash,no_all_squash)
システムのファイアーウォールがある場合は、必要なポートを開けます。
# CentOS firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --reload
設定が完了したらサービスを開始します。
# CentOS service rpcbind start service nfs-server start service nfs-lock start service nfs-idmap start
システム起動時に NFS が開始されるように設定します。
chkconfig rpcbind on chkconfig nfs-server on chkconfig nfs-lock on chkconfig nfs-idmap on
/etc/export の設定を変更したら、nfs-server を再起動します。
systemctl restart nfs-server
NFS クライアントの設定
最初にディレクトリをバックアップします。
mv /var/spool/pandora/data_in /var/spool/pandora/data_in_locale
<u>注意</u» apache がインストールされていないシステムの場合(インストールは必須ではありません)は、競合が発生しないように /etc/passwd および /etc/group に apache を追加します。
echo "apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin" >> /etc/passwd echo "apache:x:48:" >> /etc/group
フォルダーのパーミッションを確認します。
chown pandora:apache /var/spool/pandora/data_in chmod 770 /var/spool/pandora/data_in
リモートのディスクをマウントできるか確認します。
mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/conf /var/spool/pandora/data_in/conf mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/md5 /var/spool/pandora/data_in/md5 mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/collections /var/spool/pandora/data_in/collections mount -t nfs [IP_SERVIDOR_NFS]:/var/spool/pandora/data_in/netflow /var/spool/pandora/data_in/netflow
ここで、[IP_SERVIDOR_NFS] は、NFS サービスを提供するサーバの IP アドレスです。
例:
mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/conf /var/spool/pandora/data_in/conf mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/md5 /var/spool/pandora/data_in/md5 mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/collections /var/spool/pandora/data_in/collections mount -t nfs 192.168.70.10:/var/spool/pandora/data_in/netflow /var/spool/pandora/data_in/netflow
上記のコマンドが失敗した場合は、以下を確認します。
- ファイアーウォールの状態
- root で実行しているかどうか
- マウントポイントのディレクトリが存在するかどうか
ここまでですべて問題がなければ、再起動した時に自動的にマウントされるように /etc/fstab を設定します。
/etc/fstab ファイルに次の行を追加します。
[NFS_SERVER_IP]:/var/spool/pandora/data_in/conf /var/spool/pandora/data_in/conf nfs defaults 0 0 [NFS_SERVER_IP]:/var/spool/pandora/data_in/md5 /var/spool/pandora/data_in/md5 nfs defaults 0 0 [NFS_SERVER_IP]:/var/spool/pandora/data_in/collections /var/spool/pandora/data_in/collections nfs defaults 0 0 [NFS_SERVER_IP]:/var/spool/pandora/data_in/netflow /var/spool/pandora/data_in/netflow nfs defaults 0 0 [NFS_SERVER_IP]:/var/www/html/pandora_console/attachment /var/www/html/pandora_console/attachment nfs defaults 0 0
ここで、[NFS_SERVER_IP] は、NFS サービスを提供しているサーバの IP アドレスです。
Tentacle サーバを NFS 同時アクセス用に設定する
環境の準備ができたら、両方のコンピュータの Tentacle サーバを設定して、XML ファイルが別々のフォルダーに分散されるようにし、データサーバーが両方の Pandora FMS サーバでファイルを処理するときの同時実行を回避します。
それには、/var/spool/pandora/data_in ディレクトリに 2つのフォルダを作成します。
mkdir /var/spool/pandora/data_in/xml_srv1 mkdir /var/spool/pandora/data_in/xml_srv2
両方のディレクトリのパーミッションを調整します。
chmod pandora:apache /var/spool/pandora/data_in/xml_srv1 chmod pandora:apache /var/spool/pandora/data_in/xml_srv2
/etc/init.d/tentacle_serverd ファイル内で XML ファイルフォルダの設定をするための TENTACLE_EXT_OPTS の値を編集します。
TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections"
サーバ 1 では、次のようになります。
TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv1"
サーバ 2 では、次のようになります。
TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv2"
最後に、両方の Pandora FMS サーバの設定ファイルを次のように編集します。
# Pandora FMS server number 1 # incomingdir: It defines directory where incoming data packets are stored # You could set directory relative to base path or absolute, starting with / incomingdir /var/spool/pandora/data_in/xml_srv1
# Pandora FMS server number 2 # incomingdir: It defines directory where incoming data packets are stored # You could set directory relative to base path or absolute, starting with / incomingdir /var/spool/pandora/data_in/xml_srv2
すべての変更が完了したら、両方のサーバで pandora_server サービスと tentacle_serverd サービスの両方を再起動します。