Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. 概要

Checkmk では、ルールを使用してホストおよびサービスのパラメータを設定します。 この機能により、Checkmk は複雑な環境において非常に効果的であり 、小規模なインストールにも多くの利点があります。 ルールベースの設定の原理を明確にするために、従来の方法と比較します。

1.1. 従来の方法

例として、ファイルシステムの監視におけるWARN およびCRIT の閾値の設定を見てみましょう。 データベース指向の設定では、ファイルシステムごとに 1 行ずつテーブルに入力します。

ホスト ファイルシステム 警告 重大

myserver001

/var

90

95

myserver001

/sapdata

90

95

myserver001

/var/log

90

95

myserver002

/var

85

90

myserver002

/opt

85

90

myserver002

/sapdata

85

95

myserver002

/var/trans

100

100

これは比較的簡単ですが、この例では表が短いからです。 実際には、ファイルシステムは数百、数千にも及ぶことがよくあります。 コピー&ペーストやバルクアクションなどのツールを使用すると作業を簡略化できますが、基本的な問題、つまり標準的なポリシーをどのように決定し、実装するかという課題は残ります。 一般的なルールは何でしょうか? 将来のホストの閾値はどのようにあらかじめ設定すべきでしょうか?

1.2. ルールベースの方が良い!

しかし、ルールベースの構成はポリシーで構成されています。 上記の表のロジックを 4 つのルールに置き換えます。myserver001 がテストシステムであり 、いずれの場合も最初の関連ルールがすべてのファイルシステムに適用されると仮定すると 、結果は上記の表と同じ閾値になります。

  1. マウントポイントが/var/trans のファイルシステムには、100/100 % の閾値が設定されます。

  2. myserver002 上の/sapdata ファイルシステムの閾値は 85/95 % です。

  3. テストシステムのファイルシステムには 90/95 % の閾値があります。

  4. すべての (指定されていない) ファイルシステムの閾値は 85/90 % です。

確かに、2 台のホストだけではあまり効果はありませんが 、ホストがさらに数台増えるだけで、すぐに大きな違いが生まれます。 ルールベースの構成の利点は明らかです。

  • ポリシーが明確に認識でき、確実に実装できます。

  • 何千ものデータセットをハンドルする必要なく、ポリシーをいつでも変更できます。

  • 例外は依然として可能ですが、ルールのフォームで文書化されます。

  • 新しいホストの組み込みも簡単で、ミスも発生しにくいです。

つまり、作業量が減り、品質が向上します。 そのため、Checkmk には、閾値、監視設定、責任、通知、エージェント設定など、ホストやサービスをカスタマイズするための豊富なルールが用意されています。

1.3. ルールセットの種類

セットアップ内で、Checkmk はルールをルールセットに整理します。 各ルールセットは、ホストまたはサービスに関する特定のパラメータを定義する役割があります。 Checkmk には 700 以上のルールセットが含まれています。 以下に、その例をいくつか挙げます。

  • Host check command —ホストが「UP 」であるかどうかを判断する方法を定義します。

  • Alternative display name for services — サービスの表示用の代替名を定義します。

  • JVM memory levels — Java 仮想マシン (VM) のメモリ使用状況を監視するための閾値やその他のパラメータを設定します。

各ルールセットは、ホストまたはサービスのいずれかを担当し、両方を担当することはありません。 ホストとサービスの両方にパラメータを定義できる場合、適用可能なルールが 2 つあります。たとえば、Normal check interval for host checksNormal check interval for services checks です。

厳密に言えば、いくつかのルールセットは実際にはパラメータを定義するのではなく、サービスを作成します。 その例としては、Setup > Services > HTTP, TCP, Email, …​ にありますアクティブチェックのルールがあります。 これを使用すると、たとえば、特定のホストに対して HTTP チェックを設定することができます。 これらのルールは、ホストにそのようなチェックが存在する場合、そのホストのプロパティとみなされるため、ホストルールに分類されます。

さらに、サービスディスカバリーを制御するルールセットもあります。 これらを使用すると、たとえば、Windows service discovery で、システム上で検出された Windows サービスについて、自動チェックを作成すべきかどうかを定義することができます。 これらはホストルールでもあります。 これらのルールセットの大部分は、特定のチェックプラグインのパラメータを決定します。

