説明
CentOS6.4でnagiosサーバのフェイルオーバー構成を設定する方法について記載します。
実現方法
nagiosサーバのファイル同期はrsyncで行ないます。
nagiosサーバのフェイルオーバー構成はpacemaker+corosyncで設定します。
手順
■corosync,pacemakerをインストールする
http://blog.livedoor.jp/aloha_net/archives/39836080.html
上記blogのcorosync,pacemaker,crmインストール手順参照。
■corosyncのコンフィグファイルを作成する
http://blog.livedoor.jp/aloha_net/archives/39836080.html
上記blogのcorosyncコンフィグファイル参照。
■corosyncを起動する
http://blog.livedoor.jp/aloha_net/archives/39836080.html
上記blogのcorosync起動手順参照。
■nagiosの起動スクリプトをLSB準拠させる
pacemakerから利用できるよう、nagios起動スクリプトのリターンコードをLSB準拠させます。
(yumインストール時の起動スクリプトはLSB非準拠です。)
参考URL:http://chibitcpu.blogspot.jp/2014/04/lsb.html
/etc/nagios/nagios.cfg
~ pid_nagios () { if test ! -f $NagiosRunFile; then echo "No lock file found in $NagiosRunFile" # exit 1 return 1 fi NagiosPID=`head -n 1 $NagiosRunFile` } ~ stop) echo -n "Stopping nagios: " pid_nagios if [ $? -eq 1 ]; then exit 0 fi ~ status) pid_nagios if [ $? -eq 1 ]; then exit 3 fi printstatus_nagios nagios if [ $? -eq 1 ]; then exit 3 fi exit $? ;; ~
■crmコマンドでフェイルオーバー設定
# crm configure property no-quorum-policy="ignore" stonith-enabled="false" # crm configure rsc_defaults resource-stickiness="INFINITY" migration-threshold="1" # crm configure primitive nagios lsb:nagios op start interval="0s" timeout="120s" op monitor interval="10s" timeout="30s" op stop interval="0s" timeout="120s" # crm configure group nagios-group nagios
※ここまででフェイルオーバー設定は終了です。2系サーバは上記で構築したサーバをAMIコピーから起動して、corosyncのコンフィグファイルでIPアドレスを自IPに設定すればよいと思います。
■rsyncインストール
マスタ側 # yum install rsync スレーブ側 # yum install xinetd rsync
■rsyncマスタ設定
nagiosサーバの同期設定になります。
configファイル、プライグインファイルはyumインストールの場合は/etc/nagios、/usr/lib64/nagiosになります。
/var/log/nagios/retention.datの同期(“/var/log/nagios”)も必要になるのでお忘れなく。
これを同期しておかないとdisable notificationの設定が同期されず意図しないアラート通知メールが飛んだりします。
/etc/rsyncd.conf
[nagios_conf] path = /etc/nagios read only = false uid = root gid = root [nagios_plugins] path = /usr/lib64/nagios read only = false uid = root gid = root [nagios_retention] path = /var/log/nagios read only = false uid = root gid = root
■rsyncスレーブ設定
crontabに同期処理を登録します。例では5分間隔で設定しています。
# crontab -l
*/5 * * * * rsync -aucz --delete /etc/nagios/ 10.0.3.63::nagios_conf
*/5 * * * * rsync -aucz --delete /usr/lib64/nagios/ 10.0.3.63::nagios_plugins
*/5 * * * * rsync -aucz --delete --include="retention.dat" --exclude="*" /var/log/nagios/ 10.0.3.63::nagios_retention
■nagiosのretention.dat更新間隔を設定する
retention.datとはnagiosサーバが再起動時に使用する、状態を保持しておくファイルです。
このファイルにdisable notification等の設定情報を持っています。
ファイルの更新間隔がデフォルトでは60分になっているので、rsyncの周期に合わせて調整します。
/etc/nagios/nagios.cfg ※例は更新間隔を5分にしています。
~ # RETENTION DATA UPDATE INTERVAL # This setting determines how often (in minutes) that Nagios # will automatically save retention data during normal operation. # If you set this value to 0, Nagios will not save retention # data at regular interval, but it will still save retention # data before shutting down or restarting. If you have disabled # state retention, this option has no effect. retention_update_interval=5 ~
以上です。
元記事はこちら
「CentOS6.4でnagiosサーバのフェイルオーバー構成をpacemaker+corosync+rsyncで設定する方法」