これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド monit です。
プログラム:
NAME
Monit - Unix システム上のサービスを監視するためのユーティリティ
SYNOPSIS
モニット 【オプション】
DESCRIPTION
Monit プロセス、プログラム、ファイル、ディレクトリ、および
Unix システム上のファイルシステム。 Monit は自動メンテナンスと修復を行い、次のことができます。
エラー状況で意味のある因果的アクションを実行します。 たとえば、Monit は次の場合にプロセスを開始できます。
実行されず、応答しない場合はプロセスを再起動し、使用している場合はプロセスを停止します
リソースが多すぎます。 Monit を使用して、ファイル、ディレクトリ、およびファイルシステムを監視できます。
タイムスタンプの変更、チェックサムの変更、サイズの変更などの変更。
Monit は、自由形式のトークンに基づく簡単に構成できる制御ファイルを介して制御されます。
指向の構文。 syslog または独自のログ ファイルへのログを監視し、エラーについて通知します
カスタマイズ可能な警告メッセージによる条件。 Monit は、さまざまな TCP/IP ネットワークを実行できます。
チェック、プロトコル チェック、およびそのようなチェックに SSL を利用できます。 Monit は HTTP(S) を提供します。
インターフェイスを使用して、ブラウザを使用して Monit プログラムにアクセスできます。
WHAT に モニター?
Monit を使用してデーモンを監視できます ラボレーション またはローカルホストで実行されている同様のプログラム。
Monit は、デーモン プロセスの監視に特に役立ちます。
システムの起動時間。 たとえば、sendmail、sshd、apache、および mysql です。 他の多くのものとは対照的に
監視システム、Monit は、エラー状況が発生した場合に動作できます。 sendmail の場合
実行されていない場合、monit は sendmail を自動的に再起動できます。または、Apache が使用しすぎている場合
リソース (例: DoS 攻撃が進行中の場合) Monit は apache を停止または再起動し、送信することができます
あなたに警告メッセージ。 Monit はプロセスの特性を監視することもできます。
プロセスが使用しているメモリまたは CPU サイクル。
Monit を使用して監視することもできます ファイル, ディレクトリ と ファイルシステム ローカルホストで。 監視する
タイムスタンプの変更、チェックサムの変更、サイズなどの変更についてこれらの項目を監視できます
変化します。 これはセキュリティ上の理由からも役立ちます。md5 または sha1 を監視できます。
変更してアラートを取得したり、アクションを実行したりしてはならないファイルのチェックサム
変更する必要があります。
モニターできるモニター ネットワーク の構築 ローカルホストまたはリモートのさまざまなサーバーへ
ホスト。 TCP、UDP、および Unix ドメイン ソケットがサポートされています。 ネットワーク テストは、
プロトコルレベル; Monit には、HTTP などの主要なインターネット プロトコルのテストが組み込まれています。
SMTP など。プロトコルがサポートされていない場合でも、サーバーをテストできます。
任意のデータを送信し、サーバーからの応答をテストするように Monit を構成できます。
モニターはテストに使用できます プログラム または特定の時間にスクリプトを実行します。これは cron によく似ていますが、
さらに、プログラムの終了値をテストして、アクションを実行したり、アラートを送信したりできます
終了値がエラーを示している場合。 これは、Monit を使用して任意の操作を実行できることを意味します。
スクリプトを作成できるチェックのタイプ。
最後に、Monit を使用して一般的な監視を行うことができます などのローカルホスト上のリソース
全体的な CPU 使用率、メモリ、およびシステム負荷。
全般的な OPERATION
Monit の動作は、コマンドライン オプションによって制御されます。 と 実行制御ファイル
monitrc の構文については、後のセクションで説明します。 コマンドライン オプションのオーバーライド
.monitrc 宣言。
のデフォルトの場所 モニター is ~/.monitrc. このファイルが存在しない場合、Monit は
試します /etc/monitrc そして他のいくつかの場所。 詳細については、ファイルを参照してください。 を指定することもできます。
を使用してファイルを直接制御します。 -c monit へのコマンドライン スイッチ。 例えば、
$ monit -c /var/monit/monitrc
初めて Monit を起動する前に、制御ファイルの構文エラーをテストできます。
$ モニター -t
$ 制御ファイルの構文 OK
エラーが発生した場合、Monit はエラー メッセージをコンソールに出力します。
エラーが見つかった制御ファイル内の行番号。
機能する Monit コントロール ファイルを作成したら、次のようにコンソールから Monit を起動します。
$ モニター
コマンドラインスイッチを使用して一部の構成ディレクティブを変更できますが、簡単にするために
これらを制御ファイルに入れることをお勧めします。
Monit は端末から切り離され、バックグラウンド プロセス、つまりデーモンとして実行されます。
プロセス。 デーモンとして、Monit は周期的に実行されます。 サービスを監視してから、しばらくスリープ状態になります。
構成された期間、その後ウェイクアップし、エンドレス ループで監視を再開します。
オプション
次のオプションは、Monit によって認識されます。 ただし、設定することをお勧めします。
オプション (該当する場合) で直接 .monitrc 制御ファイル。
-c file
この制御ファイルを使用します
-d n
Monit をデーモンとして実行する n 秒。 または使用 "セットする
デーモン" モニターで。
-g 名
start、stop、restart、monitor、unmonitor、
ステータスおよび要約アクション。
-l ログファイル
ログ情報をこのファイルに出力します。 または使用 "セットする ログファイル」
モニターで。
-p pidファイル
このロック ファイルをデーモン モードで使用します。 または使用 "セットする pidファイル」
モニターで。
-s ステートファイル
このファイルに状態情報を書き込みます。 または使用 "セットする
状態ファイル」 モニターで。
-I
バックグラウンドで実行しない (init からの実行に必要)
-i
Print Monitの一意のID
-r
Monit の一意の ID をリセットします。 注意して使用してください
-t
制御ファイルの構文チェックを実行します
-v
詳細モード、ノイズの多い作業 (診断出力)
-vv
非常に詳細なモード。-v と同じで、エラー時にスタック トレースをログに記録します。
-H [ファイル名]
ファイルまたは stdin の MD5 および SHA1 ハッシュを出力します。
ファイル名は省略されています。 Monit はその後終了します
-V
バージョン番号とパッチレベルを表示
-h
ヘルプ テキストを印刷する
Arguments
Monit をデーモン プロセスとして実行したら、次のいずれかを使用して Monit を呼び出すことができます。
次の引数。 その後、Monit は Monit デーモンに接続します (TCP ポートで)。
デフォルトでは 127.0.0.1:2812)、要求されたアクションを実行するように Monit デーモンに依頼します。 の
言い換えれば; 引数なしで monit を呼び出すと、Monit デーモンが開始され、monit を呼び出すと
引数を使用すると、Monit デーモン プロセスと通信できます。
すべてを始める
制御ファイルにリストされているすべてのサービスを開始し、それらの監視を有効にします。 もし
グループオプションが設定されています (-g)、指定されたサービスの監視のみを開始して有効にします
グループ (この場合、「all」は必要ありません)。
開始名
名前付きサービスを開始し、その監視を有効にします。 名前はサービスエントリ名です
monitrc ファイルから。
全部やめて
制御ファイルにリストされているすべてのサービスを停止し、それらの監視を無効にします。 もし
グループオプションが設定されている場合、指定されたサービスの監視のみを停止および無効にします
グループ (この場合、「all」は必要ありません)。
名前を停止する
名前付きサービスを停止し、その監視を無効にします。 名前はサービスエントリ名です
monitrc ファイルから。
すべて再起動
停止して開始 を サービス。 グループ オプションが設定されている場合は、サービスのみを再起動します。
名前付きグループ (この場合、「all」は必要ありません)。
再始動名
名前付きサービスを再起動します。 この名前は、monitrc ファイルのサービス エントリ名です。
すべてを監視する
制御ファイルにリストされているすべてのサービスの監視を有効にします。 グループオプションが
指定されたグループ内のサービスの監視のみを開始します ("all" は必須ではありません)。
この場合)。
モニター名
名前付きサービスの監視を有効にします。 名前は、
モニターファイル。 Monit は、このサービスが依存するすべてのサービスの監視も有効にします
に。
すべての監視を解除
制御ファイルにリストされているすべてのサービスの監視を無効にします。 グループオプションが
指定されたグループ内のサービスの監視のみを無効にします (「all」は必須ではありません)。
この場合)。
名前の監視を解除
名前付きサービスの監視を無効にします。 名前は、
モニターファイル。 Monit は、これに依存するすべてのサービスの監視も無効にします。
サービス。
ステータス[名前]
サービスのステータス情報を出力します。
概要 [名前]
短いステータス要約を印刷します。
リロード
実行中の Monit デーモンを再初期化すると、デーモンはその構成を再読み込みし、閉じる
ログファイルを再度開きます。
やめます
Monitor デーモン プロセスを強制終了します。
検証
制御ファイルにリストされているすべてのサービスを確認してください。 このアクションはデフォルトでもあります
Monit がデーモン モードで実行されている場合の動作。
procmatch正規表現
プロセス一致チェック用のパターンを簡単にテストできます。 コマンドは定期的にかかります
式を引数として指定し、パターンに一致するすべての実行中のプロセスを表示します。
、 監視する CONTROL FILE
Monit は、と呼ばれる制御ファイルを介して構成および制御されます。 モニター. デフォルトの場所
このファイルは ~/.monitrc. このファイルが存在しない場合、Monit は /etc/monitrc を試します。
次に @sysconfdir@/monitrc、最後に ./monitrc です。 ソースから Monit をビルドする場合、値
@sysconfdir@ は、configure 時に ./configure --sysconfdir として指定できます。 例えば、
。/設定 --sysconfdir /var/monit/etc Monitに検索させます モニター in
/var/monit/etc
制御ファイルとパスワードのセキュリティを保護するために、制御ファイルに必要なパスワード
読み書き権限 いいえ 他には? より 0700 (u=xrw,g=,o=); Monit は不平を言って終了します
さもないと。
コマンドライン引数とこの中の引数の間に矛盾がある場合
ファイルでは、コマンドライン引数が優先されます。
Monit は独自のドメイン固有言語 (DSL) を使用します。 制御ファイルは一連の
サービスエントリとグローバルオプションステートメントの。
コメントは「#」で始まり、行末まで続きます。 それ以外の場合、ファイル
自由形式の一連のサービス エントリまたはグローバル オプション ステートメントで構成されます。
トークン指向の構文。
「if」、「and」、「with(in)」、「has」、「us(ing|e)」、「on(ly)」などのノイズ キーワードを使用できます。
「then」、「for」、「of」をエントリ内のどこにでも付けて、英語に似せます。 無視されますが、
エントリを一目で読みやすくすることができます。 キーワードは大文字と小文字を区別しません。
トークンには次の XNUMX 種類があります。 文法, 番号 (つまり、XNUMX 進数のシーケンス) および
ストリング. 文字列は、引用符で囲んだり、引用符で囲まなかったりすることができます。 引用符で囲まれた文字列は double で囲まれています
引用符で囲み、空白を含めることができます (引用符で囲まれた数字は文字列として扱われます)。 引用されていない
string は、空白で区切られた任意のトークンで、文字および/または数字を含みます。
セマンティック レベルでは、制御ファイルは次の XNUMX 種類のエントリで構成されます。
1. グローバル設定ステートメント
グローバルな set-statement は、キーワード「set」と構成する項目で始まります。
2. グローバルな include ステートメント
include ステートメントは、キーワード「include」とグロブ文字列で構成されます。 これ
ステートメントは、個別のファイルから構成ディレクティブを含めるために使用されます。
3. XNUMX つまたは複数のサービス エントリ ステートメント。
各サービス エントリは、キーワード「check」とそれに続くサービス タイプで構成されます。
各エントリには ユニーク 自由に選択できるわかりやすい名前。 この名前
Monit は、サービスを内部的に参照するために、およびサービスとのすべてのやり取りで使用します。
ユーザー。
現在、XNUMX 種類のチェック ステートメントがサポートされています。
1. プロセスの確認| | マッチング>
プログラムの pid ファイルへの絶対パスです。 pid-file はファイルです。
プロセスの一意の ID を含みます。 pid-file が存在しないか含まれていない場合
実行中のプロセスの PID 番号。次の場合、Monit はエントリの start メソッドを呼び出します。
定義された。
PID ファイルを使用する代わりに、プロセス名のパターン マッチングを使用して
監視するプロセスを見つけます。 最初の一致が使用されるため、この形式のチェックが最も有効です。
プロセス名が一意である場合に役立ちます。 PID ファイルは可能な限り使用する必要があります。
予想される pid を正確に定義します (パターン マッチングは、
子は同じパターンに一致するため、 fork/clone を使用して子プロセスを開始します
一時的に)。 コマンドラインからプロセスがパターンに一致するかどうかをテストできます。
"monit procmatch "regex-pattern"". これにより、一致するかどうかにかかわらず、すべてのプロセスがリストされます。
正規表現パターン。
2. ファイルの確認道
ファイルへの絶対パスです。 ファイルが存在しない場合、Monit は呼び出します。
エントリの start メソッド (定義されている場合) 通常のファイルタイプを指していません
(ディレクトリなど)、Monit はこのエントリの監視を無効にします。 Monit が実行されている場合
パッシブモードまたは開始方法が定義されていない場合、Monit は単にアラートを送信します
エラー。
3. チェック FIFO 道
fifo への絶対パスです。 fifo が存在しない場合、Monit が呼び出します。
エントリの start メソッド (定義されている場合) fifo 型を指していません (
インスタンス ディレクトリ)、Monit はこのエントリの監視を無効にします。 Monit が実行された場合
パッシブ モードまたは開始方法が定義されていない場合、Monit はアラートを送信します。
エラー。
4. ファイルシステムを確認する道
一部であるデバイス/ディスク、マウント ポイント、ファイル、またはディレクトリへのパスです。
ファイルシステムの。 ブロック特殊ファイルを直接使用することをお勧めします (たとえば、
Linux では /dev/hda1、Solaris では /dev/dsk/c0t0d0s1 など) マウントポイントを使用する場合
(/data など)、ファイルシステムがアンマウントされている場合でも、テストは true になることに注意してください。
マウントポイントが存在するためです。
ファイルシステムが利用できなくなった場合、Monit はエントリの start メソッドを呼び出します。
定義されています。 もしもファイルシステムを指していない場合、Monit は監視を無効にします
このエントリ。 Monit がパッシブ モードで実行されている場合、または開始方法が定義されていない場合、Monit
エラー時にアラートを送信するだけです。
5.ディレクトリを確認する道
ディレクトリへの絶対パスです。 ディレクトリが存在しない場合は、Monit
定義されている場合、エントリの start メソッドを呼び出します。 もしもを指していない
ディレクトリ、monit はこのエントリの監視を無効にします。 Monitor がパッシブ モードで実行されている場合
または開始メソッドが定義されていない場合、Monit はエラー時にアラートを送信するだけです。
6. ホストの確認住所
ホスト アドレスは、ホスト名文字列または IP アドレス文字列として指定できます。
ドット付き 64.87.72.95 進数形式。 tildeslash.com や「XNUMX」など。
7. システムのチェック
この ユニーク 名 通常、ローカル ホスト名ですが、わかりやすい名前を使用できます。
変数 $HOST を名前として使用すると、ホスト名に展開されます。 このチェック
CPU使用率、総メモリ使用率などの一般的なシステムリソースを監視できます
または負荷平均。 の ユニーク 名 メール警告のシステム ホスト名として使用されます。
M/Monit のホスト エントリの初期名。
8. チェックプログラム道[タイムアウト秒]
実行可能プログラムまたはスクリプトへの絶対パスです。 ステータステスト
プログラムの終了ステータスを確認できます。 プログラムが終了しない場合
内で実行秒、Monit はそれを終了します。 デフォルトのプログラム
タイムアウトは 300 秒 (5 分) です。 プログラムの出力を記録して作成する
ユーザー インターフェイスとアラートで利用可能 (デフォルトでは最大 512B、
set limits ステートメントを使用して制限をカスタマイズします)。
9. ネットワークの確認| | インターフェース>
監視対象のネットワーク インターフェイスの IPv4 または IPv6 アドレスです。 それも
Linux では「eth0」などのインターフェイス名を使用できます。
ロギング
Monit は、ステータス メッセージとエラー メッセージをログ ファイルに記録します。 使用 セッションに ログファイル の声明
monitrc 制御ファイル。 独自のログファイルにログを記録するように Monit をセットアップするには、次のように使用します。 セッションに ログファイル
/var/log/monit.log。 場合 syslog "-l" コマンドライン スイッチ (または
キーワード セッションに ログファイル syslog は制御ファイルにあります) Monit は syslog
デーモンを使用して、コンテキストに基づいて各メッセージに割り当てられた優先度でメッセージをログに記録します。 に
ロギングをオフにするには、制御ファイルにログファイルを設定しないでください (もちろん、設定しないでください)。
-l スイッチを使用します)
ログファイルの形式は次のとおりです。
【日時】優先:ご連絡
たとえば、次の
[CET 5 月 18 日 49:29:XNUMX] 情報: 'localhost' Monit が開始されました
デーモン モード
デーモンの設定
[[WITH] 開始遅延]
Monit のポーリング サイクルの長さを指定し、Monit をデーモン モードで実行します。 を指定する必要があります
秒単位のポーリング間隔である数値引数。
デーモン モードでは、Monit はコンソールから切り離され、バックグラウンドで実行されます。
継続的に、指定された各サービスを監視し、指定されたポーリングのためにスリープ状態になります
間、ウェイクアップし、エンドレス サイクルで監視を再開します。
または、「-d」コマンド ライン スイッチを使用してポーリング間隔を設定することもできますが、
でポーリング間隔を設定することを強くお勧めします。 ~/.monitrc ファイル、使用 セッションに
デーモン.
これにより、Monit は常にデーモン モードで起動します。 このステートメントを使用せず、使用しない場合
-d オプションを指定して monit を開始すると、Monit はサービス チェックを XNUMX 回だけ実行し、
その後終了します。 これは状況によっては役立つかもしれませんが、Monit は主に実行するように設計されています。
デーモンプロセスとして。
バックグラウンドで実行されている Monit デーモンで「monit」を呼び出すと、ウェイクアップ信号が
サービスをすぐにチェックするよう強制します。 quit で「monit」を呼び出す
引数は、実行中の Monit デーモン プロセスを起動する代わりに強制終了します。
開始遅延オプションを使用すると、Monit がサービスのチェックを開始する前に (XNUMX 回) 待機できます。
これは、システムの起動時などに役立ちます。 Monit はデフォルトでチェックを開始します
起動直後のサービス。
INIT サポート
「set init」ステートメントは、Monit が自身をデーモン プロセスに変換するのを防ぎます。
代わりに、Monit がフォアグラウンド プロセスとして実行されます。 (「set daemon」を使用する必要があります。
ポーリング周期を指定します)。
これは、init から Monit を実行するために必要です。 init を使用して Monit を開始するのがおそらく最良の方法です
常に Monit デーモンを実行していることを確認したい場合に Monit を実行する方法
あなたのシステム。 もう XNUMX つのオプションは、crontab から Monit を実行することです。 いずれにせよ、あなたは作るべきです
Monit を開始する前に、制御ファイルに構文エラーがないことを確認してください。
init または crontab (「monit -t」を使用して確認します)。
Monit を init から実行するようにセットアップするには、Monit の「set init」ステートメントを使用できます。
制御ファイルを削除するか、コマンド ラインから「-I」オプションを使用します。 ここに追加する必要があるものは次のとおりです
"/etc/inittab":
# 標準の実行レベルで Monit を実行する
mo:2345:respawn:/usr/local/bin/monit -Ic /etc/monitrc
init の構成ファイルを変更したら、次のコマンドを実行して
/etc/inittab を再度調べて、Monit を開始します。
telinitコマンドqを
telinit のないシステムの場合:
kill -1 1
Monit を使用して、ブート時にも開始されるサービス (サービスなど) を監視する場合
SYSV init rc スクリプトまたは inittab を介して開始された)、場合によっては、競合状態
発生する可能性があります。 あれは; サービスの開始が遅い場合、Monit はサービスが開始されていると見なすことができます。
実行されていない可能性があり、それを開始してアラートを発生させようとする可能性がありますが、実際にはサービスは
すでに開始しようとしているか、すでに開始シーケンスにあります。 については、よくある質問をご覧ください。
この問題の解決策。 短いバージョンは、後でより高いランレベルでMonitを開始することです
システムプロセス。
インクルード ファイル
Monitor 制御ファイル「monitrc」には、追加の構成ファイルを含めることができます。 これ
機能は、構成を個別のファイルに整理するのに役立ちます。
この種のものが好きなら、すべてをXNUMXつのファイルに入れます。 インクルードステートメントを配置できます
規則は一番下にありますが、「monitrc」のほぼすべての場所にあります。 構文は次のとおりです。
以下
含む
globstring は、で定義されている任意の種類の文字列です。 地球(7)。 したがって、あなたは
単一のファイルを読み込むか、一度に複数のファイルを読み込むことができます。 空白を使用したい場合
string globstring は、引用符 (') または二重引用符 (") に埋め込む必要があります。
globstring は、ファイルではなくディレクトリに一致し、黙って無視されます。
任意 include インクルード ファイル内のステートメントは、メイン コントロール ファイルと同様に解析されます。
globstring が複数の結果に一致する場合、ファイルはソートされていない方法で含まれます。
特定の順序に依存する必要がある場合は、ワイルドカードのグロビングを避け、代わりに
含まれるファイルのフル パスを指定します。
例、
/etc/monit.d/*.cfg を含めます
これにより、globstring に一致するすべてのファイルがロードされます。 つまり、 /etc/monit.d それ
プレフィックスで終わる .cfgの.
SSL OPTIONS
一般的な SSL/TLS オプションは、次のステートメントを使用して設定でき、すべての SSL に適用されます。
モニターを介して行われた接続:
設定[オプション] {
バージョン:
確認:
自己署名:
クライアントPEMファイル:
C証明書ファイル:
C証明書パス:
}
VERSION 使用する特定の SSL/TLS バージョンを設定します。 デフォルトでは、Monit は AUTO を使用します。 オートモードでは、
TLS のみが使用され、SSLv2 および SSLv3 は廃止されたと見なされます。 SSLv2 または
SSLv3 では、バージョンを明示的に設定する必要があります。
VERIFY SSL サーバー証明書の検証を有効にします。 これにより、次の場合にエラーが検証され、報告されます。
サーバー証明書が信頼されていないか、無効であるか、有効期限が切れています。 デフォルトの証明書
検証は無効になっていますが、有効にすることをお勧めします。有効にしないと保証されません
そのMonitは、あなたが話していると思うサーバーと話します。
自己署名 自己署名証明書はデフォルトで拒否されます。 このオプションを使用して許可します
自己署名証明書。
クライアントPEMFILE SSL クライアント証明書「database-file」へのパスを PEM 形式で設定します。 もしも
SSL サーバーはクライアント証明書認証を必要とします。Monit はパブリックを見つけようとします。
サーバーの認証局と一致するこのファイル内のキー証明書。見つかった場合は、
この証明書をクライアント認証に使用します。
C証明書ファイル 認証局を含むPEMエンコードファイルへのパスを設定します
(CA) 証明書。 このオプションが指定されていない場合、Monit は OpenSSL のデフォルトの CA 証明書を使用します。
使用済み (opensslの バージョン -d デフォルトの CA 証明書を取得するために使用できます)。 多くの
ディストリビューションには SSL および CA 証明書が既に設定されており、このオプションを使用することは
通常は必要ありません。
C証明書パス 認証局 (CA) を含むディレクトリへのパスを設定します
証明書。 このオプションを使用しない場合、Monit は OpenSSL のデフォルトの CA 証明書を使用します。
多くのディストリビューションには、SSL および CA 証明書がすでにセットアップされており、このオプションを使用しています
通常は必要ありません。
SSL オプション ステートメントは、介して行われるすべての SSL/TLS 接続にグローバルに適用されます。
監視します。 SSL オプションは、ローカル チェックでも設定できます。 メールサーバー 設定または
モニット グローバル設定をオーバーライドまたは拡張します。
グローバル SSL オプションを設定するには、このステートメントを .monitrc ファイル:
SSLオプションを設定{...}
グローバル SSL オプションとローカル SSL オプションの両方を設定する例を次に示します。
# すべての SSL 接続に対して証明書の検証を有効にする
# 自己署名証明書はデフォルトでは許可されていません
SSLオプションを設定{
検証: 有効にする
}
# 証明書を検証する (グローバル設定経由)
# このチェックの自己署名証明書を許可する
アドレス example.com のホストの例を確認してください
失敗した場合
ポート443
プロトコル https
SSL オプション付き {selfsigned: allow}
それから警告します
# example2.com の証明書を検証しない (グローバル設定をオーバーライドする)
アドレスが example2.com のホスト example2 を確認します
失敗した場合
ポート443
プロトコル https
ssl オプション付き {verify: disable}
それから警告します
監視する HTTPD
制御ファイルで指定されている場合、Monit は HTTP サポートで開始します。 その後、使用できます
サービスの開始と停止、サービスの監視の無効化または有効化、および表示を行うための監視 CLI
各サービスのステータス。
Unix Socket ではなく TCP で HTTP サポートが有効になっている場合は、
Web ブラウザーで Monit の有益なダッシュボードを表示します。
HTTP サポートが無効になっている場合、Monit CLI インターフェイスは縮小されることに注意してください。
ほとんどの CLI コマンド (「monit status」など) は、
HTTP インターフェイスを介してバックグラウンド プロセスを監視します。 HTTP をサポートすることを強くお勧めします
有効にします。 セキュリティが懸念される場合は、HTTP インターフェイスをローカル ホストのみにバインドするか、Unix を使用してください
外部からモニターにアクセスできないソケットです。
TCP ポートの構文:
HTTPD ポートの設定[住所]
【SSL ]
[PEMファイル]
[クライアントPEMファイル]
[自己認証を許可]
[サイン]
許可する+
例:
httpd ポート 2812 を設定します
ユーザー名を許可:パスワード
使えるようになりましたhttp://localhost:2812/> ブラウザから Monit の Web インターフェイスにアクセスするには、
資格情報としてユーザー名とパスワードを入力した後。
Unix ソケットの構文:
SET HTTPD UNIXSOCKET
許可する+
例:
httpd unixsocket /var/run/monit.sock を設定します
ユーザー名を許可:パスワード
オプション:
UNIXソケット バインドしてリッスンする Unix Socket へのパスを設定します。
PORT Monit がバインドしてリッスンするポートを設定します。 通常、Monit はポート 2812 でセットアップされます。
ADDRESS Monit を特定のインターフェイスでのみ listen させます。 たとえば、 しない したい
Monit の Web インターフェイスをネットワークに公開し、localhost のみにバインドします。 モニターは受け入れます
デフォルトで任意のアドレスに接続します (ADDRESS オプションがない場合)。
たとえば、Web インターフェイスを localhost のみに制限するには、次のようにします。
httpd を設定
ポート2812
アドレス 127.0.0.1 を使用
ユーザー名を許可:パスワード
SSL Monit の Web インターフェイスで TLS を有効にします。 の PEファイル オプションは、サーバーの
秘密鍵と証明書。 このファイルは、ファイルシステムの安全な場所に保存する必要があります
0700 以下の厳密な権限が必要です。
例:
httpd を設定
ポート2812
SSL を有効にする
pemfile /etc/certs/monit.pem
myuser:mypassword を許可する
使えるようになりましたTLS 経由で Monit Web サーバーにアクセスするには
暗号化された接続。
OpenSSL FIPS がサポートされています。 FIPS モードを有効にするには (OpenSSL ライブラリがサポートしている場合)
it)、次のステートメントを Monitor 制御ファイルに追加します。
FIPS を設定
クライアントPEMFILE クライアント証明書ベースの認証。 接続クライアントは提供する必要があります
接続するために Monit に認識されている証明書。 このファイルにもすべてが必要です
必要な CA 証明書。 デフォルトでは、自己署名クライアント証明書は 許可された。 もしも
クライアントからの自己署名証明書を使用したい場合は、明示的に許可する必要があります
自己認証を許可 声明。
例:
httpd を設定
ポート2812
SSL を有効にする
pemfile /etc/certs/monit.pem
clientpemfile /etc/certs/monit-client.pem
署名 HTTP 応答ヘッダーとエラー ページから Monit バージョンを非表示にするために使用できます。
例:
httpd を設定
ポート2812
署名を無効にする
myuser:mypassword を許可する
認証
Monit Web インターフェイスへのアクセスは、主に 許可する オプションは
認証を指定し、特定のクライアントのみに接続を許可するために使用されます。
Monit コマンド ライン インターフェイスが使用されている場合、少なくとも XNUMX つの平文パスワードが
必要です (以下を参照)。そうしないと、Monit コマンド ライン インターフェイスで
Monitor Web インターフェイスに接続します。
クライアントが Monit に接続しようとして、間違ったユーザー名やパスワードを送信すると、ログに記録されます
彼らのIPアドレスで。
クライアント 証明書
この認証方法は強力な認証メカニズムであり、HTTPS クライアントを使用します
証明書を使用して、接続しているクライアントの信頼性を検証します。 クライアントは
Monit が認識している公開鍵証明書。 クライアントは、SSL および Monit を介して Monit に接続する必要があります。
クライアントに証明書を送信するように依頼します。 証明書を受け取ると、Monit は
にある証明書への証明書 クライアントPEMFILE ファイル。 アクセスが許可されるのは、
クライアント証明書はこのファイルにあります。 見る クライアントPEMFILE 詳細は上記。
主催者 と ネットワーク 許す リスト
Monit は、接続を許可されたホストとネットワークのアクセス制御リストを維持します。 あなたはできる
必要な数のホストを追加しますが、有効なドメイン名またはその IP を持つホストのみを追加します
アドレスは許可されます。
Monit は、ネーム サーバーにクエリを実行して、接続しようとしているホストを確認します。 ホスト(クライアント)が
接続しようとしているが、アクセス リストに見つからないか解決できない場合、Monit
クライアントへの接続を即座にシャットダウンします。
制御ファイルの例:
httpd ポート 2812 を設定します
ローカルホストを許可
my.other.work.machine.com を許可する
10.1.1.1を許可する
192.168.1.0/255.255.255.0 を許可
10.0.0.0/8 を許可
許可リストに記載されていないクライアントが Monit に接続しようとすると、アクセスが拒否されます
IP アドレスとともにログに記録されます。
Basic 認証
Monit は、RFC 2617 で説明されている基本認証をサポートしています。
要するに; サーバーはクライアント (ブラウザなど) に認証情報を送信するように要求します。
(ユーザー名とパスワード) であり、受け入れられた場合、サーバーはクライアントにアクセスを許可します。
要求された文書。
基本認証の最大の弱点は、ユーザー名とパスワードが送信されることです。
ネットワークを介した平文 (つまり、base64 エンコード)。 したがって、次のことをお勧めします。
でMonitを実行しない限り、この認証方法を使用しないでください SSL サポート。 sslでは、
以来、基本認証を安全に使用できます を 基本認証を含む HTTP データ
ヘッダーは暗号化されます。
平文のユーザーとパスワード
allow ステートメントにユーザー名と
単一の「:」文字で区切られたパスワード。 特殊文字を使用できますが、
英数字以外のパスワードは引用符で囲む必要があります。
構文:
許可する:
PAM
PAM は、PAM を提供するプラットフォーム (Linux、Mac OS X、FreeBSD、
NetBSD)。
構文:
許可する @
「グループ」は、Monit の Web インターフェイスへのアクセスが許可されているグループ名です。 Monit は PAM を使用します
と呼ばれるサービス モニット PAM 認証の詳細については、PAM のマニュアル ページを参照してください。
PAM サービスと PAM 認証プラグインを設定する方法について説明します。
Mac OS X 上の Monit のサンプル PAM サービス (「/etc/pam.d/monit」ファイルとして保存):
# monit: 認証アカウント パスワード セッション
認証十分な pam_securityserver.so
認証十分な pam_unix.so
認証が必要 pam_deny.so
アカウントが必要 pam_permit.so
そして、PAM 経由で認証されたグループ「admin」のみが Web にアクセスできるようにする monitrc 構成
インタフェース:
httpd を設定
ポート2812
@admin を許可
htpasswd ファイル
または、「htpasswd」形式のファイルを使用することもできます (XNUMX つの ユーザー:パスワード 行ごとのエントリ)、
そのようです: 許す [平文|暗号|md5] /道 [ユーザー]. デフォルトでは、平文のパスワードは
読む。 パスワードが消化された場合、暗号化を指定する必要があります
方法。 パスワード ファイル内のすべてのユーザーが Monit にアクセスできないようにする場合は、次のことができます。
allow ステートメントで、アクセス権を持つ必要があるユーザーのみを指定します。 そうでなければすべて
ユーザーが追加されます。
Example1:
httpd ポート 2812 を設定します
hauk を許可: パスワード
md5 を許可 /etc/httpd/htpasswd ジョン・ポール・リンゴ・ジョージ
この方法をホスト リストと一緒に使用すると、リストされたホストのクライアントのみが表示されます。
Monit HTTP サーバーへの接続が許可され、各クライアントは接続を求められます。
ユーザー名とパスワードを提供します。
Example2:
httpd ポート 2812 を設定します
ローカルホストを許可
10.1.1.1を許可する
allow hauk:"passw@rd"
基本認証のみを使用する場合は、許可エントリを指定するだけです
上記の例 1 のように、ユーザー名とパスワード、またはパスワード ファイル。
読み取り専用ユーザー
最後に、一部のユーザーを読み取り専用として定義することができます。 読み取り専用ユーザーは、
Web ページを監視しますが、 プッシュボタンにアクセスでき、サービスを変更することはできません
ウェブインターフェース。
httpd ポート 2812 を設定します
管理者を許可:パスワード
allow hauk:password 読み取り専用
@管理者を許可
@users の読み取り専用を許可する
ユーザーは、を使用して読み取り専用に設定されます。 読み取り専用の キーワード After ユーザー名パスワード。 の中に
上記の例のユーザー ハウク は読み取り専用ユーザーとして定義されていますが、 管理人 ユーザーはすべてを持っています
アクセス権。
ALERT メッセージ
Monit は、次の状況でアラートを生成します。
o サービスが存在しない (例: プロセスが実行されていない)
o サービスデータを読み取れない (例: ファイルシステムの使用状況を取得できない)
o サービス関連のスクリプトの実行に失敗しました (例: 開始に失敗しました)
o 無効なサービス タイプ (たとえば、パスがファイルではなくディレクトリを指している場合)
o カスタム テスト スクリプトがエラーを返しました
o ping テストに失敗しました
o TCP/UDP 接続および/またはポート テストに失敗しました
o リソース使用テストに失敗しました (例: CPU 使用率が高すぎる)
o チェックサムの不一致または変更 (ファイルの変更など)
o ファイル サイズのテストに失敗しました (ファイルが大きすぎるなど)。
o タイムスタンプ テストに失敗しました (例: ファイルが予想より古い)
o パーミッション テストに失敗しました (例: ファイル モードが一致しません)。
o UID テストの失敗 (例: 別のユーザーが所有するファイル)
o GID テストに失敗しました (たとえば、別のグループが所有するファイル)
o プロセスの PID が Monit の制御外に変更された
o プロセスの PPID が Monit 制御外に変更された
o 失敗したサービス回復の試行回数が多すぎる
o ファイル コンテンツ テストで一致が見つかりました
o ファイルシステムのフラグが変更されました
o 管理者によってサービス アクションが実行されました
o ネットワーク リンクに失敗しました
o ネットワークリンク容量が変更されました
o ネットワーク リンクの飽和に失敗しました
o ネットワーク リンクのアップロード/ダウンロード速度に失敗しました
o モニターが開始、停止、または再ロードされました
電子メールでアラートを受け取るには、グローバルな "set alert" ステートメントを使用してアラート ターゲットを設定します。
(すべてのサービスの場合) またはサービス エントリのコンテキストでの "alert" ステートメント (a の場合)
シングルサービス)。
設定 an アラート 受取人
イベントが発生すると、Monit はアラートを送信します。 アラート ステートメントには次の XNUMX 種類があります。
グローバルとローカル。
グローバル構文:
SET ALERT メールアドレス [[NOT] {event, ...}] [REMINDER cycle]
例:
アラートを設定する foo@bar
いずれかのサービスでイベントが発生するたびに、アドレス foo@bar にデフォルトの電子メールが送信されます。
アラート メッセージをさらに多くの電子メール アドレスに送信する場合は、「set alert 'email'」を追加します。
各アドレスのステートメント。
また、サービス チェックのコンテキストでローカル アラート ステートメントを使用して、
特定のサービスに対してのみアラートを有効にします。
ALERT メールアドレス [[NOT] {event, ...}] [REMINDER サイクル]
ローカル アラートの例:
アドレス 1.2.3.4 のホスト myhost を確認します
ポート 3306 プロトコル mysql に失敗した場合はアラート
ポート 80 プロトコル http に失敗した場合はアラート
alert foo@baz # ローカル サービス アラート
グローバル アラート ステートメントとローカル アラート ステートメントを組み合わせることができます。 競合がある場合、ローカル アラート
優先順位があり、global ステートメントをオーバーライドします。
設定 an イベント filter
特定のイベントについてのみアラート メッセージを送信する場合は、それらを「{event, ...}」にリストします。
ブロック、例:
{ timeout, nonexist } でのみアラート foo@bar を設定します
イベント リストを無効にして、すべてのイベントのアラートを送信することもできます 以下は除く あるもの
リストの先頭に「not」という単語を追加してリストします。 たとえば、すべてのアラートを受信するには
監視プログラムの開始と停止に関する通知を除く:
アラート foo@bar を設定しますが、{ インスタンス } には設定しません
以下は、Monit によって発行される可能性のあるすべてのイベント タイプのリストです。 最初の列の値
上記のイベント フィルタ リストで使用できます。
イベント: | 失敗の状態: | 成功状態:
-------------------------------------------------- -------------------
アクション | アクション | "アクション完了" | 「アクション完了」
チェックサム | "チェックサムに失敗しました" | 「チェックサム成功」
バイトイン | "ダウンロード バイト数を超えました" | 「ダウンロードバイトOK」
バイトアウト | "アップロード バイト数を超えました" | 「バイトのアップロードはOK」
接続 | "接続に失敗しました" | 「接続成功」
コンテンツ | "コンテンツが失敗しました", | 「コンテンツ成功」
データ | "データ アクセス エラー" | 「データアクセス成功」
実行 | "実行に失敗しました" | 「実行成功」
fsflags | "ファイル システム フラグが失敗しました" | 「ファイルシステムフラグは成功しました」
ギッド | "GID が失敗しました" | 「GID成功」
icmp | "Ping に失敗しました" | 「Ping成功」
インスタンス | "監視インスタンスが変更されました" | 「監視インスタンスは変更されていません」
無効 | "無効な型" | 「タイプ成功」
リンク | "リンクダウン" | "リンクアップ"
存在しない | "存在しません" | 「存在する」
パケチン | "ダウンロード パケットの超過" | 「パケットのダウンロードはOK」
パケットアウト | "アップロード パケットの超過" | 「パケットをアップロードしてください」
許可 | "許可に失敗しました" | 「パーミッション成功」
ピッド | "PID が失敗しました" | 「PID成功」
ピッド | "PPID が失敗しました" | 「PPID成功」
リソース | "リソース制限が一致しました" | 「リソース制限成功」
彩度 | "飽和を超えました" | 「飽和OK」
サイズ | "サイズに失敗しました" | 「サイズ成功」
速度 | 「速度に失敗しました」 | 「スピードよし」
ステータス | "ステータスが失敗しました" | 「ステータス成功」
タイムアウト | "タイムアウト" | 「タイムアウト回復」
タイムスタンプ | "タイムスタンプに失敗しました" | 「タイムスタンプは成功しました」
ユーザーID | "UID に失敗しました" | 「UID成功」
アップタイム | "アップタイムに失敗しました" | 「アップタイム成功」
各アラート受信者は、独自のフィルターを持つことができます。次に例を示します。
set alert foo@bar {存在しない、タイムアウト、リソース、icmp、接続}
{checksum、permission、uid、gid}にアラートsecurity@barを設定します
アラートを設定 admin@bar
設定 an エラー リマインダー
モニターはデフォルトで送信します XNUMXつ サービスが失敗した場合の通知と、サービスが失敗した場合の別の通知
回復します。 サービスがまだ失敗した状態であることを通知したい場合は、次のことができます。
アラート ステートメントでリマインダー オプションを使用します。
SET ALERT メールアドレス [WITH] REMINDER [ON] 番号 [CYCLES]
たとえば、サービスが失敗したままになっている場合、XNUMX サイクルごとに通知を受けたい場合
状態では、次を使用できます。
10 サイクルのリマインダーで foo@bar にアラートを出す
同様に、失敗したサイクルごとに通知を受け取りたい場合は、次を使用できます。
1 サイクルのリマインダーで foo@bar にアラートを出す
無効化 アラート for 一部 サービス
一部のユーザーとサービスのアラートを抑制するには、コンテキストに「noalert」ステートメントを追加します
サービスチェックの。
NOALERT メールアドレス
例 (サービス p3 を除くすべてのアラートを foo@bar に送信):
アラートを設定する foo@bar
プロセス p1 を pidfile /var/run/p1.pid でチェックします
プロセス p2 を pidfile /var/run/p2.pid でチェックします
プロセス p3 を pidfile /var/run/p3.pid でチェックします
ノアラート foo@bar
メッセージ 形式でアーカイブしたプロジェクトを保存します.
アラート メッセージの形式は、「set mail-format」ステートメントを使用して変更できます。
SET MAIL-FORMAT {メールフォーマット}
例:
メール形式を設定 {
から: [メール保護]
に返信: [メール保護]
件名: $DATE $SERVICE $EVENT
メッセージ: $ACTION $SERVICE を $DATE に $HOST: $DESCRIPTION で監視します。
敬具
モニット
}
この から: オプションは、送信者の電子メール アドレスです。 つまり、Monit が送信するメールアドレス
からアラートを送信しているふりをします。 実際の電子メール アドレスである必要はありません。
適切な形式のアドレス。
この に返信: オプションを使用して、返信先メール ヘッダーを設定できます。
この 件名: オプションはメッセージの件名を設定し、オンのみにする必要があります XNUMXつ ライン。
この メッセージ: オプションはメール本文を設定します。 このオプションは、常にメールの最後にある必要があります。
フォーマットステートメント。 メール本文は必要なだけ長くすることができますが、 ブロックを含む-
'}' 文字を閉じます。
すべてのオプションを使用する必要はなく、オーバーライドしたいオプションのみを使用してください。 たとえば、
送信者アドレスのみをグローバルに変更します。
メール形式を設定します { from: [メール保護] }
件名と本文には、Monit によって展開される $NAME 変数が含まれる場合があります。 がここにあります
アラート メッセージを作成するときに使用できる変数のリスト。
· $イベント
発生したイベントを説明する文字列。
· $サービス
サービス名
· $DATE
現在の日時 (RFC 822 日付スタイル)。
· $ホスト
Monit が実行されているホストの名前
· $アクション
Monit によって実行されたアクションの名前。
· $説明
エラー状態の説明
設定 a 電子メール for アラート 配達
Monit がアラート メッセージの送信に使用するメール サーバーは、「set mailserver」で定義されます。
ステートメント:
メールサーバーを設定
[ポート番号]
[ユーザー名文字列] [パスワード文字列]
[SSL を使用 [オプション {...} 付き]
[証明書チェックサム [MD5|SHA1] ]、
...
[タイムアウト X 秒あり]
[HOSTNAME ホスト名を使用]
カンマ区切りのリストを使用して、複数のメールサーバーを設定できます。 モニターが接続できない場合
最初のサーバーに接続すると、リスト内の次のサーバーが試行されます。
port ステートメントを使用すると、デフォルトの SMTP ポート (SSL の場合は 465、SSL の場合は 25) をオーバーライドできます。
TLS および非セキュア接続)。
Monit は、SMTP 認証で AUTH PLAIN と AUTH LOGIN をサポートしています。 ユーザー名を設定できます
USERNAME および PASSWORD オプションを使用したパスワード。
接続に SSL/TLS オプションを設定し、SSL 証明書のチェックサムを確認することもできます。
デフォルトの接続タイムアウトは 5 秒です。 TIMEOUT を使用して、この制限を上げることができます。
オプションを選択します。
例 (フェイルオーバー用に XNUMX つのメールサーバーを設定):
メールサーバー smtp.gmail.com、smtp.other.host を設定します
デフォルトでは、Monit は SMTP HELO/EHLO および Message-ID ヘッダーでローカル ホスト名を使用します。
これは、HOSTNAME オプションを使用してオーバーライドできます。
イベント キュー
メールサーバーが利用できない場合、Monit できる 再試行のためにローカル ファイル システムでイベントをキューに入れる
メールサーバーが回復するまで。
Monit が M/Monit と共に使用される場合、イベント キューは M/Monit の安全なイベント ストアを提供します。
一時的な問題の場合。
イベント キューは、Monit の再起動後も永続的であり、バックエンドが
ファイルシステムは、システムの再起動後も永続的です。
デフォルトでは、キューは無効になっており、アラート ハンドラーが失敗した場合、Monit は単純に削除されます。
警告メッセージ。
イベント キューを有効にするには、次のステートメントを追加します。
EVENTQUEUE BASEDIR の設定[スロット]
のイベントが保存されるディレクトリへのパスです。
必要に応じて、キューのサイズを制限したい場合は、slots オプションを使用して、最大
数 イベントメッセージ。
例:
eventqueue basedir /var/monit スロットを 5000 に設定します。
同じマシンで複数の Monit インスタンスを実行している場合、 しなければなりません つかいます
分離されたイベント キュー ディレクトリ。
サービス 方法
各サービスを関連付けることができます start, stop と 再起動 Monit が使用できるメソッド
サービスでアクションを実行します。
構文:
[プログラム] = 「プログラム」
[[AS] UID ]
[[AS] GID ]
[[WITH]タイムアウト秒]
「プログラム」がシェル スクリプトの場合は、「#!」で始まる必要があります。 そして最初の残り
行は、プログラムのインタープリターを指定する必要があります。 例「#!/bin/sh"
「プログラム」は実行可能でなければなりません (たとえば、モード 0755)。
スクリプトを直接 プログラム こちらです:
停止 = "/bin/bash -c 'kill -s SIGTERM `cat /var/run/process.pid`'"
デフォルトでは、プログラムは Monit を実行しているユーザーとして実行されます。 モニターが
ルートとして実行している場合、オプションで UID と GID 実行されるプログラムは
切り替える。
例:
プロセス mmonit を pidfile /usr/local/mmonit/mmonit/logs/mmonit.pid でチェックします。
start program = "/usr/local/mmonit/bin/mmonit" as uid "mmonit" and gid "mmonit"
stop program = "/usr/local/mmonit/bin/mmonit stop" as uid "mmonit" and gid "mmonit"
プロセス チェックの場合、Monit は開始/停止アクションを最大 30 秒間待機します。
あきらめてエラーを報告する前に終了します。 このタイムアウトは、
TIMEOUT オプションを選択します。
例:
プロセス foobar を pidfile /var/run/foobar.pid でチェックします
start program = "/etc/init.d/foobar start" タイムアウト 60 秒
stop program = "/etc/init.d/foobar stop"
サービス POLL タイム
サービスは、「set daemon n」ステートメントによって定期的にチェックされます。 チェックは
「.monitrc」ファイルに書かれているのと同じ順序で実行されます。
依存関係はサービス間でセットアップされ、前提条件のサービスが最初にテストされます。
"every" ステートメントを使用して、サービス チェック スケジュールを変更することができます。
XNUMXつのバリエーションがあります。
1. ポーリング サイクル倍数に基づくカスタム間隔
[数]サイクルごと
2. check は cron スタイルの文字列に基づくスケジュールです
[cron]ごとに
3. cron スタイルの文字列に基づいてスケジュールをチェックしない
[cron] ごとではない
cron スタイルの文字列で、空白で区切られた 5 つのフィールドで構成されます。 すべてのフィールドは
必須:
名前: | 許可された値: | 特殊文字:
-------------------------------------------------- -------------
分 | 0-59 | * - ,
営業時間 | 0-23 | * - ,
月の日| 1-31 | * - ,
月 | 月 | 1-12 (1=12 月、XNUMX=XNUMX 月) | * - ,
曜日 | 0-6 (0=日曜日、6=土曜日) | * - ,
特殊文字:
キャラクター: | 説明:
-------------------------------------------------- -------------
* (アスタリスク) | アスタリスクは、式が
| | フィールドのすべての値に一致します。 たとえば、
| | 4 番目のフィールド (月) のアスタリスクは
| | 毎月表示します。
- (ハイフン) | ハイフンは、範囲を定義するために使用されます。 例えば、
| | 時間フィールドの 8-9 は、午前 8 時から午前 XNUMX 時までを示します。
| | 午前9時。 範囲は開始時刻から までであることに注意してください。
| | 終了時間も含みます。 つまり、午前 8 時から
| | 分が設定されていない場合は午前 10 時。 もう一つの例、
| | 曜日フィールドに 1 ~ 5 で、月曜日から月曜日までを指定します
| | 金曜日(金曜日を含む)。
, (コンマ) | コンマは、シーケンスを指定するために使用されます。 例えば
| | 日フィールドの 17,18 は、17 日と 18 日を示します。
| | 日。 シーケンスには以下も含めることができます
| | 範囲。 たとえば、平日に 1-5,0 を使用すると、
| | フィールドは月曜日から金曜日と日曜日を示します。
例 1: XNUMX サイクルに XNUMX 回チェックする
pidfile /var/run/nginx.pid でプロセス nginx をチェックします
2サイクルごと
例 2: 平日の午前 8 時から午後 7 時までチェックする
チェックプログラム checkOracleDatabase
パス /var/monit/programs/checkoracle.pl を使用
「* 8-19 * * 1-5」ごと
例 3: 日曜日の午前 0 時から午前 3 時までのバックアップ ウィンドウでチェックを実行しない
プロセス mysqld を pidfile /var/run/mysqld.pid でチェックします
「* 0-3 * * 0」ごとではない
制限事項:
現在のスケジューラは、ポーリング サイクル ベースです。 サービス チェックが
あらゆる cron ステートメント、Monit は現在の時刻が cron-string と一致するかどうかを確認します
パターン。 存在する場合はチェックが実行され、そうでない場合はスキップされます。 クロン
したがって、仕様はテストがいつ実行されるかを保証するものではありません。
デフォルトのポーリング時間とチェック サイクルの長さ。 つまり保証はできません
そのMonitは特定の時間に実行されます。 そのため、私たちは 強く アスタリスクを使用することをお勧めします
分フィールドまたは少なくとも範囲内。 0-15。 決して 特定の分を次のように使用する
その分、Monit は実行されない可能性があります。
将来のリリースでこの制限に対処し、スケジューラをシリアルから変換します。
チェックが時間通りに実行されることが保証されている並列ノンブロッキング スケジューラへのポーリング
秒単位の解像度で。
サービス グループ
制御ファイルのサービス エントリ、 モニター、によってグループ化できます グループヘッド
声明。 構文は単純です (大文字のキーワード):
GROUP グループ名
このステートメントを使用すると、同様のサービス エントリをグループ化して管理できます。
それらを全体として。 監視を開始、停止、再起動、監視、および監視解除する機能を提供します。
次のようなサービスのグループ:
コンソールからサービスのグループを開始するには:
モニター -g 始める
サービスのグループを停止するには:
モニター -g ストップ
サービスのグループを再起動するには:
モニター -g 再起動
複数の group ステートメントを使用して、サービスを複数のグループに追加できます。
グループ www
グループファイルシステム
サービス モニタリング モード
Monit は、サービスごとに XNUMX つの監視モードをサポートしています。 アクティブ, パッシブ と マニュアル.
構文:
モード
In アクティブ モード (デフォルト) の場合、Monit は積極的にサービスを監視します。
問題が発生すると、アラートが発生したり、サービスが再起動されたりします。
In パッシブ モードでは、Monit はサービスを受動的に監視し、アラートを生成しますが、
実行して問題を解決しようとする start, stop or 再起動.
In マニュアル モード、Monitが入ります アクティブ モード の サービスが Monit 経由で開始された場合:
監視開始
「モニター停止」を使用" サービスを停止し、Monit の制御から外します。
手動モードを使用して、アクティブ/パッシブ HA サービスを備えた単純なクラスターを構築できます。
サービスの監視状態は、Monit の再起動後も持続します。
HA クラスターで Monit を使用する場合は、Monit 状態ファイルを一時的に配置する必要があります。
HA サービスを実行するマシンがクラッシュし、スタンバイ マシンが
サービスを引き継ぐと、クラッシュしたノードが起動した後、HA サービスは開始されません。
再び:
状態ファイル /tmp/monit.state を設定します
サービス 再起動 LIMIT
Monit サービスが単純に再起動を拒否した場合に備えて、再起動制限メカニズムを提供します。
より長い期間にわたって開始または応答します。
再起動の制限メカニズムは、サービスの再起動の数とポーリングの数に基づいています。
サイクル。 たとえば、サービスに x 以内に再起動します y ポーリングサイクル (どこで x <= y)
Monit はアクションを実行します (たとえば、サービスの監視を解除します)。 タイムアウトが発生した場合、
このイベントに関心がある場合は、Monit から警告メッセージが送信されます。
timeout ステートメントの構文は次のとおりです (キーワードは大文字です)。
もしも再起動CYCLE(S) THEN
この アクション 値は、一般的なアクションの XNUMX つまたは TIMEOUT (下位互換性のために、
UNMONITOR アクションに等しい)。
これは、サービスが 2 回再起動された場合に Monit がサービスの監視を解除する例です。
3 サイクル以内:
2 サイクル以内に 3 回再起動した場合、監視を解除します
監視を無効にした後で Monit にサービスを再度チェックさせるには、「monit monitor」を実行します。
コマンド ラインから「servicename」を実行します。
タイムアウト時にカスタム exec を設定する例:
5 サイクル以内に 5 回再起動する場合は、「/foo/bar」を実行します。
サービスを停止する例:
7 サイクル以内に 10 回再起動した場合は停止
サービス 依存関係
制御ファイルで指定されている場合、Monit は開始、停止、停止の前に依存関係のチェックを行うことができます。
サービスの監視または監視解除。 依存関係ステートメントは、任意の中で使用できます。
Monitor 制御ファイルのサービス エントリ。
depend ステートメントの構文は次のとおりです。
サービス[、サービス[、...]]に依存
場所 サービス たとえば、「.monitrc」ファイルで使用されるチェック サービス エントリ名です。
アパッチ or データファイル.
任意のタイプの複数のサービス名を追加したり、複数の依存ステートメントを使用したりできます
エントリで。
で指定されたサービス 決まる ステートメントは、
操作の停止/開始/監視/監視解除。
サービスが停止または監視されていない場合、依存するすべてのサービスが停止または監視されなくなります。
そのもの。
サービスが開始されると、このサービスが依存するすべてのサービスが開始されます
このサービスを開始する前に。 一部のサービスの開始に失敗した場合、サービス
前提条件は開始されませんが、開始する必要があることを覚えています。
次のサイクルを再試行します。
サービスが再起動されると、まずサービスに依存するアクティブなサービスがすべて停止されます。
起動後、再起動前にアクティブだったすべての依存サービスを開始します
再び。
これは、基礎となるものに依存するように apache サービス エントリを設定する例です。
アパッチバイナリ。 バイナリが変更された場合、アラートが送信され、Apache は監視されません
もう。 根拠はセキュリティであり、Monit はクラックされた可能性があるものを実行すべきではありません。
アパッチバイナリ。
(1) プロセス apache を pidfile "/var/run/httpd.pid" でチェック
(2) httpd に依存
(3)...
(4)
(5) パス /usr/bin/httpd のファイル httpd を確認します
(6) チェックサムに失敗した場合は停止します
最初のエントリは、apache のプロセス エントリです。 XNUMX行目は依存関係を設定します
このエントリと 5 行目の httpd という名前のサービス エントリの間。依存関係ツリーは次のように機能します。
下位のブランチでアクションが実行された場合、それはツリーの上方に伝播します。
すべての依存エントリに対して同じアクションを実行します。 この場合、チェックサム
6行目で失敗し、停止アクションが実行され、Apacheバイナリはチェックされません
もう。 しかし、apache プロセス エントリは httpd エントリに依存するため、このエントリは
停止アクションも実行します。 つまり、httpd バイナリ ファイルのチェックサム テストが
失敗すると、チェック ファイル httpd とチェック プロセスの apache エントリの両方が停止します。
依存関係ツリーは一般的な構造であり、すべてのタイプのサービス間で使用できます
エントリと多くのレベルにまたがり、サポートされているアクションを伝播します (exec アクションを除く)
明らかな理由により、依存関係ツリーで上方に伝播しません)。
別の例を次に示します。 次の一般的なサーバー設定を検討してください。
ウェブサーバー -> アプリケーションサーバー -> データベース -> ファイルシステム
(あいうえお)
Web サーバーが実行するアプリケーション サーバーに依存するように、依存関係を設定できます。
Web サーバーが起動し、アプリケーション サーバーがデータベース サーバーに依存する前に、
データベースは、起動前にマウントされるファイルシステムに依存します。 も参照してください。
依存ステートメントを使用した例については、以下の例のセクションを参照してください。
ここでは、Monit が上記の依存関係でどのように機能するかを説明します。
実行中のサービスがない場合
Monit は、次の順序でサーバーを起動します。 d, c, b, a
すべてのサーバーが稼働している場合
「monit stop all」を実行すると、停止順序は次のようになります。 a, b, c, d. 'Monit を実行すると
やめて a, b と c に依存しているため停止します。 d そして最後に d is
停止しました。
If a 実行されません
モニタが開始されます a
If b 実行されません
モニターは最初に停止します a それから始めます b そしてついにスタート a if b 再び起きています。
If c 実行されません
モニターは最初に停止します a と b それから始めます c そしてついにスタート b その後 a.
If d 実行されません
モニターは最初に停止します a, b と c それから始めます d そしてついにスタート c, b その後 a.
制御ファイルに依存ループが含まれている場合。
たとえば、依存ループがあります。 a->b および b->a または a->b->c->a。
Monit が開始されると、そのようなループをチェックし、ループがあった場合は文句を言って終了します。
見つかった。 また、依存ステートメントが使用されていない場合も、エラーで終了します。
制御ファイル内のサービスを指します。
サービス TESTS
LIMITS
さまざまな制限を構成および設定して、Monit が使用するバッファー サイズとタイムアウトを微調整できます。
ほとんどの場合、デフォルト値で問題ありません。 必要に応じて、次の制限を設定できます
現在、Monit で変更しています。
構文:
制限を設定 {
プログラム出力: 、
SENDEXPECTBUFFER: 、
ファイルコンテンツバッファ: 、
HTTPコンテンツバッファ: 、
ネットワークタイムアウト:
}
どこ:
単位 "B" (バイト)、"kB" (キロバイト)、または "MB" (メガバイト)
時間単位 "MS" (ミリ秒) または "S" (秒)
オプションの凡例:
-------------------------------------------------- --------------------------------
| | オプション | 説明 | デフォルト |
-------------------------------------------------- --------------------------------
| | プログラム出力 | プログラム出力の制限 (後は切り捨て) | 512B |
| | sendExpectBuffer | send/expect プロトコル テストの制限 | 256B |
| | fileContentBuffer | ファイル コンテンツ テストの制限 (行) | 512B |
| | httpContentBuffer | HTTP コンテンツ テストの制限 (応答本文) | 1MB |
| | ネットワークタイムアウト | ネットワーク I/O のタイムアウト | 5 秒 |
-------------------------------------------------- --------------------------------
全般的な 構文
Monit は、さまざまな側面をテストするために「check」ステートメントで使用できるいくつかの if-test を提供します
サービスの。
定義済みの値または範囲の両方をテストし、値が次の場合にアクションを実行できます。
変更。
特定の値または範囲をテストするための一般的な構文:
もしもそれから[それ以外の場合は成功]
アクションは、 条件は true です。 成功アクションはオプションです
状態が失敗から成功に変わったときにのみ実行されます。 成功アクションがない場合
設定すると、Monit はデフォルトで復旧アラートを送信します。
値変更テストの一般的な構文:
変更された場合それから
値が変化するたびにアクションが実行されます。 Monit は新しい値を記憶し、
値が再び変化すると、イベントがトリガーされます。
ACTION
各テストで、実行するアクションを次のリストから選択する必要があります。
· ALERT 状態が変化するたびにアラートイベントをユーザーに送信します。
· 再起動 サービスを再起動します と アラートを送信します。 再起動は、
サービスの登録された再起動メソッド、または最初に停止メソッドを呼び出してから
再起動が設定されていない場合の開始方法。
· 開始 サービスの登録された開始メソッドを呼び出してサービスを開始します と 送信する
警告します。
· STOP サービスの登録済み停止メソッドを呼び出してサービスを停止します と 送信する
アラート。 Monit がサービスを停止すると、Monit によってチェックされなくなり、再起動されなくなります。
後でもう一度。 サービスの監視を再度有効にするには、明示的に有効にする必要があります
Web インターフェイスまたはコンソールからの監視。
· エグゼク 任意のプログラムの実行に使用できます と アラートを送信します。 これを選ぶと
action 実行するプログラムを指定する必要があり、プログラムに引数が必要な場合
プログラムとその引数は、引用符で囲まれた文字列で囲む必要があります。 オプションで
実行されたプログラムが起動時に切り替える uid と gid を指定します。 プログラム
デフォルトでは、状態が変化したときに一度だけ実行されます。 プログラムを有効にすることができます
指定されたサイクル数の間エラーが続く場合の繰り返し。 例えば:
失敗した場合次に、「/usr/local/bin/sms.sh」を実行します
uid nobody および gid nobody として
5サイクルごとに繰り返す
Monit が root によって実行される場合、Monit によって実行されるすべてのプログラムが開始されることに注意してください。
uid および gid 拡張子が使用されていない限り、スーパーユーザー権限で。
· 監視解除 サービスの監視を無効にします と アラートを送信します。 サービスは
Monit によってチェックされることも、後で再起動することもありません。 監視を再開するには
サービスの監視を明示的に有効にする必要があります。
コンソール。
FAULT 許容差
デフォルトでは、一致する場合にアクションが実行され、対応するサービスが
エラー状態。 ただし、エラー イベントの前に、テストが複数回失敗するように要求できます。
がトリガーされ、サービスの状態が失敗に変更されます。 これは、取得を回避するのに役立ちます
特にネットワーク テストで発生する可能性がある偽のエラーに関するアラート。
構文:
ためにサイクル...
または:
[時間内] サイクル...
条件は、失敗アクションと成功アクションの両方に使用できます。
最初の、よりシンプルで推奨される形式では、切り替える前に「X」回の連続したイベントが必要です
状態:
失敗した場合
ポート80
3サイクル
それから警告します
XNUMX 番目の形式はより高度で、断続的な問題を許容できますが、
サービスがエラーと成功の間でバタバタしている場合でも、過度の問題を検出します
頻繁に述べています。
たとえば、1 サイクルごとに失敗した場合 (0-1-0-1-0-2-...)、「XNUMX サイクル間」条件
サービスに問題があっても一致しません。 次のステートメントはキャッチします
そのような状態:
失敗した場合
ポート80
3サイクル以内に5回
それから警告します
複数のエラー レベルとアクションを設定する例:
パス /dev/hda1 でファイルシステムの rootfs を確認します
スペース使用率 > 80% が 5 サイクル内に 15 回発生した場合、アラート
スペース使用率が 90 サイクルで 5% を超える場合は、'/try/to/free/the/space' を実行します。
注: サイクルの最大値は 64 です。
存在 TESTING
このテストは暗黙的であり、タイプのサービス チェックに対して常にアクティブです。 プロセス, file,
ディレクトリにジョブを開始します。 と FIFO. 定義されていない場合、デフォルトで再起動アクションになります。
次のステートメントを使用して、デフォルトのアクションをオーバーライドできます。
[存在しない場合] 存在しない場合
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
パス /cifs/mydata のファイルをチェック
存在しない場合は、「/usr/bin/mount_cifs.sh」を実行します
リソース TESTING
Monit は、サービスが使用しているシステム リソースの量を調べることができます。 このテストは、
Monit 制御ファイルのシステムまたはプロセス サービス エントリ内で使用されます。
システムまたはプロセスの特性に応じて、サービスを停止または再開できます。
アラートを生成できます。 したがって、アイドル状態のシステムを利用して、
高負荷時の予備システム。
リソースのテストに使用される resource-statement の完全な構文は次のとおりです (キーワード
は大文字であり、オプションのステートメントは [括弧])、
もしもそれから
リソースを追加する。 "CPU"、"TOTAL CPU"、"CPU([user|system|wait])"、"MEMORY"、"SWAP"、
"THREADS"、"CHILDREN"、"TOTAL MEMORY"、"LOADAVG([1min|5min|15min])". いくつかのリソース テスト
チェック システム エントリ内で使用できます。一部はチェック プロセス エントリで、一部は両方で使用できます。
システムのみのリソース テスト:
CPU([user|system|wait]) は、システムがユーザーまたはカーネル空間で費やす時間の割合です
および I/O。 user/system/wait 修飾子はオプションです。使用しない場合、合計システム CPU
使用がテストされます。
SWAP は、システムのスワップ使用率 (システム合計のパーセント) または
量 (バイト、kB、MB、GB)。
リソース テストのみを処理します。
CPU は、プロセス自体の CPU 使用率 (パーセント) です。
TOTAL CPU は、プロセスとその子プロセスの合計 CPU 使用率 (パーセント) です。 あなたはするであろう
通常、XNUMX つのマスターが使用される Apache Web サーバーなどのサービスに TOTAL CPU を使用したい
プロセスは、子プロセスをワーカーとしてフォークします。
THREADS は、プロセスのスレッド数です。
CHILDREN は、プロセスの子プロセスの数です。
TOTAL MEMORY は、プロセスとその子プロセスのメモリ使用量 (パーセント) です。
または量 (バイト、kB、MB、GB) として。
システムおよびプロセス リソースのテスト:
MEMORY は、いずれかのシステムまたはプロセス (子なし) のメモリ使用量です。
パーセント (システム合計の) または量 (バイト、kB、MB、GB) として。
LOADAVG([1min|5min|15min]) は、システムの負荷平均を表します。 負荷平均は、
システム実行キュー内のプロセス数 (指定された期間の平均)。
オペレータ C表記では"<"、">"、"!="、"=="、C表記では"gt"、"lt"、"eq"、"ne"のいずれかを選択
シェルの sh 表記と、人間が読める形式の「より大きい」、「小さい」、「等しい」、「等しくない」(
指定されていない場合、デフォルトは EQUAL です)。
値 整数または実数です。 CPU、TOTAL CPU、MEMORY、TOTAL MEMORY の場合
を指定する必要があります 単位. これは「%」または該当する場合は「B」(バイト)、「kB」(1024
バイト)、"MB" (1024 キロバイト) または "GB" (1024 メガバイト)。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
サイクルを計算するために、上記の式が true の場合は常にカウンターが発生します。
false の場合は常に低くなります (ただし、0 未満ではありません)。 すべてのカウンタは、次の場合にリセットされます。
再起動してください。
以下は、サービスの CPU 使用率が超過していないかを確認する例です。
50 回のポーリング サイクルで XNUMX%。 存在する場合、Monit はサービスを再起動します。
CPU が 50 サイクルにわたって 5% を超えた場合、再起動します
FILE チェックサム TESTING
チェックサム ステートメントはファイル サービス エントリ内でのみ使用でき、チェックサム ステートメントはファイル サービス エントリ内でのみ使用できます。
ファイルの MD5 または SHA1 チェックサム。
特定のチェックサムを確認します。
失敗した場合 [MD5|SHA1] チェックサム [チェックサムを期待] THEN アクション
ファイルの変更を確認します。
[MD5|SHA1] チェックサムが変更された場合のアクション
MD5 または SHA1 の選択はオプションです。 MD5 は 128 ビットのチェックサム (32 進数で XNUMX バイト) を備えています。
エンコードされた文字列)と SHA1 160 ビットのチェックサム(40 バイトの XNUMX 進数でエンコードされた文字列)。 このオプションの場合
が省略されている場合、Monit は EXPECT 文字列からメソッドを推測するか、MD5 を
デフォルトのチェックサム。
「expect」はオプションで、使用する場合は、Monit が期待する md5 または sha1 文字列を指定します。
ファイルのチェックサムをテストするとき。 Monit は、その初期チェックサムを計算しません。
ファイルを作成しますが、代わりに送信した文字列を使用します。 例えば:
失敗した場合
checksum expect 8f7f419955cefa0b33a2ba316cba3659
それから警告します
たとえば、GNU ユーティリティを使用できます。 md5sum(1) or sha1sum(1) チェックサムを作成するには
ファイルの文字列を指定し、この文字列をexpectステートメントで使用します。
構成ファイルが変更された場合にサーバーをリロードします。
パス /etc/apache/httpd.conf のファイル apache_conf を確認してください
チェックサムが変更された場合は、「/usr/bin/apachectlグレースフル」を実行します
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
タイムスタンプ TESTING
タイムスタンプ ステートメントは、ファイル、FIFO、またはディレクトリ サービス エントリでのみ使用できます。
特定のタイムスタンプ構文:
IF TIMESTAMP [[演算子] 値 [単位]] THEN アクション
タイムスタンプが変更された構文:
タイムスタンプが変更された場合のアクション
オペレータ C 表記では「<」、「>」、「!=」、「==」、C 表記では「GT」、「LT」、「EQ」、「NE」のいずれかを選択します。
シェル sh 表記と、人間が読める形式の「GREATER」、「LESS」、「EQUAL」、「NOTEQUAL」 (
指定されていない場合、デフォルトは EQUAL です)。
値 タイムウォーターマークです。
単位 「SECOND(S)」、「MINUTE(S)」、「HOUR(S)」、または「DAY(S)」のいずれかです。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
たとえば、構成ファイルのタイムスタンプが変更された場合に Apache をリロードするには、次のようにします。
パス /etc/apache/httpd.conf のファイル apache_conf を確認してください
タイムスタンプが変更された場合は、「/usr/bin/apachectlグレースフル」を実行します
たとえば、ファイルの追加または削除のためにディレクトリをテストする場合:
ディレクトリバーのパス/foo/barを確認してください
タイムスタンプが 1 時間未満の場合はアラート
FILE サイズ TESTING
サイズステートメントは、チェック ファイル サービス エントリでのみ使用できます。 に指定されている場合は、
制御ファイルを作成すると、Monit がファイルのサイズを計算します。
特定のサイズまたは範囲をテストする:
IF SIZE [[演算子] 値 [単位]] THEN アクション
サイズ変更のテスト:
サイズが変更された場合のアクション
オペレータ C 表記では「<」、「>」、「!=」、「==」、C 表記では「GT」、「LT」、「EQ」、「NE」のいずれかを選択します。
シェル sh 表記と、人間が読める形式の「GREATER」、「LESS」、「EQUAL」、「NOTEQUAL」 (
指定されていない場合、デフォルトは EQUAL です)。
値 はサイズの透かしです。
単位 「B」、「KB」、「MB」、「GB」、または長い代替値「バイト」、「キロバイト」のいずれかを選択します。
「メガバイト」、「ギガバイト」。 指定しない場合は、デフォルトで「バイト」単位が想定されます。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
たとえば、ファイルが大きすぎる場合にアラートを送信するには、次のようにします。
パス /data/mydatabase.db のファイル mydb をチェックしてください
サイズ > 1 GB の場合はアラート
FILE コンテンツ TESTING
content ステートメントを使用すると、テキスト ファイルの内容を段階的にテストできます。
正規表現を使用します。
構文:
コンテンツの場合その後のアクション
オペレータ は、一致する場合は「=」、一致しない場合は「!=」のいずれかです。
正規表現 拡張正規表現を含む文字列です。 こちらも参照 正規表現とします。
path すべての行に拡張正規表現が含まれるファイルへの絶対パスです。
参照 正規表現とします。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
起動時に読み取り位置がファイルの末尾に設定され、Monit はスキャンを継続します。
各サイクルのファイルの終わり。
ファイル サイズが減少するか、i ノードが変更される必要がある場合、読み取り位置は先頭に設定されます。
ファイルの。
改行文字で終わる行のみが検査されます。
デフォルトでは、行の最初の 511 文字のみが検査されます。 増やすことができます
setlimits ステートメントを使用して制限を設定します。
コンテンツを無視する
に一致する行 IGNORE 後の評価では検査されません。 IGNORE コンテンツ 持っています
常に優先される IF コンテンツ.
すべて IGNORE コンテンツ ステートメントは、出現順に最初に評価されます。
その後、すべての IF コンテンツ ステートメントが評価されます。
例:
ファイルの syslog をパスでチェックする / var / log / syslog
コンテンツを無視 = "^monit"
コンテンツ = "^mrcoffee" の場合、アラート
ファイルシステム FLAGS TESTING
Monit は、ファイルシステムのフラグの変更をテストできます。 このテストは暗黙的であり、Monit は
デフォルトで失敗した場合にアラートを送信します。
このテストは、ファイル システム フラグの変更を検出するのに役立ちます。
読み取り専用になったか (ディスクエラー)、マウントフラグが変更されました (nosuid など)。
fsflags ステートメントの構文は次のとおりです。
FSFLAGS が変更された場合のアクション
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
ファイルシステムの rootfs をパス / でチェックしてください
fsflags が変更された場合は、「/my/script」を実行します
SPACE TESTING
Monit は、ファイルシステムまたはディスクのスペース使用量をテストできます。 このテストは以下でのみ使用できます。
ファイルシステムサービスタイプのコンテキスト。
ファイルシステムには通常、root ユーザー用にある程度のスペースが予約されています (約 1 ~ 5%)。
スーパーユーザーは、ほぼ完全なファイルシステムに書き込むことができません。 ファイルシステムに制限を設定している場合
これは root 以外のユーザーによって使用されるため、次の場合にこれらの予約ブロックを考慮する必要があるかもしれません。
制限を設定すること。 Monit 自体を使用して、予約ブロックの割合を次のように表示できます。
CLI ステータス コマンドまたは特定のファイル システムの HTTP インターフェイスを使用します。
構文:
IF SPACE 演算子の値の単位 THEN アクション
または:
IF SPACE FREE 演算子値単位 THEN アクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
単位 「B」、「KB」、「MB」、「GB」、「%」、または長い代替値「byte」、「kilobyte」のいずれかを選択します。
「メガバイト」、「ギガバイト」、「パーセント」。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
ファイルシステムの rootfs をパス / でチェックしてください
スペース使用率 > 90% の場合、アラート
Iノード TESTING
Monit はファイルシステムの i ノードの使用状況をテストできます。 このテストは、次のコンテキストでのみ使用できます。
ファイルシステムのサービスタイプ。
構文:
IF INODE(S) 演算子の値 [単位] THEN アクション
または:
IF INODE(S) FREE 演算子の値 [単位] THEN アクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
単位 はオプションです。 指定しない場合、値は i ノードの絶対数になります。 使用できます
単位として「%」文字またはより長い代替「パーセント」を使用します。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
ファイルシステムの rootfs をパス / でチェックしてください
i ノード使用率 > 90% の場合、アラート
PERMISSION TESTING
Monit はファイル オブジェクトのアクセス許可をテストできます。 このテストは以下のコンテキストでのみ使用できます。
ファイル、FIFO、ディレクトリ、またはファイルシステムのサービス タイプ。
特定の権限をテストするための構文:
PERM(ISSION) XNUMX 進数が失敗した場合の THEN アクション
権限の変更をテストするための構文:
権限(ISSION)が変更された場合のアクション
XNUMX 進数 ファイル、ディレクトリ、またはファイルシステムのアクセス許可を XNUMX つの XNUMX 進数で定義します
数字 (0 ~ 7)。 有効な範囲は 0000 ~ 7777 です (先頭のゼロは省略できます。Monit が追加します)
左側にゼロ。 たとえば、「640」は有効な値であり、「0640」と一致します)。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
パスを使用してファイルのシャドウを確認する / etc / shadow
許可 0640 に失敗した場合はアラートが発生します
UID TESTING
Monit は、ファイル、FIFO、ディレクトリ、または所有者の所有者のユーザー ID (uid) を監視できます。
プロセスの有効なユーザー。
構文:
失敗した場合 [E]UID ユーザー THEN アクション
user ユーザー ID を数値または文字列形式で定義します。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
パスを使用してファイルのシャドウを確認する / etc / shadow
u root が失敗した場合はアラートを出します
GID TESTING
Monit は、ファイル、FIFO、ディレクトリ、またはプロセスの所有者グループ ID (gid) を監視できます。
構文:
GID グループが失敗した場合のアクション
グループヘッド グループ ID を数値または文字列形式で定義します。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
パスを使用してファイルのシャドウを確認する / etc / shadow
GID シャドウが失敗した場合はアラートを返します
PID TESTING
Monit はプロセスの PID をテストできます。 このテストは暗黙的であり、Monit はアラートを送信します。
PID が Monit の制御外で変更された場合。
構文:
PID が変更された場合のアクション
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
このテストは、システム内で発生したプロセスの再起動の可能性を検出するのに役立ちます。
XNUMX つの Monit テスト サイクルの間の時間枠。
たとえば、誰かが sshd 設定を変更し、Monit の外部で sshd を再起動した場合です。
コントロールすると、プロセスが新しいインスタンスに置き換えられたことが通知されます。
pidfile でプロセス sshd を確認する /var/run/sshd.pid
PIDが変更された場合はアラートを送信します
PPID TESTING
Monit は、プロセスの親 PID (PPID) の変更をテストできます。 このテストは暗黙的であり、Monit
PPID が Monit 制御外で変更された場合にアラートを送信します。
ppid ステートメントの構文は次のとおりです。
PPID が変更された場合のアクション
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
pidfile /var/run/myproc.pid を使用してプロセス myproc を確認します
ppid が変更された場合は、「/my/script」を実行します
プロセス 稼働時間 TESTING
uptime ステートメントは、プロセス サービス タイプのコンテキストでのみ使用できます。
構文:
IF UPTIME [[演算子] 値 [単位]] THEN アクション
オペレータ C 表記では「<」、「>」、「!=」、「==」、C 表記では「GT」、「LT」、「EQ」、「NE」のいずれかを選択します。
シェル sh 表記と、人間が読める形式の「GREATER」、「LESS」、「EQUAL」、「NOTEQUAL」 (
指定されていない場合、デフォルトは EQUAL です)。
値 は稼働時間のウォーターマークです。
単位 「SECOND」、「MINUTE」、「HOUR」、または「DAY」のいずれかです(「SECONDS」を使用することもできます)
「分」、「時間」、または「日」)。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
XNUMX 日ごとにプロセスを再起動する例:
pidfile /var/run/myapp.pid でプロセス myapp を確認してください
プログラムの開始 = "/etc/init.d/myapp start"
プログラムの停止 = "/etc/init.d/myapp stop"
稼働時間が 3 日を超える場合は再起動します
プログラム ステータス TESTING
プログラムまたはスクリプトの終了ステータスを確認できます。 このテストは以下の範囲でのみ使用できます。
Monit 制御ファイル内のチェック プログラム サービス エントリ。
特定の終了値をテストするための構文:
IF STATUS 演算子の値 THEN アクション
終了値の変更をテストするための構文:
ステータスが変更された場合のアクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
パス /usr/local/bin/myscript.sh のプログラム myscript を確認してください
ステータス != 0 の場合、アラート
上記の例のサンプル スクリプト (/usr/local/bin/myscript.sh):
#!/bin/bash
エコーテスト
$を終了しますか?
プログラムでパラメーターを送信することもできます。
パス「」のプログラムリストファイルをチェックしてください/ bin / ls -lrt / tmp /"
ステータス != 0 の場合、アラート
プログラムまたはスクリプトの引数は、空白で区切られた一連の文字列です。 の中に
上の例では、文字列「-lrt」と「/ tmp /' はプログラムへの引数です '/ bin / ls'。 もしも
引数が使用される場合は、引用符を使用することをお勧めします " 文字列を囲む場合、それ以外の場合
引数は使用されず、引用符も必要ありません。
注: プログラムがスクリプトの場合、最初の行にインタプリタが必要です。 の
プログラムまたはスクリプトも実行可能である必要があります。
Monit がスーパー ユーザーとして実行されている場合は、必要に応じて別のユーザーとしてプログラムを実行できます。
および/またはグループ。 この例では、 ls ユーザー www およびグループ スタッフとしてプログラムします。
パス「 」のプログラム ls をチェックしてください/ bin / ls / tmpに" として "www"
そして「スタッフ」
ステータス != 0 の場合、アラート
Monit はプログラムを定期的に実行し、プログラムの終了ステータスが正常でない場合に実行します。
期待される結果と一致すると、Monit はアクションを実行できます。 上の例では、Monit は
終了値が 0 と異なる場合はアラートを生成します。慣例により、0 はプログラムを意味します。
正常に終了しました。
プログラムチェックは非同期です。 つまり、Monit はプログラムの終了を待機しません。
その代わりに、Monit はバックグラウンドでプログラムを開始し、すぐに続行します。
次のサービスエントリをチェックしています モニター。 次のサイクルで、Monit は
プログラムが終了し、終了している場合は、プログラムの終了ステータスを収集します。 ステータスが示す場合
失敗すると、Monit はプログラムのエラー (stderr) を含む警告メッセージを生成します。
出力がある場合。 最初のサイクル後にプログラムが終了していない場合、Monit は待機します。
別のサイクルなど。 5 分経ってもプログラムがまだ実行中の場合、Monit は強制終了します。
それを実行し、プログラム タイムアウト イベントを生成します。 デフォルトのタイムアウトをオーバーライドすることが可能です
(以下の構文を参照してください)。
プログラム チェックの非同期の性質により、プログラム チェックでのノンブロッキング動作が可能になります。
現在の Monit 設計ですが、副作用が伴います: プログラムが終了したとき
実行し、Monit が結果を収集するのを待っている場合、いわゆる「ゾンビ」になります。
プロセス。 ゾンビ プロセスはシステム リソースを消費しません (PID のみが残ります)。
use)、それはMonitの制御下にあり、ゾンビプロセスは次のようにシステムから削除されます。
Monit が終了ステータスを収集するとすぐに。 これは、すべての「チェック プログラム」が
実行中のプロセスまたは一時的なゾンビのいずれかに関連付けられています。 この望ましくないゾンビの側面は、
この効果は、Monit の今後のリリースでは削除される予定です。
複数のステータス テストを使用できます。次に例を示します。
パス /usr/local/bin/hwtest.sh のプログラム hwtest を確認してください
タイムアウト500秒あり
ステータス = 1 の場合、アラート
3 サイクルにわたってステータス = 5 の場合、「/usr/local/bin/emergency.sh」を実行します。
NETWORK LINK ステータス テスト
ネットワークのリンク状態を確認できます。 このテストはチェック ネットワーク内でのみ使用できます。
Monitor 制御ファイル内のサービス エントリ。
構文:
リンクが失敗した場合のアクション
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
リンク/インターフェイスがダウンしているか、リンク エラーが検出された場合、テストは失敗します。
例:
インターフェイス eth0 でネットワーク eth0 を確認してください
リンクに障害が発生した場合はアラートを送信します
リンクに障害が発生した場合は、開始および停止プログラムを追加して、自動的に再起動できます。
役に立つかもしれないインターフェース。 (実際のネットワークに関連するコマンドに置き換えてください。
システム)
インターフェイス eth0 でネットワーク eth0 を確認してください
開始プログラム = '/sbin/ipup eth0'
プログラムを停止 = '/sbin/ipdown eth0'
リンクに障害が発生した場合は再起動します
NETWORK LINK キャパシティ テスト
ネットワークリンクモード容量の変更を確認できます。 このテストは次の場合にのみ使用できます。
Monit 制御ファイルのチェック ネットワーク サービス エントリ内。
構文:
リンク[容量]が変更された場合のアクション
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
リンク モードが変更された場合 (最大速度が低下した場合など)、またはリンク モードが変更された場合、テストは一致します。
二重モードが変更されました。
注: すべてのインターフェイス タイプで容量の監視ができるわけではありません。 などの疑似インターフェース
ループバック デバイスまたは VMWare インターフェイスには速度属性がありません。
例:
インターフェイス eth0 でネットワーク eth0 を確認してください
リンク容量が変更された場合はアラートを送信します
NETWORK 飽和 テスト
ネットワークリンクの飽和状態を確認できます。 その後、Monit はリンク使用率をベースに計算します。
現在の転送速度とリンク容量の関係。 このテストはチェック内でのみ使用できます
Monit 制御ファイル内のネットワーク サービス エントリ。
構文:
IF SATURATION 演算子の値% THEN アクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
注: このテストは、すべてのインターフェイスではなく、速度属性の可用性に依存します。
型にはこの属性があります。 LINK SPEED テストの説明を参照してください。
例:
インターフェイス eth0 でネットワーク eth0 を確認してください
飽和度 > 90% の場合はアラート
NETWORK 帯域幅 テスト
ネットワークリンクのアップロードおよびダウンロードの帯域幅使用状況、現在の転送速度を確認できます。
過去 24 時間に転送された合計データ。 このテストはチェック内でのみ使用できます
Monit 制御ファイル内のネットワーク サービス エントリ。
警告: このテストでは、monit ポーリング時間を最大 30 秒にする必要があります。
現在のアップロード帯域幅レートのテスト構文:
IF UPLOAD 演算子値単位 THEN アクション
現在のダウンロード帯域幅レートのテスト構文:
IF DOWNLOAD 演算子値単位 THEN アクション
アップロード テストの合計構文:
IF TOTAL UPLOAD 演算子 値の単位 IN LAST 数値 時間単位 THEN アクション
合計ダウンロード テスト構文:
IF TOTAL DOWNLOAD 演算子 値の単位 IN 最後の数値 時間単位 THEN アクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
単位 「B」、「KB」、「MB」、「GB」、または長い代替値「バイト」、「キロバイト」のいずれかを選択します。
「メガバイト」、「ギガバイト」。
時間単位 「分」、「時間」、「日」から選択できます。 注:Monit はローリングを維持します。
過去 24 時間のみのアップロードおよびダウンロードの合計バイト数。 の値
したがって、time-unit では XNUMX 日を超える範囲を指定することはできません。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
インターフェイス eth0 でネットワーク eth0 を確認してください
アップロード > 500 KB/秒の場合はアラート
過去 1 時間で合計ダウンロードが 2 GB を超える場合、アラートが表示されます
過去 10 日の合計ダウンロードが XNUMX GB を超える場合、アラートが発生します
NETWORK パケット テスト
ネットワークリンクのアップロードおよびダウンロードのパケット数、現在の転送速度を確認できます。
過去 24 時間に転送された合計データ。 このテストはチェック内でのみ使用できます
Monit 制御ファイル内のネットワーク サービス エントリ。
警告: このテストでは、monit ポーリング時間を最大 30 秒にする必要があります。
現在のアップロード帯域幅レートのテスト構文:
IF UPLOAD 演算子の値 PACKETS/S THEN アクション
現在のダウンロード帯域幅レートのテスト構文:
IF DOWNLOAD 演算子の値 PACKETS/S THEN アクション
アップロード テストの合計構文:
IF TOTAL UPLOAD 演算子の値 PACKETS IN LAST 数値 時間単位 THEN アクション
合計ダウンロード テスト構文:
IF TOTAL ダウンロード演算子値パケットの最後の番号時間単位 THEN アクション
オペレータ C 表記では "<"、">"、"!="、"=="、シェルでは "gt"、"lt"、"eq"、"ne" のいずれかの選択です。
sh 表記と人間が読める形式の「greater」、「less」、「equal」、「notequal」 (そうでない場合)
指定されている場合、デフォルトは EQUAL です)。
時間単位 「分」、「時間」、「日」から選択できます。 注:Monit は合計を保持します
過去 24 時間のアップロード/ダウンロード統計のみ。 したがって、時間単位の値は使用できません。
一日以上にわたる。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
例:
インターフェイス eth0 でネットワーク eth0 を確認してください
アップロード > 1000 パケット/秒の場合、アラート
過去 900000 時間のアップロード合計が XNUMX パケットを超える場合、アラートが発生します
NETWORK PING テスト
Monit は、ICMP エコー要求データグラム パケットをネットワークに送信することで、ネットワーク ping テストを実行できます。
ホストして応答を待ちます。 このテストは、check host ステートメント内でのみ使用できます。
ping テストを実行できるようにするには、Monit を root ユーザーとしても実行する必要があります (理由は、
ping テストでは、通常はスーパー ユーザーのみが許可される生のソケットを使用する必要があります)。
構文:
PING に失敗した場合[4|6]
[COUNT数]
【サイズ番号】
[タイムアウト数秒]
[アドレス文字列]
その後のアクション
DNS ホスト名が チェック host ステートメントとホスト名は次のように解決されます
複数のアドレス (IPv4 または IPv6) がある場合、Monit は最初に使用可能なアドレスに ping を実行し、
XNUMX つの接続が成功するか、接続がなくなるまで次のアドレスで続行します。
試してみる必要のあるアドレスが残っています。 次を使用して、Monit に IPv4 または IPv6 アドレスのみに ping を実行させることができます。
PING の代わりに PING4 または PING6 キーワードを使用します。
この COUNT パラメータは、ホストに連続して送信される ping リクエストの数を指定します。
最大3サイクルで。 デフォルト値は XNUMX です。
この サイズ パラメータでpingリクエストのデータサイズを指定します。 デフォルトは 64 バイトです。
期限内に返信が届かない場合 TIMEOUT 秒経過すると、Monit がエラーを報告します。 少なくとも XNUMX つの返信があれば
を受信した場合、ping テストは成功したとみなされます。
この ADDRESS パラメータには送信元 IP アドレスを指定します。
デフォルトでは、Monit は次まで送信します。 三 XNUMX サイクルで ping 要求パケットを送信することを防止します。
誤警報 (つまり、最大 66% のパケット損失が許容されます)。 設定できるのは、 COUNT のオプション
1 ~ 20 の値を指定して、送信するパケットの数を増減します。 100% ping の成功が必要な場合は、
カウントを 1 に設定します (つまり、リクエストが XNUMX つだけ送信され、パケットが失われた場合は、
エラーが報告されます)。
現在、多くの ISP が ping または ICMP パケットをフィルタリングし始めていることに注意してください。
ホストからの応答はありません。
ホスト エントリのチェックで ping テストが使用されている場合、このテストが最初に実行され、テストが
失敗した場合は、ホストへの接続がダウンしていると想定し、Monit は 続ける
後続のポート テストでも同様です。
例:
アドレス mmonit.com でホスト mmonit.com を確認してください
ping に失敗した場合はアラート # IPv4 または IPv6
アドレス 62.109.39.247 のホスト mmonit.com を確認してください
ping に失敗した場合はアラート # アドレスは IPv4 なので、IPv4 が優先されます
または、システムが IPv4 および IPv6 経由で明示的にアクセスできることをテストします。
アドレス mmonit.com でホスト mmonit.com を確認してください
ping4 が失敗した場合はアラート # IPv4 のみ
ping6 が失敗した場合はアラート # IPv6 のみ
またはすべてのパラメータを使用します。 128 バイトの ping を 10 回 mmonit.com に送信し、最大 XNUMX 回待機します。
返信までの秒数
アドレス mmonit.com でホスト mmonit.com を確認してください
ping カウント 5、サイズ 128、タイムアウト 10 秒に失敗した場合はアラートが発生します
インターフェイス TESTING
Monit は、ネットワーク ポートまたは Unix ソケット経由で接続テストを実行できます。 接続
test は、プロセスまたはホスト サービス タイプのコンテキスト内でのみ使用できます。
サービスが XNUMX つ以上のソケットをリッスンする場合、Monit は (TCP または
UDP) を実行し、サービスが接続を受け入れ、書き込みが可能であることを確認します。
そしてソケットから読み取ります。 接続が受け付けられない場合、または接続に問題がある場合
ソケット I/O、Monit は指定されたアクションを実行します。
TCP/UDP ポート テストの構文:
失敗した場合
[ホスト]
[ローカルアドレス]
[反転]
[タイプ]
[ssl [オプション {...} 付き]]
[証明書のチェックサム]
【証明書の有効日数】
[プロトコル | 、...]
[タイムアウト]
[リトライ]
その後のアクション
Unix ソケット テストの構文:
失敗した場合
[タイプ]
[プロトコル | 、...]
[タイムアウト]
[リトライ]
その後のアクション
例:
ポート 80 に障害が発生した場合はアラートが発生します
ポート 53 に障害が発生した場合は、udp プロトコル DNS と入力してからアラートを入力してください
unixsocket /var/run/sophie が失敗した場合はアラートを送信します
オプション:
ホスト: 主催者 hostname。 必要に応じて、接続先のホストを指定します。 ホストが指定されていない場合
このテストがプロセス エントリ内で使用される場合は、localhost が想定されます。 このテストが
リモート ホスト エントリ内で使用されると、そのエントリのリモート ホストとみなされます。
ポート: PORT 数。 接続するポート番号
ユニックスソケット: UNIXソケット path。 Unix ソケットへのパスを指定します (ローカル マシンのみ)。
ローカルアドレス: ADDRESS string。 使用する送信元 IP アドレス。
ipversion: IPV4 | IPV6 。 オプションで、Monit が使用する IP バージョンを指定します。
ポートに接続します。 使用しない場合、Monit は最初に使用可能なアドレスに接続しようとします。
(IPv4 または IPv6)。 複数のアドレスが利用可能で、XNUMX つのアドレスへの接続に失敗した場合、
Monit は、接続が成功するか、接続がなくなるまで、次のアドレスを試行します。
試せるアドレスがまだ残っています。
タイプ: タイプ [TCP | UDP]。 オプションで、Monit が使用するソケットのタイプを指定します。
ポートに接続します。 さまざまなソケット タイプは次のとおりです: TCP または UDP (TCP は通常のソケットです)
ストリームベースのソケット、UDP、データグラムソケット。 デフォルトのソケット タイプは TCP です。
SSL: [SSL | TLS] [と オプション {...}]。 SSL/TLS オプションを設定し、グローバル/デフォルト SSL を上書きする
オプション。 使用する SSL/TLS バージョン、証明書を検証するかどうか、信頼するかどうかを設定できます。
自己署名証明書を使用するか、クライアントの SSL クライアント証明書データベース ファイルを設定します。
証明書認証。
証明書 チェックサム: CERTIFICATE チェックサム [MD5|SHA1] ハッシュ。 SSLサーバーを確認する
チェックサムをチェックして証明書を確認します。 MD5 または SHA1 チェックサムのいずれかを使用できます (
タイプを指定しないでください。Monit はハッシュ長に基づいてダイジェストを決定します)。 あなたはできる
使用 opensslの コマンド ライン ツールを使用して証明書のチェックサム値を取得します。
その後、Monit の制御ファイルで使用できます。
openssl x509 -fingerprint -sha1 -in server.crt | openssl x1 -fingerprint -sha2 -in 頭-XNUMX | カット -fXNUMX -d'='
例:
失敗した場合
ポート443
プロトコル https
and certificate checksum = "1ED948A6F4258ACAB964227EF4EB19FCC453B0F8"
それから警告します
証明書 有効期限が切れる 日々: CERTIFICATE VALID for 数 DAYS。 次の場合にアラートを送信します。
証明書は指定された日数で期限切れになります。 このテストは、
SSL 証明書を更新する時期が来たときに通知します。
例:
失敗した場合
ポート443
プロトコル https
証明書の有効期限が 30 日を超える場合
それから警告します
プロトコル: プロトコル) 。 オプションで、Monit が発話するプロトコルを指定します。
接続が確立されます。 現時点では、モニトは話す方法を知っています。
APACHEのステータス
DNS
DWP
FTP
GPS
HTTP
HTTPS
IMAP
IMAPS
クラマフ
LDAP2
LDAP3
LMTP
メムキャッシュ
モンゴッド
MYSQL
NNTP
NTP3
PGSQL
POP
POPS
後置ポリシー
半径
RDATE
レディス
RSYNC
ふるい
SIP
SMTP
SMTPS
SSH
TNS
ウェブソケット
ターゲット サーバーのプロトコルがこのリストに見つからない場合は、単純に指定しないでください。
プロトコルとMonitはデフォルトの接続テストを使用します。
タイムアウト: [と] TIMEOUT 数 SECONDS。 オプションで接続と読み取りのタイムアウトを指定します
接続のために。 Monit がこの時間内にサーバーに接続できない場合、Monit は次のことを想定します。
接続が失敗したことを通知し、指定されたアクションを実行します。 デフォルトの接続タイムアウト
5秒です。
再試行: RETRY 数。 オプションで、期間内での連続再試行の回数を指定します。
接続が失敗した場合も同じテスト サイクルを実行します。 デフォルトは最初に失敗します
エラー。
アクション "ALERT"、"RESTART"、"START"、"STOP"、"EXEC"、または "UNMONITOR" のいずれかを選択します。
特定の test オプション
ジェネリック (送信/期待)
Monit がサーバーによって話されるプロトコルをサポートしていない場合は、独自のプロトコルを作成できます。
プロトコルテストを使用して 送信 と 期待する 文字列。 The SEND ステートメントは文字列を
サーバーポートと 期待する ステートメントは、サーバーから読み取られた文字列と
Expect ステートメントで指定された文字列。
構文:
[ 「文字列」]+
Monit は文字列をそのまま送信します。 しなければなりません CR と LF を忘れずに含めてください。
プロトコルが文字列の終了にそのような文字を期待している場合にサーバーに送信される文字列
(インターネット上で使用されるほとんどのテキストベースのプロトコルはこれに対応します)。
Monit はデフォルトでサーバーから最大 255 バイトを読み取り、次の場合にこの文字列を使用します。
EXPECT 文字列を比較します。 設定された制限を使用してデフォルト値をオーバーライドできます
声明。
必要に応じて、SEND 文字列で印刷不可能な文字を使用できます。 XNUMX 進数表記を使用して、
\0xHEXHEX は、\0x00 ~ \0xFF の範囲の任意の文字、つまり 0 進数で 255 ~ XNUMX を送信します。 ために
たとえば、Quake 3 サーバーをテストするには:
"\0xFF\0xFF\0xFF\0xFFgetstatus" を送信します
"sv_floodProtect|sv_maxPing" を期待してください
システムが POSIX 正規表現をサポートしている場合は、
EXPECT 文字列を参照してください。 正規表現(7) 使用できる正規表現の種類について詳しく知るには
期待文字列で使用します。
正規表現と文字列の比較はどちらもゼロで終了する文字列に対して動作するため、テストはできません。
EXPECT バッファ内の '\0' は、この文字がバッファの終わりを示すためです。 しかし、私たちは
期待バッファ内の '\0' をテストできる "\0" としてエスケープします。 つまり、「\」の後に続きます。
0 の ASCII 値。たとえば、次のように始まる期待文字列をテストする方法は次のとおりです。
ゼロの後に任意の数の文字が続きます。
"^[\\]0.*" を期待してください
簡単な SMTP プロトコルの例を次に示します。
失敗した場合
ポート25および
"^220.*" を期待してください
「HELO localhost.localdomain\r\n」を送信します
"^250.*" を期待してください
「終了\r\n」を送信します
それから警告します
SEND/EXPECT は、TCP ソケット、UNIX ソケット、UDP などのあらゆるソケット タイプで使用できます。
ソケット。
HTTP
構文:
プロト(COL)HTTP
[リクエスト「文字列」]
[STATUSオペレーター番号]
[CHECKSUM チェックサム]
[HTTP HEADERS ヘッダーのリスト]
[コンテンツ < "= | 「!= > 文字列]
要求 オプションでは、HTTP サーバー上のドキュメントを指定する URL 文字列を設定できます。 もし
request ステートメントが指定されていない場合は、デフォルトの「/」ページがリクエストされます。
例:
失敗した場合
ポート80
プロトコルhttp
リクエスト「/data/show?a=b&c=d」
その後、再起動します
ステータス このオプションを使用すると、HTTP によって返される HTTP ステータス コードを明示的にテストできます。
サーバ。 使用しない場合、返されるステータス コードが次の場合、HTTP プロトコル テストは失敗します。
400 以上。この動作は、 status
修飾子
たとえば、ページが行うことをテストするには 存在します (HTTP サーバーはこのメッセージで 404 を返す必要があります)
場合):
失敗した場合
ポート80
プロトコルhttp
リクエスト「/non/existent.php」
ステータス = 404
それから警告します
チェックサム HTTP サーバーから返されたドキュメントのチェックサムをテストできます。 MD5 または
SHA1ハッシュが使用可能です。 モニトは サーバーがチェックサムをテストする場合は、ドキュメントのチェックサムをテストします。
HTTPを設定しない コンテンツ長 ヘッダ。 HTTP サーバーは、次のときにこのヘッダーを設定する必要があります。
静的ドキュメント (つまり、ファイル) をサーバーに提供します。 原稿サイズに制限はありませんが、
Monit は計算のためにネットワーク経由でドキュメントをダウンロードするのに時間がかかることに注意してください。
チェックサム。
例:
失敗した場合
ポート80
プロトコルhttp
リクエスト「/page.html」
checksum 8f7f419955cefa0b33a2ba316cba3659
それから警告します
HTTP ヘッダー HTTP プロトコル テストで HTTP ヘッダーのリストを送信するために使用できます。 ために
インスタンス、ホストヘッダー。 ホストヘッダーが設定されていない場合、Monit はホスト名または
check host ステートメントで指定されたホストの IP アドレス。 ホストヘッダーの指定
名前ベースの仮想ホストに接続してテストする場合に便利です。 の構文
HTTPヘッダーの設定は
http ヘッダー [名前:値、名前:値、..]
ここで、各名前:値のペアは「,」で区切られます。 値に「:」を使用する必要がある場合
文字列。たとえば、ホスト ヘッダーのポート番号を設定するには、値を で囲む必要があります。
引用。 例えば、
http ヘッダー [ホスト: "mmonit.com:443"]
チェックホストコンテキストでは、このステートメントを使用すると次のようになります。
アドレス mmonit.com でホスト mmonit.com を確認してください
失敗した場合
ポート 80 プロトコル http
http ヘッダー付き [ホスト: mmonit.com、キャッシュ制御: no-cache、
クッキー: csrftoken=nj1bI3CnMCaiNv4beqo8ZaCfAQQvpgLH]
/monit/ をコンテンツ = "Monit [0-9.]+" でリクエストします
それから警告します
HTTP ヘッダーの設定は HTTP プロトコル テストに関連付けられているため、HTTP ヘッダーの設定よりも前に行う必要があります。
要求 上の例のように。
コンテンツ オプションは、サーバーから返されるデータで予期されるパターンを設定します。 もしも
パターンが一致しない場合、イベントがトリガーされます。
デフォルトでは、最大 1MB が検査されます。 設定された制限を使用して制限を増やすことができます
声明。
例:
失敗した場合
ポート80
プロトコルhttp
コンテンツ = "foobar [0-9.]+"
それから警告します
APACHEのステータス
この APACHEのステータス テストでは、ステータスを調べることでサーバーのパフォーマンスをチェックできます。
Apache の mod_status によって生成されたページ。デフォルトのアドレスにあると予想されます。
http://www.example.com/server-status.
構文:
プロトコル APCHE-STATUS [パス] ][ ]+
path Apache ステータスへのオプションのパス (デフォルトでは「/server-status」)
財産 は子ステータスの頭字語です。
(1) ロギング(loglimit)
(2) 接続を閉じる (closelimit)
(3) DNS ルックアップの実行 (dnslimit)
(4) クライアントとのキープアライブ中 (keepalivelimit)
(5) クライアントへの返信(replylimit)
(6) リクエストの受信(requestlimit)
(7) 初期化(startlimit)
(8) 受信接続の待機 (waitlimit)
(9) 正常に終了する (gracefullimit)
(10) クリーンアップ手順の実行 (cleanuplimit)
オペレータ 「<」、「=」、「>」のいずれかです。
数 パーセンタイル数値制限です。
これらの各制限は、総数に対する相対値と比較できます。
アクティブな Apache 子プロセス。
これらすべてのテストを XNUMX つの式に結合することも、特定のテストを選択することもできます。
制限のみ。 制限を組み合わせる場合は、OR キーワードを使用して制限を接続する必要があります。
例:
ポート 80 プロトコルが失敗した場合の Apache-status
ログリミット > 10% または
dnslimit > 50% または
待機制限 < 20%
それから警告します
SIP
SIP プロトコルは、Asterisk や Asterisk などの通信プラットフォーム サーバーによって使用されます。
フリースイッチ。
構文:
プロトコル SIP [TARGET valid@uri] [MAXFORWARD n]
TARGET 有効な SIP URI を追加することで、メッセージの代替受信者を指定できます。
このキーワードの後に。
マックスフォワード リクエストを転送できるプロキシまたはゲートウェイの数を制限します。
次のサーバー。 その値は 0 ~ 255 の範囲の整数で、デフォルトでは 70 に設定されます。
forward = 0 の場合、次のサーバーは 200 OK (テスト成功) を応答するか、483 Too Many を送信する可能性があります。
ホップ (テスト失敗)
例:
アドレス 127.0.0.1 のホスト openser_all を確認してください
失敗した場合
ポート 5060 タイプ udp プロトコル sip
ターゲット「localhost:5060」およびmaxforward 6を使用
それから警告します
半径
構文:
プロトコル半径 [秘密文字列]
SECRET 代替シークレットを指定できます。デフォルトは「testing123」です。
例:
pidfile /var/run/radiusd.pid でプロセス radiusd を確認してください
開始プログラム = "/etc/init.d/freeradius start"
停止プログラム = "/etc/init.d/freeradius stop"
失敗した場合
ホスト 127.0.0.1 ポート 1812 タイプ UDP プロトコル半径
秘密のピンポン
それから警告します
MYSQL
構文:
プロトコル MYSQL [ユーザー名文字列、パスワード文字列]
USERNAME MySQL ユーザー名 (最大 16 文字)。
PASSWORD MySQL パスワード (特殊文字も使用できますが、英数字以外の場合は
パスワードは引用符で囲む必要があります)。
資格情報は次のとおりです。 任意。 資格情報が設定されていない場合、Monit は以下を使用してテストを実行します。
匿名ログイン。 これにより、MySQL ログに認証エラーが記録される可能性があります。
MySQL ログ レベルが高くなります。
資格情報が設定されている場合、Monit はログインして MySQL ping を実行します。 モントには何も必要ありません
データベース権限。必要なのはデータベース ユーザーだけです。スタンドアロン ユーザーを作成することをお勧めします。
Monit テストの場合は次のようになります。
ユーザー「monit」@「host_from_that_monit_performs_testing」を作成し、「mysecretpassword」で識別されます。
フラットプリビーグス;
例:
pidfile /var/run/mysqld/mysqld.pid でプロセス mysql を確認してください
プログラムを開始 = "/sbin/スタート mysql」
プログラムを停止 = "/sbin/停止 mysql」
失敗した場合
ポート3306
プロトコル mysql ユーザー名 "foo" パスワード "bar"
それから警告します
または、unix-socket および OS X の起動/停止コマンドを使用
pidfile /var/run/mysqld/mysqld.pid でプロセス mysql を確認してください
プログラムの開始 = "/usr/local/mysql/support-files/mysql.server start"
プログラムの停止 = "/usr/local/mysql/support-files/mysql.server stop"
失敗した場合
unixsocket /tmp/mysql.sock
プロトコル mysql ユーザー名 "foo" パスワード "bar"
それから警告します
ウェブソケット
構文:
プロトコルウェブソケット
[リクエスト文字列]
[ホスト文字列]
[ORIGIN文字列]
[バージョンナンバー]
主催者 代替のホストヘッダーを指定することもできます
要求 代替リクエストを指定できます。デフォルトは「/」です。
原点 代替のオリジンを指定できます。デフォルトは「http://www.mmonit.com"
VERSION 代替バージョンを指定できます。デフォルトは「0」です。
例:
アドレス「echo.websocket.org」を持つホスト websocket.org を確認してください
失敗した場合
ポート80プロトコルWebソケット
ホスト「echo.websocket.org」
リクエスト "/"
元 'http://websocket.com'
バージョン13
それから警告します
CONFIGURATION 例
最も単純な形式は単なる check ステートメントです。 この例では、Web が
サーバーが実行中であり、そうでない場合はメッセージをログに記録します。
pidfile /var/run/nginx.pid でプロセス nginx をチェックします
サーバーが実行されていない場合に Monit にサーバーを起動させるには、start ステートメントを追加します。
pidfile /var/run/nginx.pid でプロセス nginx をチェックします
プログラムの開始 = "/etc/init.d/nginx start"
以下は、Apache Web サーバーを監視するためのより高度な例です。
HTTP および HTTPS のデフォルトのポート番号。 この例では、Monit は Apache が次の場合に再起動します。
ポート番号での接続を受け入れません。 Monit が再起動に使用する方法は次のとおりです。
まず停止プログラムを実行し、プロセスが停止するまで (最大 30 秒) 待機してから、
start-program を実行し、起動するまで (30 秒) 待ちます。 開始または停止の待ち時間の長さ
「タイムアウト」オプションを使用してオーバーライドできます。 Monit が停止または開始できなかった場合は、
サービスに失敗したアラート メッセージは、アラート メッセージを要求した場合に送信されます。
送信されました。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
startプログラム = "/etc/init.d/httpd start"、タイムアウト60秒
プログラムの停止 = "/etc/init.d/httpd stop"
ポート 80 で 2 サイクル失敗した場合は再起動します
ポート 443 で 2 サイクル失敗した場合は再起動します
この例では、指定されたユーザー (uid) としてプログラムを実行する方法を示します。
指定されたグループ (gid)。 多くのデーモン プログラムは、それ自体で uid と gid の切り替えを行うことができます。
しかし、そうでないプログラム (Java プログラムなど) の場合、monit は
特定のユーザーとしてプログラムを実行すると、非常に役立つ場合があります。 この例では、Tomcat Java を起動します。
サーブレットエンジンを標準搭載 誰も ユーザーとグループ。 Monit が実行できるのは
スーパーユーザーがMonitを実行している場合はプログラムのuidとgidを切り替え、それ以外の場合はMonitを切り替えます。
uid と gid を変更するリクエストは単純に無視されます。
pidfile /var/run/tomcat.pid で Tomcat プロセスを確認してください
プログラムの開始 = "/etc/init.d/tomcat start"
uid nobody および gid nobody として
プログラムの停止 = "/etc/init.d/tomcat stop"
# 代わりに ID 番号を使用して次のように記述することもできます。
uid 99 および gid 99 として
ポート 8080 に障害が発生した場合はアラートが発生します
この例では、接続テストに udp を使用して、ネームサーバーが実行されているかどうかを確認します。
pidfile /var/run/named.pid で指定されたプロセスを確認してください
開始プログラム = "/etc/init.d/named start"
stop プログラム = "/etc/init.d/named stop"
ポート 53 で障害が発生した場合は、タイプ udp プロトコル DNS を使用してから再起動します
次の例は、サービス「sophie」が応答しているかどうかを確認する方法を示しています。
Unix ドメイン ソケット上の接続:
pidfile /var/run/sophie.pid でプロセス sophie を確認してください
プログラムの開始 = "/etc/init.d/sophie start"
プログラムの停止 = "/etc/init.d/sophie stop"
失敗した場合は unix /var/run/sophie から再起動します
この例では、localhost 上で実行されている Apache Web サーバーが応答していることを確認します。
いくつかの IP ベースの仮想ホストまたは vhost であるため、ポートの前に host ステートメントは次のようになります。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
開始 "/etc/init.d/httpd 開始"
停止 "/etc/init.d/httpd 停止"
ホスト www.sol.no ポート 80 に障害が発生した場合はアラートが発生します
ホスト shop.sol.no ポート 443 が失敗した場合はアラートが発生します
ホストの chat.sol.no ポート 80 に障害が発生した場合はアラートが発生します
Monit が HTTP サーバーと通信していることを確認するには、プロトコル テストを追加できます。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
開始 "/etc/init.d/httpd 開始"
停止 "/etc/init.d/httpd 停止"
失敗した場合
ホスト www.sol.no ポート 80 プロトコル http
それから警告します
この例では、send/expect を使用して Web サーバーをチェックする別の方法を示します。
機構:
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
開始 "/etc/init.d/httpd 開始"
停止 "/etc/init.d/httpd 停止"
失敗した場合
ホスト www.sol.no ポート 80 および
「GET / HTTP/1.1\r\nホスト: www.sol.no\r\n\r\n」を送信します。
"HTTP/[0-9\.]{3} 200.*" を期待します
それから警告します
ここでは、リモート ホストに ping を実行して、起動しているかどうかを確認し、起動していない場合はアラートを送信します。
ホスト www.tildeslash.com をアドレス www.tildeslash.com で確認してください
ping に失敗した場合はアラートを送信する
次の例では、Monit にチェックサムを計算して検証するように依頼します。
開始および停止プログラムで使用される基礎となる Apache バイナリ。 チェックサムテストが必要な場合は、
失敗すると、侵害されたバイナリが再起動される可能性を防ぐために監視が無効になります。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
プログラムの開始 = "/etc/init.d/httpd start"
プログラムの停止 = "/etc/init.d/httpd stop"
ホスト www.tildeslash.com ポート 80 に障害が発生した場合は、再起動します
apache_bin に依存します
パス /usr/local/apache/bin/httpd のファイル apache_bin を確認してください
チェックサムに失敗した場合は監視を解除します
この例では、Monit にリモート サーバー上のドキュメントのチェックサムをテストするように依頼します。 もし
チェックサムが変更されたので、アラートを送信します。
アドレス mmonit.com でホスト mmonit.com を確認してください
失敗した場合
ポート 80 プロトコル http および
リクエスト「/monit/dist/monit-5.7.tar.gz」
with checksum f9d26b8393736b5dfad837bb13780786
それから警告します
ここでは、SIP プロトコルを使用した、いくつかの一般的な通信サーバーのテストをいくつか紹介します。
最初に FreeSWITCH サーバーをテストし、次に Asterisk サーバーをテストします。
プロセスフリースイッチを確認してください
pid ファイル /usr/local/freeswitch/log/freeswitch.pid を使用
開始プログラム = "/usr/local/freeswitch/bin/freeswitch -nc -hp"
停止プログラム = "/usr/local/freeswitch/bin/freeswitch -stop"
合計メモリが 1000.0 サイクルで 5 MB を超える場合、アラートが発生します
合計メモリが 1500.0 サイクルで 5 MB を超える場合、アラートが発生します
合計メモリが 2000.0 サイクルで 5 MB を超える場合、再起動します
CPU > 60% が 5 サイクル続く場合、アラート
失敗した場合
ポート 5060 タイプ UDP プロトコル SIP
ターゲット [メール保護] そしてマックスフォワード10
その後、再起動します
プロセスのアスタリスクを確認してください
pidfile /var/run/asterisk/asterisk.pid を使用
開始プログラム = "/usr/sbin/asterisk"
stopプログラム = "/usr/sbin/asterisk -r -x '今すぐシャットダウン'"
合計メモリが 1000.0 サイクルで 5 MB を超える場合、アラートが発生します
合計メモリが 1500.0 サイクルで 5 MB を超える場合、アラートが発生します
合計メモリが 2000.0 サイクルで 5 MB を超える場合、再起動します
CPU > 60% が 5 サイクル続く場合、アラート
失敗した場合
ポート 5060 タイプ UDP プロトコル SIP
とターゲット [メール保護] マックスフォワード10
その後、再起動します
Java ベースのアプリケーション サーバーなど、一部のサーバーはスロースターターです。 もし私達
ポーリング サイクルを短く (つまり 60 秒未満) に保ちたいが、一部のサービスがそのサイクルを取得できるようにしたい
始める時間、 あらゆる ステートメントは便利です:
2 サイクルごとに pidfile /etc/dynamo.pid でプロセス dynamo をチェックします
開始プログラム = "/etc/init.d/dynamo start"
プログラムの停止 = "/etc/init.d/dynamo stop"
ポート 8840 に障害が発生した場合はアラートが発生します
以下は、XNUMX つのデータベース エントリをグループ化して管理できるようにする例です。
一緒に、例えば; 「Monit -g データベースをすべて開始」。 mode ステートメントは、次の図にも示されています。
最初のエントリは、次の場合に Monit がこのサービスを (再) 開始しないようにする効果があります。
実行されていません:
pidfile /var/run/sybase.pid でプロセス sybase を確認してください
start = "/etc/init.d/sybase start"
stop = "/etc/init.d/sybase stop"
モードパッシブ
グループデータベース
pidfile /var/run/oracle.pid でプロセス oracle を確認してください
開始プログラム = "/etc/init.d/oracle start"
プログラムの停止 = "/etc/init.d/oracle stop"
失敗した場合
ポート 9001 プロトコル TNS
その後、再起動します
グループデータベース
このリソース チェックの例では、Apache の HTTP デーモンの CPU 使用率が低下した場合にアラートを送信します。
そしてその子プロセスは 60 サイクルにわたって XNUMX% を超えます。 CPU が停止した場合、Apache が再起動されます。
使用率が 80 サイクルで 100% を超えているか、メモリ使用量が XNUMX サイクルで XNUMXMb を超えているか、または
マシンの負荷平均は 10 サイクルで 8 を超えています。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
プログラムの開始 = "/etc/init.d/httpd start"
プログラムの停止 = "/etc/init.d/httpd stop"
CPU > 40% が 2 サイクル続く場合、アラート
60 サイクルで合計 CPU > 2% の場合、アラート
80 サイクルで合計 CPU > 5% の場合は再起動します
100 サイクルで mem > 5 MB の場合は停止します
if 負荷平均(5 分) 10.0 サイクルで 8 を超え、その後停止
この例では、exec を使用したタイムスタンプ ステートメントと、Apache を再起動する方法を示します。
設定ファイルが変更された場合。
ファイル httpd.conf をパス /etc/httpd/httpd.conf で確認してください
タイムスタンプが変更された場合
次に、「/etc/init.d/httpd グレースフル」を実行します。
この例では、拡張アラート ステートメントとファイル チェックの使用法を示します。
依存:
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
start = "/etc/init.d/httpd start"
stop = "/etc/init.d/httpd stop"
{存在しない、タイムアウト} に関するアラート admin@bar
メール形式 {
送信者: bofh@$HOST
件名: apache $EVENT - $ACTION
メッセージ: このイベントは $DATE に $HOST で発生しました。
あなたの忠実な従業員、
モニット
}
ホスト www.tildeslash.com ポート 80 に障害が発生した場合は、再起動します
httpd_bin に依存する
グループApache
パス /usr/local/apache/bin/httpd のファイル httpd_bin を確認してください
{チェックサム、タイムスタンプ、セキュリティ@バーを警告します。
許可、uid、gid}
メール形式 {件名: ああああ! $HOST上}
チェックサムに失敗した場合
and expect 8f7f419955cefa0b33a2ba316cba3659
それから監視を解除します
許可 755 に失敗した場合は監視を解除します
uid root が失敗した場合は監視を解除します
gid root が失敗した場合は監視を解除します
タイムスタンプが変更された場合はアラートを返します
グループApache
この例では、depend ステートメントの使用法を示します。 この場合、私たちがしたいのは、
OracleとApacheを起動します。 ただし、バックエンドとして oracle を使用するように Apache を設定しました。
oracle が再起動されると、Apache も再起動する必要があります。
pidfile /var/run/httpd.pid で Apache プロセスを確認してください
start = "/etc/init.d/httpd start"
stop = "/etc/init.d/httpd stop"
オラクルに依存する
pidfile /var/run/oracle.pid でプロセス oracle を確認してください
start = "/etc/init.d/oracle start"
stop = "/etc/init.d/oracle stop"
ポート 9001 で 5 サイクル失敗した場合は再起動します
次に、次の場合に再起動する必要がある 2 つのサービス、oracle-import と oracle-export があります。
oracle は再起動されますが、互いに独立しています。
pidfile /var/run/oracle.pid でプロセス oracle を確認してください
start = "/etc/init.d/oracle start"
stop = "/etc/init.d/oracle stop"
ポート 9001 で 3 サイクル失敗した場合は再起動します
oracle-import プロセスを確認してください
pidfile /var/run/oracle-import.pid を使用
start = "/etc/init.d/oracle-import start"
stop = "/etc/init.d/oracle-import stop"
オラクルに依存する
oracle-export プロセスを確認してください
pidfile /var/run/oracle-export.pid を使用
start = "/etc/init.d/oracle-export start"
stop = "/etc/init.d/oracle-export stop"
オラクルに依存する
onworks.net サービスを使用してオンラインで monit を使用する