ルールセットの大部分は、特定のチェックプラグインのパラメータを決定します。 その例として、Network interfaces and switch ports があります。 これらのルールの設定は、対応するプラグインに非常に具体的に合わせています。 このようなルールセットは、基本的に、このプラグインに基づくサービスでのみ使用されます。 どのルールセットがどのサービスに対応しているかわからない場合は 、サービスから直接、関連するルールに移動して確認することをお勧めします。 その方法については、後で説明します。

1.4. ホストタグ

これまで触れていなかった点があります。 上記の例には、すべてのテストシステムに対するルールがあります。 ホストがテストシステムであることを実際に定義しているのはどこでしょうか?

Checkmk では、テストシステムのようなものは ホストタグとして知られています。 使用可能なタグは、Setup > Hosts > Tags で確認できます。 一部のタグは、Criticality グループで定義されているTest system など、あらかじめ定義されています。

ホストにタグを適用するには、ホストのプロパティで明示的に設定するか、フォルダ階層で継承します。 その方法については、ホストに関する記事で説明しています。 独自のタグを作成する方法、および定義済みのタグについては、ホストタグに関する記事で説明しています。

2. 正しいルールセットの決定

2.1. ホストルールセット

1 つ以上のホストのパラメータを定義する新しいルールを作成する場合は、 いくつかの方法があります。 直接的な方法は、[setup ] メニューの対応するグループ、 この場合は [Setup > Hosts > Host monitoring rules] を使用することです。

Setup menu with focus on the 'Host monitoring rules'.

次のビューには、ホストの監視に関連するすべてのルールセットが表示されます。 これらのルールセットの名前の後に表示されている数字は、すでに定義されているルールの数を示しています。

The 'Host monitoring rules' in the Setup menu.

ただし、検索フィールドを使用すると、より早く目的の結果に到達できます。 もちろん、そのためには、ルールセットの名称を大まかに把握している必要があります。 ここでは、host checks を検索した結果を例として示します。

Extract of the result of a search for host checks.

別の方法としては、セットアップの既存のホストのプロパティにある「Hosts > Effective parameters 」メニュー項目 またはフォルダのホストリストにあるアイコンを使用します。

Host list in the Setup menu, with a highlighting of the button for effective parameters.

ここでは、そのホストに影響するすべてのルールセットだけでなく そのホストに対して現在有効なパラメータも確認できます。Host check command の例では、表示されているホストにはルールが適用されていません。 そのため、商業版のデフォルト値であるSmart PING (only with Checkmk Micro Core) に設定されています。 Checkmk Raw では、デフォルト値はPING (active check with ICMP echo request) です。

Display for the 'Host check command' with the default value.

Host check command をクリックすると、ルールセット全体が表示されます。

ルールがすでに存在する場合、Default value の代わりに、このパラメータを定義するルールの番号が表示されます。

Display for the 'Host check command' with rule.

これをクリックすると、そのルールに直接移動します。

2.2. サービスルールセット

サービス用のルールセットへのパスも同様です。 一般的なアクセス方法は、Setup メニューから この場合はSetup > Services > Service monitoring rulesまたは、より適切な検索フィールドから行います。

Setup menu with focus on the 'Service monitoring rules' and the search box.

ルールセットの名前についてまだあまり経験がない場合は、サービス経由のパスの方が簡単です。 ホストと同様に、サービスのすべてのパラメータが表示されるページもあり 、該当するルールセットに直接アクセスすることができます。 このパラメータページには、セットアップのホストのサービスリストにある アイコンからアクセスできます。 アイコンをクリックすると、このサービスのチェックプラグインのパラメータを定義するルールセットに直接移動します。

Services list in the Setup with the icons to call the parameters.

ちなみに、パラメータページのアイコンは、各サービスのアクションメニューの監視にもあります。

Services list in the monitoring with opened action menu of a service.

2.3. 強制サービス

