サーバデータディレクトリの複数 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 サービスの両方を再起動します。

Pandora FMS ドキュメント一覧に戻る