個人用ツール

Pandora:Documentation ja:Share /var/spool directory between several Pandora servers

提供: Pandora FMS Wiki JP

移動先: 案内, 検索

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

/var/spool ディレクトリの複数 Pandora サーバでの共有

Pandora FMS dataserver uses the /var/spool/pandora/data_in directory, and all its contents to manage the information that recieves and send to the software agents.

Pandora FMS データサーバは、 /var/spool/pandora/data_in ディレクトリを利用し、ソフトウエアエージェントに送受信する情報を管理します。

That directory also needs to be accessible by the console of Pandora, so the instructions that it sends to the agents can reach them, being config files or collections.

このディレクトリはまた、Pandora コンソールからもアクセスできる必要があります。エージェントに送信する設定やコレクションにアクセスするためです。

If we have several servers with severs with several consoles, the default configuration, every console will be able to manage the agents of the server where it is located.

複数のコンソールと複数のサーバがある場合、それぞれのコンソールは、サーバが対応しているエージェントを管理することができます。

Now, let's suppose that we have several Pandora servers working in a common environment.

ここで、複数の Pandora サーバが共通の環境で動作している場合を想定します。

ファイル:Nfs schema.png

The agents of each server will communicate with their assigned dataserver using the data_in folder. On a multiple dataserver architecture with a single console, we will unify the agents management using NFS to share this pool of common information.

それぞれのサーバのエージェントは、data_in フォルダを使って割り当てられたデータサーバと通信します。単一コンソールで、複数のデータサーバがある構成では、共通の情報として spool を共有するために NFS を使ってエージェント管理を一元化します。

Info.png

Sharing the pandora_console/attachment folder between the different Consoles is also recommended as it makes collection management easier.


Info.png

コレクションの管理を簡単にするため、異なるコンソール間での pandora_console/attachment フォルダの共有も必要です。


どちらの手法が良いか?

Although both NFS and GlusterFS are able to share the required files, they are best recommended for different environments:

  • If data are stored in an external server to that of Pandora FMS, and it will work as its client, NFS may be used.
  • If data are stored in Pandora FMS servers or fault tolerance (at the software level) is required, we recommend GlusterFS.

ファイルの共有には、NFS および GlusterFS の両方が利用できますが、環境によって最適な方法は異なります。

  • 外部サーバ にデータが保存されており、Pandora FMS はクライアントとして動作している場合は、NFS を利用します。
  • Pandora FMS サーバ にデータが保存されていたり、(ソフトウエアレベルの)冗長化が求められる場合は、GlusterFS をお勧めします。

Info.png

It's mandatory to share data_in's conf, md5, collections and netflow folders for HA environments, and we recommend to share the pandora_console/attachment folder as well. The data_in folder itself must not be shared, unless Tentacle server is configured for concurrent access to XML files.


Info.png

HA 環境では、data_in の中の conf, md5, collections および netflow フォルダを共有することが必須です。また、pandora_console/attachment フォルダも共有することをお勧めします。data_in フォルダ自身は、Tentacle サーバを NFS 同時アクセス用に設定する を行っていなければ 共有しない ことをお勧めします。


NFS 設定

はじめに

Install the nfs-utils package on all the systems that will share the directory by NFS:

nfs-utilsパッケージを NFS でディレクトリを共有するすべてのシステムにインストールします。

yum install -y nfs-utils

NFS サーバの設定

Template warning.png

It's very important for the NFS server to be a separate server from those of Pandora FMS. If one of them were configured as NFS server and there were any errors prevented the client from connecting, the shared files would not be accesible, causing errors in Pandora FMS. If it is not possible to use a separate server, GlusterFS should be used instead.


Template warning.png

NFS サーバは、Pandora FMS サーバとは 別サーバ であることが重要です。Pandora FMS サーバの 1つが NFS サーバーとして設定されていて、クライアントが接続できない障害があった場合、共有ファイルはアクセスできなくなり、Pandora FMS における エラーの原因 となります。 別のサーバを使用できない場合は、代わりに GlusterFS を使用してください。


Edit the file /etc/export adding the following:

/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) 


Where [CLIENT_IP] stands for the IP address of the system with which the resource is going to be shared. For example:

ここで、[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)

In case that we have the firewall enabled in our system, open the required ports:

システムのファイアーウォールがある場合は、必要なポートを開けます。

# CentOS
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload


Once done, we start the services:

設定が完了したらサービスを開始します。

# CentOS
service rpcbind start
service nfs-server start
service nfs-lock start
service nfs-idmap start


Configure NFS to start when the system powers on:

システム起動時に NFS が開始されるように設定します。

chkconfig rpcbind on
chkconfig nfs-server on
chkconfig nfs-lock on
chkconfig nfs-idmap on