Setup メニューには、Enforced Services という項目もあります。 その名前が示すとおり、このルールセットを使用すると、ホストにサービスを強制的に作成することができます。 詳細については、サービスに関する記事をご覧ください。Simple checks for BIOS/Hardware errorsなど、ごく一部のルールセットは、強制サービスにのみ表示されます。 これらは、サービスディスカバリーによって検出されたサービスではなく、手動で作成されたサービスです。

2.4. 使用中のルールセット

前述のルールセットのリスト(Host monitoring rules またはService monitoring rules)では、メニューバーのRelated > Used rulesets を使用して、少なくとも 1 つのルールを定義したルールセットのみを表示することができます。 これは、既存のルールを調整する場合に、作業を開始するのに便利な方法です。 ちなみに、一部のルールは、Checkmk サイトを作成する際にデフォルトで生成され、サンプル設定の一部となっています。 これらのルールもここに表示されます。

2.5. 無効なルール

監視は複雑な作業です。 ルールが 1 つのホストまたはサービスにも一致しない場合があります。これは、ミスによるもの、または一致するホストおよびサービスが消滅したためです。 このような無効なルールは、メニューバーの「Related > Ineffective rulesets 」から前述のルールセットのリストで確認できます。

2.6. 廃止されたルールセット

Checkmk は常に開発が進められています。 時折、標準化が行われ、一部のルールセットが他のルールセットに置き換えられる場合があります。 そのようなルールセットを使用している場合は、ルール検索を行うのが最も簡単な方法です。Setup > General > Rule search からルール検索を開きます。 次に、メニューバーの「Rules > Refine search 」をクリックし 、「Deprecated」のオプションとして「Search for deprecated rulesets 」を選択し 、「Used 」のオプションとして「Search for rule sets that have rules configured 」を選択します。 さらに「Search 」をクリックすると、目的の概要が表示されます。

Options to search for deprecated rule sets.

3. ルールの作成と編集

次の図は、4 つのルールが設定された「Filesystems (used space and growth) 」ルールセットを示しています。

rules filesystem

新しいルールは、[Create rule in folder ] ボタン、または既存のルールを [Clone] で複製して作成します。 複製すると、そのルールの同一コピーが作成され、[Edit] で編集できます。Create rule in folder ボタンを使用して作成した新しいルールは、常にルールリストの最後に表示されます。 一方、複製したルールは、元のルールの下にコピーとして表示されます。

ルールのリストの順番は、 ボタンで変更できます。 リストの上位にあるルールは、下位にあるルールよりも優先されるため、順番は重要です。

ルールは、ホストを管理するのと同じフォルダに保存されます。 ルールの権限は、このフォルダまたはそのサブフォルダ内のホストに制限されます。 ルールが競合した場合、フォルダ構造の下位にあるルールが優先されます。 これにより、たとえば、特定の認可されたフォルダにのみアクセス権を持つユーザーは 、システムの他の部分に影響を与えることなく、自分のホストのルールを作成することができます。 ルールのプロパティでは、フォルダを変更してルールを「移動」することができます。

3.1. 「交通信号」モードの分析モード

Setup でホストまたはサービスのルールセットにアクセスすると、Checkmk はこのルールセットを分析モードで表示します。 このモードに移動するには、ホストまたはサービスリストのSetup にある アクションメニューの アイコンをクリックします。 次のEffective parameters of ページには、ホスト/サービスに適用されるルールのリストが表示されます。 分析モードに移動するには、少なくとも 1 つのルールが存在するルールセット、つまりDefault value に設定されていないセットの名前をクリックします。

The analysis mode with 'traffic lights'.

このモードには 2 つの機能があります。 まず、ルールを設定するための 2 つ目のボタン — 「Add rule for current host 」または「 」 — が表示されます。Add rule for current host and service.

これにより、現在のホストまたはサービスがすでに選択されている新しいルールを作成することができます。 この方法では、例外ルールを非常に簡単かつ直接作成することができます。 次に、各行に「信号機」アイコンが表示され、その色によって このルールが現在のホスト、またはサービスに影響を与えるかどうか、あるいはその影響の程度が示されます。 以下の条件があります。

このルールは、現在のホストまたはサービスには影響を与えません。

このルールは一致し、1 つ以上のパラメータを定義しています。

ルールが一致しています。ただし、階層の上位にある別のルールが優先されるため、このルールは有効ではありません。

