/service/...
Gentooベースのシステムに監視したいサービスがあります。実行しているか終了しているかを確認できますが、svc-status
実行していないが実行する必要があるかどうかはどうすればわかりますか?したがって、一部のエラーが原因で停止または終了します。可能ですか?
ユースケースは、同じサービスのインスタンスが多いが同時に実行されないことです。したがって、たとえば、4つのインスタンスを明示的に起動した場合にのみ、8つのインスタンスのうち3つが実行されている場合は、監視スクリプトを介して通知を受けたいと思います。
答え1
これは職業だと思います。監視装置。
バラよりMonitのインストールと設定方法。
答え2
これを達成するためにMonitを使用することができます。
実行中のサービスを自動的に確認し、サービスがない場合は起動します。 Monitはまた、あなたにこれを知らせるEメールを送ることができます。
最初に設定する必要がありますが、Monitはすべてのシステム管理者にとって優れた軽量ツールです。
Monitをインストールして構成する方法の例をいくつか紹介します。ここ。
答え3
この議論された私のスナックツールセット具体的には、いくつかの概念は、daemontools ファミリーの他のメンバーにも適用されます。
Gentooの人に話したいかもしれません。彼らプロセス監督ウィキの記事残念ながら、それは時代遅れで不完全です。
人類に対する奉仕の状況
もちろん、人間が読める形式でサービスの状態を取得する作業は、またはsvstat
コマンドs6-svstat
を介して行われます。sv stat
perpstat
noshツールセットにはsvstat
(別名service-status
)コマンドがあります。他の daemontools スイート ツールと同様に、必要な Service Pack ディレクトリを直接指すことができます。ツールセットは、system-control status
サービスパックディレクトリ(さまざまな一般的な場所)を検索し、一般的なサービス/ターゲット名からそれを呼び出すためのシムも提供しますservice-status
。
noshツールセットのservice-status
コマンドは、人が読める形式で1行を印刷したり、サービスごとに人が読める形式で複数行を印刷したりできます。どちらもサービスの現在の状態を含みます。停止、スタート、ここに行く、走るまたは止める。 1行形式では、状態が有効/無効状態(サービスを最初に開始するか、起動時に終了するかを指定)と異なる場合、その行にコメントが追加されます。最新バージョンでは、注釈に注意を引くために色が使用されています。
人間が読める複数行形式には、常にサービスの明示的な有効化/無効化状態、サービスログの尾などのその他のエントリ(log/
通常のディレクトリを持つ一般的なサービスがある場合main/
)が含まれます。ですから人間として読んで比較すればいいのです。
しかし、これは人が読めるフォーム。実際に安定して解析するのは難しいです。これは、人間が読める出力の1行形式のみを考慮します。
プログラムサービスの現状
20世紀に最初に提案されたキューメールセキュリティ格言の1つは、プログラム間のインターフェースについて人間が読めるコンテンツを解析するのが悪い考えです。モニタリングプログラム(モニタリングスクリプトなど)を実装するには遠くより良い使用を採用機械可読相互作用。
もちろん、マシンが読めるインターフェースの1つは、サービス管理API自体です。 (daemontools-encore互換)制御/状態APIは安定しており、長年にわたりよく知られており、ファイルシステムのFIFOと一般的なファイルです。状態を取得するためにサービスファイルを直接調べるライブラリを作成でき、人々はすでにそうしていますsupervise/ok
。supervise/status
バラよりPeter Ruibal and Andrés J. DíazのPython監督ライブラリそしてVoxerのNode JavaScriptライブラリ、いくつかの例を見てください。
nosh ツールセットには、Microsoft INI または JSON 形式のサービス状態に対してマシンが読み取ることができる出力を明示的に生成するコマンドsvshow
(service-show
または同様の shim) も付属しています。system-control show
サーバー/データセンター監視ツールに統合
supervise/status
Bernstein daemontoolsシステムは、Guenter daemontools-encoreによって拡張され、ノッシュサービス管理に使用されるさまざまな監視システムとして知られています。そのまま使用できます。
追加の便宜のために、noshツールセットにはnagios-check-service
Nagiosプラグインとして直接使用できるコマンドが付属しています。 Nagiosプラグインプロトコルを採用し、適切な終了状態を取り、適切なコンテンツをstdout / errorに書き込むので/etc/nagios/nrpe.d/
。
追加読書
- ジョナサンデボインポラード(2015)。デーモンツールシリーズ。一般的な答え。
- 少し古いかもしれません。スナックガイド:
- ジョナサン・デ・ボーインポラード。
service-status
。 スナックガイド。 - ジョナサン・デ・ボーインポラード。
service-show
。 スナックガイド。 - ジョナサン・デ・ボーインポラード。 「
nagios-check-service
。」system-control
。 スナックガイド。
- ジョナサン・デ・ボーインポラード。
- 最新スナックガイド次のように利用可能Debian/Ubuntu パッケージそしてFreeBSD/PC-BSD/DragonFlyBSD/&c。パック、次の方法でインターネットに接続せずにコンピュータからアクセスできます。
man service-status
man service-show
man nagios-check-service
xdg-open /usr/local/share/doc/nosh/service-status.html
xdg-open /usr/local/share/doc/nosh/service-show.html
xdg-open /usr/local/share/doc/nosh/system-control.html
- ブルースガンター。
svstat
。 daemontools-encore マニュアル。 §8。 - ゲレットパフ。
sv
。ランブック。 §8。 - ウェイン・マーシャル(2013)。
perpstat
。囚人のハンドブック。 §8。 - ローランベルコ。
s6-svstat
。 s6 マニュアル。
答え4
systemdを実行している場合は、次を使用してすべてのサービスの状態を照会できます。
systemctl list-units