GNU/Linux >> Linux の 問題 >  >> Linux

Linux –サービスステータスを継続的に追跡しますか?

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
  • Lau​​rentBercotの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ディストリビューションには別のソースからのものがあります。

さらに読む

  • 自動化された方法でサービスの適切な監視を設定するにはどうすればよいですか?そのため、クラッシュした場合、その場で自動的に再起動しますか?

Linux
  1. Linux OS サービス「ネットワーク」

  2. Linux OS サービス「ポートマップ」

  3. Linux OS サービス「auditd」

  1. Linux OS サービス「nfs」

  2. Linux OS サービス「microcode_ctl」

  3. Linux OS サービス「NetFS」

  1. Linux OS サービス「ldap」

  2. Linux OS サービス「yppasswdd」

  3. Linux OS サービス「xendomains」