このルールは一致しています。階層の上位にある別のルールが実際には優先されますが、すべてのパラメータを定義していないため、この下位のルールによって少なくとも 1 つのパラメータが定義されています。

最後の条件(ルールが部分一致)は、ルールセット で、個々のチェックボックスを選択して 1 つのルールで複数のパラメータを定義できる場合にのみ発生します。 理論的には、別のルールのすべてのパラメータもここで個別に設定できます。 これについては後で詳しく説明します。

4. ルール特性

各ルールは 3 つのブロックで構成されています。 最初のブロックには、ルールの名前など、ルールに関する一般的な情報が含まれます。 2 番目のブロックでは、ルールが実行すべき内容、つまり実行すべきアクションを定義します。 3 番目のブロックには、ルールを適用する対象、つまり対象ホストまたはサービスに関する情報が含まれます。

4.1. ルールプロパティ

最初のブロック「Rule Properties 」の内容はすべてオプションであり、主にドキュメント用です:

General rule options.
  • Description は、ルールセット内のすべてのルールのテーブルに表示されます。

  • Comment フィールドは、より長い説明に使用できます。 これは、ルールの編集モードでのみ表示されます。 アイコンを使用して、日付スタンプとログイン名をテキストに挿入できます。

  • Documentation URL は、別のシステム (CMDB など) で管理している内部ドキュメントへのリンク用です。 ルールテーブルには、クリック可能な アイコンとして表示されます。

  • Do not apply this rule チェックボックスを使用すると、このルールを一時的に使用不能にすることができます。 その場合、テーブルには のマークが付き、ルールは有効ではなくなります。

4.2. 定義されたパラメーター

2 番目のセクションはルールごとに異なりますが、常に実行すべき内容を指定します。 次の図は、よく使用されるタイプのルール (DB2 Tablespaces) を示しています。 チェックボックスを使用して、ルールで定義する個々のパラメータを指定できます。 前述のように、Checkmk は、個々のパラメータを定義するルールを個別に決定します。 したがって、この図のルールは 1 つの値のみを定義し、その他の設定は変更しません。

Different rule values with a setting of one value.

このルールおよび他のルールの値は、時間/カレンダーベースで制御することもできます。 たとえば、営業時間と週末でテーブルスペースの使用状況の閾値を設定することができます。

まず、[Enable timespecific parameters ] ボタンをクリックし、次に [Add new element] をクリックすると、時間依存のオプションが表示されます。

View of rule values when time-dependent parameters are selected.

次に、[Match only during time period ] リストで期間を選択し、この期間を適用するパラメータを選択します。

一部のルールセットでは、パラメータを設定せず、対象となるホストと対象とならないホストを決定するだけです。 その例として、ルールセット「Hosts to be monitored 」があります。このパラメータの範囲は、次のとおりです。

Select positive or negative match.

2 つの利用可能な値のいずれかを選択して、影響を受けるホストの処理方法を決定します。Positive match (Add matching hosts to the set) を選択すると、影響を受けるホストが監視対象のホストのセットに追加されます。Negative match (Exclude matching hosts from the set) を選択すると、影響を受けるホストが監視対象から削除されます。Positive match またはNegative match は、現在のルールの内容を指します。 これは、ホストを選択するための追加のフィルタ条件ではありません。 影響を受けるホストのセットは、以下のConditions を使用してのみフィルタリングします。

4.3. 条件

前のセクションでは、ルールが影響するすべてのホストまたはサービスをどのように処理するかを定義しました。 3 番目のセクション「Conditions 」では、ルールによって処理されるホストまたはサービス、つまりルールの効果を定義します。 ルールが有効になるには、さまざまな種類の条件がすべて満たされている必要があります。 したがって、条件は論理的に AND で連結されています。

The conditions for a rule.

条件タイプ

ここでは、通常の条件と定義済み条件を使用することができます。 これらは、Setup > General > Predefined conditions で管理されます。 ここでは、繰り返し使用するルールの一致に固定の名前を付け、それ以降、ルール内でその名前を参照するだけです。 後でこれらの条件の内容を一元的に変更することもでき、すべてのルールが自動的に調整されます。 次の例では、定義済み条件「No VM 」が選択されています。

