Linuxサービスの稼働時間と終了時間を監視する方法。
chkconfig(RHEL 6.3)を使用して私のアプリケーションのサービスを作成しました。サービスの開始と停止のタイミングを監視したい。
サービスが提供されたときにログファイルに書き込んでサービスを監視できますが、service test start/stop
アプリケーションがクラッシュしたり異常終了した場合は、それをキャッチできません。
ベストアンサー1
さまざまなサーバーで多数のアプリケーションを監視するにはNagiOSを選択し、特定のアプリケーション、ファイルの所有権などを監視するにはMonitを選択します。
ローカルホストで実行されているデーモンプロセスまたは同様のプログラムを監視します。 Monitは、システム起動時に/etc/init.d/で始まるデーモンなどのデーモンを監視するのに特に役立ちます。たとえば、sendmail、sshd、apache、mysqlなどがあります。
多くのモニタリングシステムとは異なり、Monitはエラー状態が発生した場合に対処することができます。たとえば、sendmail が実行されていない場合、Monit は自動的に sendmail を再起動できるか、Apache が多すぎるリソースを使用している場合 (DoS 攻撃が進行中の場合など)、Monit は Apache を停止または再起動し、警告メッセージを表示します。送信できます。 Monitは、プロセスが使用するメモリやCPUサイクルなどのプロセス特性を監視することもできます。
更新::構成セクション
Monitはaptitudeまたはapt-getを介してインストールするのが最も簡単です。
sudo aptitude install monit
monitがダウンロードされたら、設定ファイルにプログラムとプロセスを追加できます。
vim /etc/monit/monitrc
set daemon 3 # check services at 3-second intervals
set logfile /var/log/monit.log # you can see what monit is doing
set alert [email protected] # receive all alerts
include /etc/monit.d/* # add monit script path
次に、アプリケーションの monit スクリプトを生成し、次のスクリプト例を確認します。
monitスクリプトを生成し、/etc/monit.d/
monit/etc/monit.d/httpd.monit
サービスを再ロードしてmonitログを確認します。tail -f /var/log/monit.log
Apacheの場合
check process apache with pidfile /usr/local/apache/logs/httpd.pid
start program = "/etc/init.d/httpd start" with timeout 60 seconds
stop program = "/etc/init.d/httpd stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 200.0 MB for 5 cycles then restart
if children > 250 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop
if failed host www.tildeslash.com port 80 protocol http
and request "/monit/doc/next.php"
then restart
if failed port 443 type tcpssl protocol http
with timeout 15 seconds
then restart
if 3 restarts within 5 cycles then timeout
depends on apache_bin
group server
Safesquid プロキシの場合
# Check if the safesquid process is running by monitoring the PID recorded in /opt/safesquid/safesquid/run/safesquid.pid
check process safesquid with pidfile /opt/safesquid/safesquid/run/safesquid.pid
group root
start program = "/etc/init.d/safesquid start"
stop program = "/etc/init.d/safesquid stop"
mode active
# If safesquid process is active it must be updating the performance log at
# /opt/safesquid/safesquid/logs/performance/performance.log every 2 seconds.
# If the file is more than 3 seconds old we definitely have a problem
check file "safesquid-PERFORMANCELOG" with path /opt/safesquid/safesquid/logs/performance/performance.log
if timestamp > 3 SECOND then alert