nagios
のステータスを監視する必要があります サービス(構成を変更して新しい構成を適用するたびに、 nagios
が見つかるためです。 サービスが停止しました。
「停止」状態で見つかった場合は、自動的に開始されます。
小さなシェルスクリプトを書いて、それを cron
に追加してみました 、しかし、サービスが実行されている場合でも、スクリプトは毎回実行されることがわかりました。スクリプトは次のとおりです。
#!/bin/bash
service nagios status | grep running
if [ $? -ne 0 ]
then
service nagios start
fi
サービスが「停止」状態にあるときはいつでも、 service nagios status
の出力 は、/usr/local/nagios/var/nagios.lockにロックファイルが見つかりません
を示しています 。 /usr/local/nagios/var/nagios.lock
を監視する必要があります inotify-tools
を使用したファイル または、これに代わるより良い方法はありますか?
承認された回答:
これに代わるより良い方法はありますか?
はい。 /etc/init.d/nagios
の適切なサービスマネージャーとジャンクを使用してください 脚本。せいぜい、System 5 rc
を使用しています upstartやsystemdなどの互換モードでスクリプトを作成します。この場合、AskFedoraのこの担当者が利用できなかった、互換モードでは利用できない便利なサービス管理メカニズムの一部を利用できません。最悪の場合、System 5 rc
で実行していることになります。 そして、そのスクリプトを使って中途半端なサービス管理を行うという希望は本当にありません。
利用可能なサービス管理システムはたくさんあります。インストールの詳細については説明しません。これは、この回答の範囲をはるかに超えているためです。代わりに、nagiosデーモンを起動して実行する方法に焦点を当てます。
デーモンツール
家族
daemontools
サービス管理ツールセットのファミリーには、次のものが含まれます。
- DanBernsteinのdaemontools
- アダムサンプソンのフリート
- BruceGuenterのdaemontools-encore
- LaurentBercotのs6
- 私の鼻
- GerritPapeのrunit
- ウェインマーシャルのperp
ここで必要な主なものは、デーモンになるプログラムです。 nagiosの場合、これは2または3ライナーです。ツールセットを組み合わせることができます。いくつかの異なるツールセットを使用した、適切な2ライナーを次に示します。
実行コード> noshツールセットを含むファイル:
#!/bin/nosh
setuidgid nagios
nagiosおよび
restart
無条件の自動再起動を引き起こすファイル:#!/bin/sh
exec trueキックのためだけに、nagios用のビルド済みサービスバンドルをnoshに追加しました。これは、バージョン1.13で利用可能になります。これは、依存関係情報などのいくつかの標準的なフリルを備えたものです。
実行コード> runitツールセットを含むファイル:
#!/bin/sh -e
exec chpst -u nagios nagios実行コード> s6ツールセットを含むファイル:
#!/command/execlineb -P
s6-setuidgid nagios
nagios実行コード> daemontools、daemontools-encore、またはfreedtツールセットを含むファイル:
#!/bin/sh -e
exec setuidgid nagios nagios-
rc.main
perpツールセットを含むファイル:#!/bin/sh -e
exec 2>&1
start() { exec runuid nagios nagios; }
reset() { exit 0; }
eval "$1" "[email protected]"
個別のサービスを実行するこのプログラムは、このサービスに固有のものだけです。残りはサービスごとに異なりません。 svstat
などのコマンドを使用して、すべてのサービスで同じ方法でサービスステータスを照会します。 。ブートストラップでの自動起動の有効化と無効化は、シンボリックリンクの問題です。サービスを手動で開始および停止するのは、 svc -u
の問題です。 およびsvc-d
。など。
noshには、 systemctl status
など、必要に応じていくつかのシムがあります。 およびinitctlstatus
。重要なのは、 service
があることです。 シム、だからあなたが本当に service nagios status
のように あなたはそれを使い続けることができます。 ☺しかし、ロックファイルビジネスを見るという厄介なことや、アドホックモニタリングの概念全体を忘れてください。適切なサービスマネージャーを配置して、そのようなことを行うことはありません。サービスマネージャーは監視を行い、デーモンプロセスを適切に追跡します。
systemd
同梱されているnagiosのsystemdサービスユニットファイルはありません。しかし、多くの人がすでに自分で書いています:
- DavidKowisの
nagios.service
SourceMageLinuxの場合 -
nagios.service
2012年にArchLinuxのnagiosパッケージに追加されました
systemdにはshimservice
は付属していません コマンドですが、一部のLinuxディストリビューションには別のソースからのものがあります。
さらに読む
- 自動化された方法でサービスの適切な監視を設定するにはどうすればよいですか?そのため、クラッシュした場合、その場で自動的に再起動しますか?