Selecting a predefined condition for a rule.

フォルダ

Folder (このフォルダ)条件では、このフォルダまたはそのサブフォルダ内のホストにのみルールが適用されるように定義します。 設定がMain (すべてのホスト)の場合、この条件はすべてのホストに適用されます。 前述のように、フォルダはルールの順序に影響します。 下位のフォルダ内のルールは、上位のフォルダ内のルールよりも常に優先されます。

ホストタグ

Host tags ホストタグの有無によって、ルールをホストに制限します。 ここでも、AND リンクが常に使用されます。 ルール内の他のホストタグ条件は、そのルールが影響するホストの数を減らします。

タグの 2 つの可能な値(たとえば、CriticalityProductive systemBusiness critical) の両方)にルールを適用したい場合は、1 つのルールでは不可能です。 各バリエーションについて、ルールのコピーが必要です。 場合によっては、否定も役立ちます。 タグが存在しないことを条件として定義することもできます(たとえば、Test system 以外)。 いわゆる補助タグも別の可能性があります。

一部のユーザーは実際に多くのホストタグを使用するため、このダイアログでは、デフォルトではすべてのホストタググループが表示されないように設計されています。 ルールに必要なものを具体的に選択する必要があります。 その操作は次のとおりです。

  1. 選択ボックスでホストタググループを選択します。

  2. Add tag conditionをクリックします — これにより、このグループへのエントリが追加されます。

  3. is 」または「is not 」を選択します。

  4. 比較値として必要なタグを選択します。

Specifying multiple host tags in one condition.

ラベル

ラベルをルールの条件として使用することもできます。 ルールの条件の説明をお読みください。

明示的なホスト

このタイプの条件は、例外ルール用です。 ここでは、1 つ以上のホスト名をリストできます。 ルールは、これらのホストにのみ適用されます。Explicit hosts ボックスをチェックしても、ホストを入力しない場合、ルールはまったく機能しませんのでご注意ください。

Negate オプションを使用して、逆の例外を定義することができます。 これにより、明示的に指定したホストをルールから除外することができます。 このルールは、ここで指定したホストを除くすべてのホストに適用されます。

Condition for explicitly named hosts.

重要:ここに入力したすべてのホスト名は、完全に一致するかどうかチェックされます。 Checkmk は、ホスト名の大文字と小文字を区別します。

ホスト名の前にチルダ (~) を付けることで、この動作を正規表現に変更することができます。 この場合、Setup では通常どおり、

  • 一致はホスト名の先頭に対して適用されます。

  • 一致は、大文字と小文字は区別されません。

正規表現のピリオドとアスタリスク (.*) は、ピリオドの後に任意の文字列を許可します。 次の例は、名前に文字列my (またはMyMYmY など)を含むすべてのホストが一致する条件を示しています。

Condition for host selection with wildcards.

明示的なサービス

サービスに適用されるルールには、サービスの名前、またはチェックパラメータを設定するルールの場合はチェック項目の名前との一致を定義する、最後のタイプの条件があります。 一致の対象は、キャプションで確認できます。 この例では、テーブルスペースの名前 (Instance) です。 正規表現による一致は、基本的にここで説明します。

Condition for service selection with wildcards.

ここでは、基本的に正規表現による一致が適用されます。.*temp という文字列は、temp を含むすべてのテーブルスペース一致します。これは、一致は常に名前の先頭に対して適用されるためです。transfer$ の末尾のドル記号は、末尾を表し、完全一致を強制します。 したがって、transfer2 という名前のテーブルスペースは一致しません

忘れないでください:Explicit services に関するルールでは、サービス名と一致する必要があります (例:Tablespace transfer)。 チェックパラメータのルールでは、項目と一致する必要があります (例:transfer)。 項目は、実際にはサービス名の可変部分であり、どのテーブルスペースに適用されるかを決定します。

ちなみに、項目がないサービスもあります。 その例がCPU load です。 これは各ホストに 1 つしか存在しませんので、項目は必要ありません。 したがって、このようなチェックタイプのルールには条件も不要です。

5. ルール分析

