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 では、ファイルの数、サイズ、および保存期間を、個別に、またはグループで監視することができます。 この機能は、バックアップ戦略の成功の監視など、さまざまな用途に使用できます。 X 日以上経過したバックアップはありますか?不審なほど大きな、または小さなバックアップはありますか? また、全社のファイルサーバーをチェックして、ユーザーがファイルを私的なストレージとして不正に使用していないかを確認したり、従来のスワップファイルやコンテナなどの揮発性ファイルを監視したりすることもできます。

基本的な手順は、Checkmk の標準に従っています。 エージェントにプラグイン/設定をインストールし、ファイルまたはファイルグループに関する必要な情報を監視対象に追加します。 そこで、対応するルールセットを使用して、どのプロパティがどのステータスにつながるかを決定します。

実際のフィルタリング、つまり、実際に監視の対象となるデータを決定するのは、エージェント内で行われます。 グロブパターンを使用して、たとえば、ディレクトリ全体からファイルを再帰的に含めたり、特定のファイルタイプのみ、あるいは個々のファイルのみを含めることができます。/myfiles/*.* などのグロブパターンを使用すると、特に古いファイルや大きなファイルのみに関心がある場合でも、非常に大きなファイルリストになってしまう可能性があります。 このため、現在 2 種類のエージェントと、それに関連する 2 種類の監視ルールセットがあります。 古いfileinfoはすでにエージェントにビルトインされており、グロブパターン/パスによってのみフィルタリングを行います。新しいmk_filestats は、プラグインとして別途インストールする必要があり、他のプロパティによってフィルタリングを行います。

mk_filestats と fileinfo には他にも違いがありますが、それについては以下で説明します。 ただし、最も重要な違いは、mk_filestats は Linux ホストのみを監視できるのに対し、fileinfo は Windows ホストも監視できることです。 Linux ホストの場合は、通常、より最新情報の多い mk_filestats を使用してください。

2. mk_filestats と fileinfo の違い

2つのバリアントのルールセットをわかりやすく並べて表示したい場合は、Setup メニューでsize age と入力してください。 個々のファイルおよびグループのルールは(ほぼ)同じ名前ですが、mk_filestatsのルールは明示的にそのように識別されます。 両方のバリアントのサービスルールは、強制サービスとしても利用できます

Setup menu with mk_filestats and fileinfo entries.
fileinfo ルールは、そのように明示的にマークされていません。

2 つのバリエーションの違いは、エージェントレベルとサービスレベルにあります。 まず、基本的な理論上の違いについて説明します。 具体的な詳細については、mk_filestats エージェントプラグインおよびエージェントの fileinfo の説明で後で説明します。

エージェントの場合、mk_filestats は、fileinfo にはない 2 つのオプションによって区別されます。 まず、mk_filestats には、前述の追加のフィルタリングオプション、つまりファイルサイズ、ファイル数、ファイル名(正規表現のフォーム)によるフィルタリングオプションがあります。 たとえば、/myfiles/* というグロブパターンを使用すると、1 KB 以上で、ファイル名に「backup 」を含むファイルのみを監視対象とすることができます。 一方、mk_filestats では、ファイルグループはプラグインの設定で直接指定します。複数のフィルタを作成し、それぞれをエージェント出力のセクションとして保存します。これらのセクションは、後でセクションヘッダーを介してルールで指定することができます。

サービス監視ルールに関しては、mk_filestats と fileinfo のアプローチは細部が異なります。 どちらも評価を特定の期間に制限できますが、1 日あたりの時間枠をルールで直接明示的に指定できるのは fileinfo だけです。 また、fileinfo だけが、ファイルグループにいわゆる「conjunctions 」を設定できます。 これにより、各ステータスに一連の条件が関連付けられます。例えば、次のような条件を設定できます。 「グループ内の最も古いファイルが正確に 5 時間経過し最小のファイルが正確に 8 メガバイトになった時点でステータスはCRIT になります。 一方、ファイルグループの場合、mk_filestats には外れ値を定義するオプションがあります。 たとえば、ファイルグループのサイズが 2 ギガバイトを超えたら、そのファイルグループはCRIT に移行するとします。 ただし、特定の 1 つのファイル(一時ファイルなど)だけが 1 ギガバイトを超えた場合は、CRIT に移行しないという例外を定義して、ケースバイケースでグループルールを上書きすることができます。

違いの概要:

機能 mk_filestats fileinfo

サポートされているオペレーティングシステム

Linux

Linux および Windows

エージェント

エージェントプラグイン

エージェントに含まれています

フィルター

グロブパターンおよびプロパティ用のエージェントに直接組み込まれたフィルタ

グロブパターン専用のエージェント内のフィルタ

ファイルリスト

無駄のないファイルリストを提供します

詳細なファイルリストを配信する場合があります

ファイルのグループ化

エージェントで直接グループ化します

別の監視ルールセットでグループ化します

ファイルを表示します

サービスの詳細にファイルを表示するかどうかを選択可能

サービスの詳細にファイルを常に表示

ファイルの評価

ファイル内の外れ値を考慮できます

ファイル間の関係を考慮できます

次の章では、2つの機能を実践的な例で個別に説明します。その違いと特徴がより明確になるはずです。 mk_filestats 自体も、filestats.py --help 呼び出し経由で詳細な情報を提供します。

3. mk_filestats によるファイルの監視 (Linux)

以下の例は、ファイルのグループに対する手順を示しています。 個々のファイルに対する手順も同様ですが、オプションの数が少なくなります。 特定の数のバックアップファイル (mybackup_01.zip など) のグループを監視し、これらのファイルが最小サイズを下回らないようにしたい場合、次のように操作します。

3.1. エージェントプラグインのルールの設定

エージェントベーカリーによる設定

商業版では、まず エージェントプラグインのルールSetup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files - mk_filestats (Linux) を呼び出します。Section name で任意の名前を割り当てます。この名前は、後でエージェントの出力に独立したセクションとして表示されます。

Globbing pattern for input files で、監視するファイルを指定します。 グロブパターン、つまり、最終的にはプレースホルダーを含むファイルパス指定を使用できます。 ここでは、指定したフォルダ内のすべてのファイルを含む絶対パス指定を使用します。

さらにフィルタリングを行うには、次の 2 つのオプションを使用します。Filter files by matching regular expression は、指定したテンプレートに一致するファイル(この例では、名前にmy が含まれるファイル)を含めます。Filter files by not matching regular expression は、ファイルを除外します(この例では、tmp で終わるファイル)。

Form to configure the agent plug-in mk_filestats.
グロブと正規表現の違いに注意してください。

これで設定は完了です。エージェントベーカリーを使用して、設定を含むプラグインを配布することができます。

手動設定

Checkmk Rawでは、テキストファイルを使用して通常どおりプラグインを設定します。 サイトユーザーとして、share/check_mk/agents/cfg_examples/filestats.cfg ファイルに設定例があります。 上記の仕様に基づく設定は、次のようにになります。

/etc/check_mk/filestats.cfg
[myfiles]
input_patterns: /media/evo/myfiles/
filter_regex: .*my.*
filter_regex_inverse: tmp$

これで設定は完了です。エージェントプラグインを手動でインストールできます。

エージェント出力のデータ

設定の結果は、エージェント出力に生データとしてフォームで表示されます。

mysite-myhost-agent.txt
<<<filestats:sep(0)>>>
[[[file_stats myfiles]]]
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_01.zip', 'stat_status': 'ok', 'size': 13146562, 'age': 339080, 'mtime': 1633966263}
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_02.zip', 'stat_status': 'ok', 'size': 13145766, 'age': 325141, 'mtime': 1633980202}
{'type': 'file', 'path': '/media/evo/myfiles/mybackup_03.zip', 'stat_status': 'ok', 'size': 13151050, 'age': 325352, 'mtime': 1633979991}
...

3.2. サービスルールの設定

これで、監視はエージェントを介してファイルデータにアクセスできるようになりました。 評価するには、ルールSetup > Services > Service monitoring rules > Size, age and count of file groups (mk_filestats) を呼び出します。 この例では、指定したファイル数を超えた場合、または達しなかった場合に警告を表示したいとします。 これは、上限と下限を設定するオプションMinimal file count およびMaximal file count を使用して行います。他のすべての最小値/最大値オプションも同様に機能します。

Form with upper and lower limits for file monitoring.
パート1/3:OK はここでのファイル数は7または8のみです

しかし、たとえば、CRIT 状態になるファイルはどれでしょうか? この場合は、Show files in service details オプションが役立ちます。 このオプションを有効にすると、影響を受けるすべてのファイルがサービス詳細ビューにリストされます。

Specifying to show individual files in service details.
パート 2/3: このオプションは透明性を提供しますが、非常に長いリストが生成される場合もあります

これで、ファイルの数は正しいものの、たとえばサイズに関して外れ値がある場合があります。 このような例外については、Additional rules for outliers オプションを使用できます。 これにより、たとえば、5 メガバイト未満のファイルには「WARN 」ステータスが設定され、1 メガバイト未満のファイルには「CRIT 」ステータスが設定されます。 これは、たとえば、バックアップに欠陥がある可能性について通知する場合などに役立ちます。

Specifying outliers in the monitored files.
パート 3/3: ファイルは 5 MB 以上である必要があります。それ以下の場合は警告が表示されます

Conditions ボックスで、このルールをエージェントプラグインで設定したファイルグループmyfiles にのみ適用するように指定できます。 これを行うには、エージェントプラグインで「Section name 」に指定した名前を「File Group Name 」として入力してください。

Filter on files in the myfiles group.
File Group Name プラグインのルールでは、Section Name に対応します。

これでサービスルールも完了です。 オプションで、評価を 1つの期間に制限することもできます。 完了したら、新しいサービスを影響を受けるホストに追加し、通常どおり変更をアクティブにしてください。

3.3. 監視における mk_filestats

その後、監視でリストおよび詳細で評価を確認できます。 サービスのパラメータに加えて、WARN またはCRIT 状態の原因となっているファイルも確認できるようになります。

Service details in monitoring for the WARN status.
ステータスに関与しているファイルは、監視の mk_filestats で表示されます。

ただし、[サービス詳細でファイルを表示] オプションについては注意が必要です。 ステータス変更の原因となったファイルが多数ある場合、それらがすべてリストに表示されるため、リストが長くなり、パフォーマンスやビューの問題が発生する可能性があります。

Service details in monitoring for CRIT status.
不正確な正規表現を使用すると、膨大なリストが生成される可能性があります。

4. fileinfo によるファイルの監視 (Linux、Windows)

fileinfo によるファイルの監視は、mk_filestats と基本的に同じですので、ここでは手順を少し省略しますが、これもファイルグループに対して行います。

4.1. エージェントのルールを設定する

エージェントベーカリーの設定

Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Count, size and age of files (Linux, Windows) の商業版では、エージェントの設定はより簡単です。 ここでは、ファイルパスをグロブテンプレート形式で定義するだけです。 これにより、非常に長いファイルリストの転送の問題が発生し、監視の速度が著しく低下する可能性があります。さらに、デフォルトでは、検出されたファイルごとに個別のサービスが作成されます。これを回避するには、グループを形成する必要があります。

Rule for fileinfo with filtering on the Windows path.
このディレクトリ内のすべてのファイルを監視する

すべてのサブディレクトリを含める: Windows ホストでのみ、いわゆるグロブスター(2 つの連続したアスタリスク)を使用して、すべてのサブディレクトリ内のすべてのファイルを含めることができます。 ただし、このオプションは慎重に使用してください。C:\** を不注意に使用すると、サービスの数が 6 桁になったり、ディスカバリー中にタイムアウトが発生したりします。

Rule for fileinfo with filtering on the Windows path and all subdirectories.
このディレクトリおよびそのすべてのサブディレクトリ内のすべてのファイルを監視します。

追加の日付: Linux ホストでは、日付でフィルタリングすることができます。 グロブパターンでは、$DATE 変数を使用して、現在の日付を含むファイルのみを含めることができます。 この変数の形式は、Linux プログラムdate と同じです。

Rule for fileinfo with filtering by date variable.
Linux では、名前にタイムスタンプを含むファイルは、明示的に指定しなければ参照できません。

/backups/mybackup_*_$DATE:%Y%m%d$ のような指定は、2021年10月22日現在、mybackup_01_20211022mybackup_foobar_20211022 のようなファイルを検出します:

File in the monitoring, filtered by the date in the file name.
バックアップファイルの場合、タイムスタンプと毎日のチェックが有用です

詳細については、ルールのページおよび関連するインラインヘルプを直接ご確認ください。

これで設定は完了です。エージェントベーカリーから、設定を含むプラグインをデプロイできます。

手動設定

Checkmk Rawでファイル情報を使用する場合は、オペレーティングシステムに応じて、ファイルを使用して設定を行う必要があります。

Linux:設定ファイルはfileinfo.cfg です。

/etc/check_mk/fileinfo.cfg
C:\myfiles\*
/myfiles/*
/media/evo/test_$DATE:%Y%m%d$

Windows:設定ファイルはcheck_mk.user.yml です:

C:\ProgramData\checkmk\agent\check_mk.user.yml
fileinfo:
  enabled: yes
  path:
  - c:\myfiles\*
  - c:\myotherfiles\**

Windows ホストのみ、いわゆるグロブスター (2 つの連続したアスタリスク) を使用して、すべてのサブディレクトリ内のすべてのファイルを含めることができます。 ただし、このオプションは慎重に使用してください。C:\** を不注意に使用すると、サービスの数が 6 桁になるか、ディスカバリー中にタイムアウトが発生します。

これで設定は完了です。LinuxまたはWindows にプラグインを手動でインストールできます。

エージェント出力のデータ

設定の結果は、エージェント出力のセクションヘッダーfileinfo:

mysite-mywindowshost-agent_output.txt
<<<fileinfo:sep(124)>>>
1743070736
C:\myfiles\myfile01|30219|1724242936
C:\myfiles\myfile02|30219|1724242936
C:\myfiles\myfile03|1337|1741368907
C:\myotherfiles\myotherfile01|1900|1743070353
C:\myotherfiles\myotherfile02|728|1743070370
C:\myotherfiles\myotherfile03|1023120|1743070389
C:\myotherfiles\mysubdirectory\myfileinasubdirectory|14114|1743070321

これは、上記の Windows ホストの設定ファイルに対応する出力の例です。

4.2. サービスルールの設定

2 番目のステップでは、サービスルールSetup > Services > Service monitoring rules > Size, age and count of file groups を再度設定します。 minimum-maximum オプションは mk_filestats のオプションと同じですが、サービス詳細に影響を受けるファイル名を表示するオプションと外れ値に関するオプションはここにはありません。 このオプションには 2 つの追加オプションがあります。 まず、Add time range — この期間外では、サービスの状態は常にOK になります。

CRIT 一方、強力なLevel conjunctions 機能も利用できます。 この機能を使用すると、OKWARNCRITUNKNOWN の 4 つの状態それぞれについて、一連の条件を設定できます。 たとえば、次のような条件を設定することができます。

  • ファイルが正確に7つある場合

  • 最も小さなファイルが10メガバイト未満の場合、

  • 最も古いファイルが5日未満の場合

Specifying conditions for files monitored with fileinfo.
Level conjunctions また、明示的な例外の定義も許可します。

また、Conditions ボックスでFile Group Name を指定して、このルールを目的のmyfiles グループに制限することができます。

mk_filestats とは対照的に、グループ形成は、サービスルールSetup > Services > Service monitoring rules > File grouping patterns による監視でのみ行われます。Group name にグループmyfiles も入力することで、割り当てを確実にします。

デフォルトでは、含めるファイルと除外するファイルのパターンは、正規表現ではなく、グロブで指定します。 ただし、チルダ (~) を前に付けると、ここで正規表現も使用できます。

Filtering of files in the group myfiles.
入力フィールドは必ずしも同じように動作するとは限りません。詳細については、インラインヘルプをご覧ください。

追加の日付:ここでも、$DATE 変数を使用することができます。あるいは、$YESTERDAY を使用してフィルタリングすることもできます。これは、$DATE から 1 日を単純に差し引くだけです。 いつものように、詳細についてはインラインヘルプをご覧ください。

4.3. 監視における fileinfo

監視では、fileinfo グループのビューは mk_filestats グループとそれほど違いはありません。 ただし、fileinfo は、ステータス変更の原因であるかどうかに関係なく、影響を受けるすべてのファイルを常に明示的にリストします。 この例では、ステータスに影響を与えない 0 メガバイトの 2 つのファイルyourfile と、11 メガバイト近くのyourfile_2.exe が表示されています。後者は、CRIT ステータスをトリガーしています。

A fileinfo group in monitoring.
yourfile ステータス変更の原因ではないにもかかわらず、fileinfo によって表示されます。

fileinfo によって監視に配信され、グループに割り当てられていないファイルは、すべて個別のサービスとして残ります。

Single files as separate services in monitoring.
fileinfo を使用すると、不正確なグロブパターンによって膨大なリストが生成される可能性があります。

このリストは、fileinfo でフィルタを正確に指定することがなぜ重要かをよく示しています。 たとえば、ここでC:\ を制限なしで指定した場合、監視対象には数十万もの個別のサービスが含まれてしまいます。

5. トラブルシューティング

5.1. 監視対象ファイルがない、またはファイルが多すぎる

mk_filestats または fileinfo を使用しているかどうかに関係なく、監視対象にファイルがない、またはファイルが多すぎる場合は、多くの場合、フィルタの設定が間違っています。 この原因としては、主に 2 つあります。グロブパターンと正規表現の競合、または設定が間違っている場合です。 たとえば、アスタリスクは 2 つのバリエーションで異なる動作をします。 グロブでは、* は任意の数の任意の文字のプレースホルダーとして機能し、正規表現では、その前にある文字が 1 回以上出現することを表します。正規表現で任意の文字を任意の回数一致させるには、それに応じて.* を使用する必要があります。

6. ファイルおよびディレクトリ

いつものように、Checkmk サーバーのすべてのファイルパスは、サイトディレクトリを基準としています (例:/omd/sites/mysite)。

6.1. mk_filestats

場所 ファイルパス 内容

Checkmk サーバー

~/share/check_mk/agents/cfg_examples/filestats.cfg

サンプル設定ファイル

Checkmk-サーバー

~/share/check_mk/agents/plugins/mk_filestats.py

説明付き Python 3 エージェントプラグイン

Checkmk-サーバー

~/share/check_mk/agents/plugins/mk_filestats_2.py

説明付き Python-2 エージェントプラグイン

Linux ホスト

/etc/check_mk/filestats.cfg

設定ファイル - エージェントベーカリーまたは手動で作成

6.2. fileinfo

場所 ファイルパス 内容

Checkmkサーバー

~/share/check_mk/agents/cfg_examples/fileinfo.cfg

サンプル設定ファイル

Linux ホスト

/etc/check_mk/fileinfo.cfg

設定ファイル - エージェントベーカリーまたは手動で作成

Windows ホスト

C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml

構成ファイル - エージェントベーカリーによって作成されます

Windows ホスト

C:\ProgramData\checkmk\agent\check_mk.user.yml

設定ファイル - 手動で作成されます

このページでは