To refresh any change in the setup of the /etc/export restart nfs-server

/etc/export の設定を変更したら、nfs-server を再起動します。

systemctl restart nfs-server

NFS クライアントの設定

First, back up the directory:

最初にディレクトリをバックアップします。

mv /var/spool/pandora/data_in /var/spool/pandora/data_in_locale

Note: If that system doesn't have apache installed (is not necessary to install it), add to /etc/passwd and /etc/group the user apache to avoid permission conflicts:

注意: 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

Check the folder permissions:

フォルダーのパーミッションを確認します。

chown pandora:apache /var/spool/pandora/data_in
chmod 770 /var/spool/pandora/data_in


Check that we can mount successfully the remote folder:

リモートのディスクをマウントできるか確認します。

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

Where [IP_SERVIDOR_NFS] will the the IP direction of the server that provides the NFS service. For example:

ここで、[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

If the previous command fails, check:

  • Firewall status.
  • If we are running as root.
  • If the directory where we want to make the mounting exists.

上記のコマンドが失敗した場合は、以下を確認します。

  • ファイアーウォールの状態
  • root で実行しているかどうか
  • マウントポイントのディレクトリが存在するかどうか

If everything is right untill now, configure the system to be mounted automatically if there is a reboot, editing the file /etc/fstab:

ここまでですべて問題がなければ、再起動した時に自動的にマウントされるように /etc/fstab を設定します。

# Add the following lines to the configuration file /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

Where [NFS_SERVER_IP] stands for the IP direction of the server that provides the NFS service.

ここで、[NFS_SERVER_IP] は、NFS サービスを提供しているサーバの IP アドレスです。

GlusterFS 設定

GlusterFS allows to share Pandora FMS key directories between the servers and thus keep the data available if any of them becomes unreachable. Thanks to this system you will always have an active resource, and the data will be accessible even if not all servers are working.

GlusterFS を使用すると、サーバ間で Pandora FMS のキーディレクトリを共有できるため、いずれかのサーバがアクセスできない場合でもデータを利用できます。 このシステムのにより、常にアクティブなリソースがあり、すべてのサーバが機能していなくてもデータにアクセスできます。

必要条件

  • Selinux must be disabled or configured with the proper rules.
  • Firewall must be disabled or configured with the proper rules.
    • Port 24009/tcp must be open.
  • The /etc/hosts file must be configured with all names and IP addresses in all servers.
  • Additional disks with no partitioning must be created in all servers.
  • Selinux は無効化もしくは正しくルールを設定する必要があります。
  • ファイアーウォール は無効化または正しくルールを設定する必要があります。
    • ポート 24009/tcp が開いている必要があります。
  • /etc/hosts ファイルに前サーバの名前と IP アドレスが設定されている必要があります。
  • パーティショニングをしていない追加ディスク を全サーバに用意する必要があります。


パッケージインストール

To install GlusterFS search for the available versions:

GlusterFS をインストールするために、現状のバージョンを検索します。

yum search centos-release-gluster

Install the latest LTS stable version:

最新の LTS 安定バージョンをインストールします。

yum install centos-release-gluster37
yum install glusterfs glusterfs-cli glusterfs-libs glusterfs-fuse

XFS パーティションの作成 (ブロック)

Info.png

We will use gluster1.example.com and gluster2.example.com as sample servers for this guide.


Create a new physical volume using the /dev/xvdb disk:

Info.png

このガイドでは、サンプルサーバとして gluster1.example.com および gluster2.example.com を用います。


/dev/xvdb ディスクを使って新たな物理ボリュームを作成します。

pvcreate /dev/xvdb
   Physical volume “/dev/xvdb” successfully created

Create a volume group in /dev/xvdb:

/var/xvdb にボリュームグループを作成します。

vgcreate vg_gluster /dev/xvdb
   Volume group “vg_gluster”  successfully created

Create a volume brick1 for XFS bricks in both nodes of the cluster, setting the space to be assigned to them with the -L paremeter:

両クラスタノードの XFS ブロックとして brick1 ボリュームを作成します。割り当てる容量を -L パラメータで指定します。

lvcreate -L 5G -n brick1 vg_gluster
 Logical volume "brick1" created.

Alternatively you can set the space to be assigned as a disk percentage:

他には、ディスクのパーセンテージで容量を割り当てることもできます。

lvcreate -l 100%FREE -n brick1 vg_gluster

Configure the filesystem as XFS:

ファイルシステムを XFS として設定します。

mkfs.xfs /dev/vg_gluster/brick1

Create the mount point and mount the XFS brick:

マウントポイントを作成し、XFS ブロックをマウントします。

mkdir -p /glusterfs/brick1
mount /dev/vg_gluster/brick1 /glusterfs/brick1

Open the /etc/fstab file where to add the following line:

/etc/fstab ファイルを開き、次の行を追加します。

/dev/vg_gluster/brick1 /glusterfs/brick1 xfs defaults 0 0

Enable and start glusterfsd.service in both nodes:

両ノードで、glusterfsd.service を有効化し、開始します。

systemctl enable glusterd.service --now

From the first GlusterFS node, connect to the second and create the Trusted Pool (Storage Cluster):

最初の GlusterFS ノードから 2台目へ接続し、信頼されたプール(ストレージクラスタ)を作成します。

 gluster peer probe gluster2.example.com
   peer probe: success.

Verify the cluster peer:

クラスタの相手を確認します。

gluster peer status
  Number of Peers: 1
  Hostname: gluster2.example.com
  Uuid: e528dc23-689c-4306-89cd-1d21a2153057
  
   State: Peer in Cluster (Connected)

HA ボリュームの作成

Then use the XFS partition /glusterfs/brick1 in both nodes to create a HA replicated volume.

HA 同期ボリューム を作成するためには、両ノードの XFS パーティション /glusterfs/brick1 を利用します。

Create a subfolder in /glusterfs/brick1 mount point. It is needed for GlusterFS to work.

/glusterfs/brick1 マウントポイントにサブフォルダを作成します。GlusterFS が動作するために必要です。

mkdir /glusterfs/brick1/brick

Create a GlusterFS replicated volume:

GlusterFS 同期ボリュームを作成します。

Template warning.png

Run this command in just one of the nodes (in the example,gluster1.example.com).


Template warning.png

このコマンドは、1台のノードでのみ 実行します。(例では gluster1.example.com)


gluster volume create glustervol1 replica 2 transport tcp gluster1.example.com:/glusterfs/brick1/brick \
gluster2.example.com:/glusterfs/brick1/brick
  volume create: glustervol1: success: please start the volume to access data
gluster volume start glustervol1
  volume start: glustervol1: success

Verify the GlusterFS volumes:

GlusterFS ボリュームを確認します。

gluster volume info all
  Volume Name: glustervol1
  Type: Replicate
  Volume ID: 6953a675-f966-4ae5-b458-e210ba8ae463
  Status: Started
  Number of Bricks: 1 x 2 = 2
  Transport-type: tcp
  Bricks:
  Brick1: gluster1.example.com:/glusterfs/brick1/brick
  Brick2: gluster2.example.com:/glusterfs/brick1/brick
  Options Reconfigured:
   performance.readdir-ahead: on


クライアントでのボリュームのマウント

Install the client packages for GlusterFS:

GlusterFS のクライアントパッケージをインストールします。

yum install glusterfs glusterfs-fuse attr -y

Create a folder for Pandora FMS files:

Pandora FMS ファイルのためのフォルダを作成します。

mkdir /pandora_files/

Info.png

The path /pandora_files/ is only used as an example, and any other folder can be used.


Info.png

/pandora_files/ というパスは例です。任意のフォルダを利用できます。


Mount the GlusterFS volumes on the client:

クライアントで GlusterFS ボリュームをマウントします。

mount -t glusterfs gluster1.example.com:/glustervol1 /pandora_files/

Add the following line to /etc/fstab:

/etc/fstab へ次の行を追加します。

gluster1.example.com:/glustervol1 /pandora_files glusterfs defaults,_netdev 0 0


Once the partition has been mounted in /pandora_files/, proceed to create all the required directories in this folder:

パーティションを /pandora_files/ にマウントしたら、このフォルダ内に必要なディレクトリすべてを作成します。

cd /pandora_files/
mkdir collections md5 conf netflow attachment 

Copy all these directories from to the original folder in /var/spool/pandora/data_in:

オリジナルの /var/spooll/pandora/data_in フォルダから、一通りコピーします。

cp -rp /var/spool/pandora/data_in/conf /pandora_files/
cp -rp /var/spool/pandora/data_in/md5 /pandora_files/
cp -rp /var/spool/pandora/data_in/collections /pandora_files/
cp -rp /var/spool/pandora/data_in/netflow /pandora_files/
cp -rp /var/www/html/pandora_console/attachment /pandora_files/

Delete the old folders:

古いフォルダを削除します。

rm -rf /var/spool/pandora/data_in/conf
rm -rf /var/spool/pandora/data_in/md5
rm -rf /var/spool/pandora/data_in/collections
rm -rf /var/spool/pandora/data_in/netflow
rm -rf /var/www/html/pandora_console/attachment


And create the symlinks in both servers to the cluster:

両方のサーバでシンボリックリンクを作成します。

ln -s /pandora_files/conf /var/spool/pandora/data_in/
ln -s /pandora_files/md5 /var/spool/pandora/data_in/
ln -s /pandora_files/collections /var/spool/pandora/data_in/
ln -s /pandora_files/netflow /var/spool/pandora/data_in/
ln -s /pandora_files/attachment /var/www/html/pandora_console/

Info.png

Now both servers will be sharing the Pandora FMS key directories, so the process is complete. In case you need more shared volume, follow the steps shown in this section of this guide.


Info.png

これで設定は完了で、両サーバで Pandora FMS のキーディレクトリを共有するようになります。共有ボリュームを増やしたい場合は、このガイドの次の章(ボリュームの追加)を参照してください。


ボリュームの追加

It is possible to enlarge a GlusterFS volume with no downtime by increasing the number of bricks in a volume.

GlusterFS ボリュームは、ブロック数を増やすことにより停止することなく容量を拡張することができます。

In order to do so, a new disk must be created, following the same steps as before:

それには、最初のステップど同様に次のように新たなディスクを作成する必要があります。

lvcreate -L 5G -n brick2 vg_gluster
  Logical volume "brick2" created.

Configure it as XFS:

XFS として設定します。

mkfs.xfs /dev/vg_gluster/brick2

Create a new mount point and mount the new brick:

新たなマウントポイントを作成し、新たなブロックをマウントします。

mkdir -p /bricks/brick2
mount /dev/vg_gluster/brick2 /bricks/brick2

Extend in /etc/fstab:

/etc/fstab に追記します。

/dev/vg_gluster/brick2 /bricks/brick2 xfs defaults 0 0

Create the folder for the new brick:

新たなブロックのフォルダを作成します。

mkdir /glusterfs/brick2/brick

Expand the volume:

ボリュームを拡大します。

gluster volume add-brick glustervol1 gluster1.example.com:/glusterfs/brick2/brick \
gluster2.example.com:/glusterfs/brick2/brick

Verify the volume:

ボリュームを確認します。

gluster volume info glustervol1
  Volume Name: glustervol1
  Type: Distributed-Replicate
  Volume ID: 6953a675-f966-4ae5-b458-e210ba8ae463
  Status: Started
  Number of Bricks: 2 x 2 = 4
  Transport-type: tcp
  Bricks:
  Brick1: gluster1.example.com:/glusterfs/brick1/brick
  Brick2: gluster2.example.com:/glusterfs/brick1/brick
  Brick3: gluster1.example.com:/glusterfs/brick2/brick
  Brick4: gluster2.example.com:/glusterfs/brick2/brick

Check disk usage before the rebalancing:

リバランシングの前にディスク使用量を確認します。

df -h | grep brick

Rebalance:

リバランス:

gluster volume rebalance glustervol1 start

Check the rebalance:

リバランスの確認:

gluster volume rebalance glustervol1 status

Check disk usage again:

ディスク使用量の再確認:

df -h | grep brick

Check the files in the bricks:

ブロック内のファイル確認:

ls -l /glusterfs/brick*/brick/

Tentacle サーバを NFS 同時アクセス用に設定する

Once the environment is ready, proceed to configure the Tentacle severs of both computers so that the XML files get distributed into separate folders, to avoid concurrency when the Dataservers process the files in both Pandora FMS servers.

環境の準備ができたら、両方のコンピュータの Tentacle サーバを設定して、XML ファイルが別々のフォルダーに分散されるようにし、データサーバーが両方の Pandora FMS サーバでファイルを処理するときの同時実行を回避します。

To that end, create two folders within the directory /var/spool/pandora/data_in

それには、/var/spool/pandora/data_in ディレクトリに 2つのフォルダを作成します。

mkdir /var/spool/pandora/data_in/xml_srv1
mkdir /var/spool/pandora/data_in/xml_srv2


Correct the permissions of both directories:

両方のディレクトリのパーミッションを調整します。

chmod pandora:apache /var/spool/pandora/data_in/xml_srv1
chmod pandora:apache /var/spool/pandora/data_in/xml_srv2


Edit the TENTACLE_EXT_OPTS value in the file /etc/init.d/tentacle_serverd to set the XML file delivery folder:

/etc/init.d/tentacle_serverd ファイル内で XML ファイルフォルダの設定をするための TENTACLE_EXT_OPTS の値を編集します。

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections"

In server number 1, it becomes:

サーバ 1 では、次のようになります。

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv1"

In sever number 2, it becomes:

サーバ 2 では、次のようになります。

TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.data:xml_srv2"


Finally, edit the configuration file of both Pandora FMS servers as follows:

最後に、両方の 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


After applying all the indicated changes, restart both the pandora_server service as well as the tentacle_serverd service in both servers.

すべての変更が完了したら、両方のサーバで pandora_server サービスと tentacle_serverd サービスの両方を再起動します。