ここまで、ルールの作成方法について説明しました。 しかし、ルールを作成するだけで十分なわけではありません。 この記事の冒頭にある「ルールベースの方が優れている!」セクションの例で示したように、1 つのルールだけでは望ましい結果を得ることができません。 そのためには、論理的に順序付けられた、より複雑なルールシステムが必要となります。 そのため、複数のルールがどのように相互作用するかを理解することも重要になります。

5.1. ルール分析の種類

ルールの概念の紹介で、最初に適用されるルールが常に最終的な結果を決定することを説明しました。 しかし、これは完全な真実ではありません。 評価には、合計 3 種類のタイプがあります。

評価 アクション

最初のルール
(The first matching rule defines the parameter.)

最初に一致したルールが値を決定します。 それ以降のルールは評価されません。 これは、単純なパラメータを定義するルールの通常のケースです。

パラメータごとの最初のルール
(Each parameter is defined by the first matching rule where that parameter is set.)

各パラメータは、そのパラメータが定義されている最初のルール (チェックボックスがオン) によって定義されます。 これは、チェックボックスで有効になっているサブパラメータを持つすべてのルールにおける通常のケースです。

すべてのルール
(All matching rules will add to the resulting list.)

一致するすべてのルールが、結果のリストにエレメントを追加します。 このタイプは、たとえば、ホスト、サービス、および連絡先グループにホストとサービスを一致させる場合に使用されます。

ルールの評価方法に関する情報は、メニューバーの直下にある各ルールセットに表示されます。

For each rule set the applicable rule evaluation is shown directly below the menu bar.

5.2. 実際のルール評価の説明

では、複数のホストに適用する複数のルールを作成した場合、具体的にどのように評価されるのでしょうか? これを説明するために、簡単な例を見てみましょう。

3 つのホストがあり、それぞれ(および将来追加されるすべてのホスト)に対して、Periodic notifications during host problems ルールを使用して、周期的に繰り返される異なる通知を設定したいとします。

  1. ルール A: ホスト 1 10 分ごとに

  2. ルール B:ホスト 2 20 分ごとに

  3. ルール C:すべてのホスト 30 分ごと(ホスト 3 および将来追加されるすべてのホストを対象とする一般的なルール)。

この設定を有効にすると、Checkmk はルールチェーンを上から下へ順番に実行します。 その結果、次のように評価されます。

  • ルール A はホスト 1 に適用されます。 ホスト 1 に対する通知は 10 分ごとに実行されます。 これで、ホスト 1 の処理は完了です。

  • ルール A はホスト 2 には適用されません。 ルール B に進みます。 これはホスト 2 に適用されるため、ホスト 2 には 20 分ごとに通知が行われます。 これでホスト 2 の処理は完了です。

  • ルール A はホスト 3 には適用されません。ルール B も同様です。 しかし、ルール C が適合し、適用されます。ホスト 3 への通知は 30 分間隔で行われます。 これで、ホスト 3 の処理も完了です。

ここで注意してください。 このルールセットには「最初に一致したルールがパラメータを定義する」が適用されるため、ルールチェーンの処理は、最初の一致後に常に終了します。 したがって、結果にはルールの順序が重要です。 これは、ルールの順序を変更してルール B と C を入れ替えた場合に明らかになります。

  1. ルール A:ホスト 1 を 10 分ごとに

  2. ルール C:30 分ごとにすべてのホスト

  3. ルール B:ホスト 2 を 20 分ごとに

ここで、個々のホストについてルールチェーンを最初から最後まで再度実行すると、結果も変わります。 ルール C は、ホスト 3 だけでなくホスト 2 にも適用されるため、両方のホストに対して 30 分ごとに通知が行われます。 これで、両方のホストの処理が完了します。 ルール B はホスト 2 に関連し、このホストのために記述されていましたが、評価および適用はされなくなりました。 分析モードでは、このプロセスは次のようになります。

Analysis mode for Host-2 after swapping rules B and C.
ホスト 2 については、黄色の球が付いた最後のルールも一致しますが、適用はされません。

この記事で説明したさまざまな設定を、正しい処理順序に注意しながら組み合わせることで、ホスト複合体全体に対する複雑なルールチェーンを構築することができます。

このページでは