【Checkmk KB】Windowsサーバー ユーザーごとのリソース監視

本記事では、Windowsサーバーのプロセス・リソース監視に役立つCheckmkの活用方法を紹介しています。特定ユーザーのCPU使用率が50%を超えた場合に通知を発報したい!といった細かい設定手順なども載せていますのでぜひご確認、ご活用ください。

文:ジュピターテクノロジー とぐち

はじめに

以前Citrixをご利用中のお客様より「Windowsサーバーのプロセスを監視し、サーバーごと、また特定ユーザーごとのリソース使用率に閾値を設定してアラートを発報できないか?」というお問い合わせがあり、Checkmkで調査・検証を行いました。その際に設定したルールをソリューションとして本記事にまとめています。

CheckmkではWindowsエージェントさえインストールさえしておけば、監視対象のWindowsサーバーで使用中のプロセス全体数の監視だけでなく、プロセスごと、またログインしているユーザーごとのCPU使用率なども細かく分けて監視・通知することができます。

ルール:「プロセスディスカバリー」について

ルールとは

Checkmk は、ルールを使ってホストやサービスのパラメーターを設定します。監視の閾値、警告や通知、エージェント設定など、ホストやサービスをカスタマイズするための豊富なルールを多数用意しています。

今回はエージェントに適用するルールを設定するため、エージェントがインストールされていることが必須となります。エージェント登録をしていないという場合はユーザーガイドより設定手順を確認し、正しく動作するところまで確認をお願いします。

このルールでできること

「プロセスディスカバリー」の設定をすることにより、起動プロセス名、プロセス数、ユーザー名、CPU使用率、経過時間、メモリ、仮想メモリなどをグラフ・一覧で確認することができます。

Windows/Linuxのプロセス名がわかるものであれば、オプションを組み合わせることで様々なパターンの監視を行うことができます。全て「プロセスディスカバリー」の設定画面からカスタム可能で、パターンとしては大きく分けて以下の4種類となります。

  • サーバーの全てのプロセス、ユーザー使用状況一覧
  • サーバーの特定プロセスごとの使用状況(条件:プロセス名)
  • サーバーの特定ユーザーごとの使用状況(条件:ユーザー名)
  • サーバーの特定プロセスの特定ユーザーごとの使用状況(条件:プロセス名+ユーザー名)

今回は、問合せが多くありました2つの例を使ってルールの使用方法を説明していきます。「特定のユーザーのCPU使用率が50%を超えた場合にCRITICAL(重大なエラー)として通知を発報したい」また「特定のプロセスを誰がどれくらい使用しているか確認したい」というシナリオで解説します。

設定手順と監視結果

それでは今回は2つのシナリオの手順と結果を解説していきます。使用するルールは上記でも説明したとおり、「プロセスディスカバリー」です。セットアップメニューの検索ボックスで検索すると対象のルールをすぐに見つけることができます。

図1 ルール検索

シナリオ1:特定ユーザーのCPU使用率監視+閾値で通知発報

特定ユーザーの使用しているプロセスを全て監視しておき、CPU稼働率が50%を超えたら通知を発報する場合の設定方法です。

設定内容は、以下図2の通り入力してください。

図2 シナリオ1用設定内容
プロセス名:    USER_toguchi(任意)
・オペレーションシステムユーザーの名前: 有効
                     「ユーザーに一致する正規表現」を選択しユーザー名入力
・検出されたサービスのデフォルトパラメータ:総CPU使用率のレベル 有効
                       警告40% クリティカル50%に設定
・長い出力でプロセスごとの詳細を有効にする: 有効、テキスト出力を選択
   →サービスの詳細情報ページで、ユーザーごとにどのプロセスを使用中か一覧表示できます。

今回はユーザーで条件を指定しているため、「プロセスマッチング」には入力する必要はありません。

ルール画面下部の条件欄には、プロセス監視を行いたいホストに絞る条件を入力してください。何も設定しない場合、全てのホストに適用されてしまうため注意してください。

全て入力が完了したら、保存→適用し、再度サービス取得を行います。

セットアップ>ホスト から新しいサービスを追加する対象のホストを探し、サービス取得のボタンをクリックします。新しいルールを追加した際は、必ずサービスを再取得し適用してください。

図3 サービス取得画面

新しいサービスが作成されるので、監視対象に追加してください。右上に変更数が黄色く表示されたらクリックし適用作業まで完了すれば設定は完了です。

モニターメニューのすべてのホストから対象のホストを選択し、追加したサービスの詳細画面を確認してみましょう。

図4 サービス詳細画面

概要欄には、プロセス数、物理/仮想メモリの使用率、CPU使用率、プロセスハンドル数、最小/最大許容経過日数が表示され、その下の欄には、現在使用中のプロセスとユーザー名が一覧となって表示されています。サービスの監視間隔はデフォルトの1分です。

先ほどルール設定時、閾値を警告40%・クリティカル50%にしているため、現在のCPU値1.78%ではサービス状態は「OK:正常」となっています。それではこの監視対象に負荷をかけ、CPU使用率が閾値を超えた場合のサービス状態を確認します。

図5 サービス詳細画面

図5のように、CPU(赤枠箇所参照)が50%を超えているため、「CRIT:クリティカル」に状態が変化し赤くなりました。

次に通知設定を確認します。

セットアップ>イベント>通知設定で通知を設定できます。通知を設定していれば、ホストやサービスの状態変化に応じて通知がキックされ、メールやSNMPトラップなどで通知を発報することができます。通知の詳細な設定方法、条件指定方法はユーザーガイド「14 通知」をご確認ください。

今回は簡単に、サービスの状態変化時にメールが発報されるようにマッチサービスイベントタイプを設定しました。

図6 通知設定画面

通知条件に一致するイベントが検知されると、セットアップ>イベント>通知設定の分析一覧に並びますので、状態変更のタイミングで通知が発報されていることが確認できます。

図7 通知画面

※図6の画面と細かい数値がずれていますが、サービス取得と通知発報のタイミングにより表示上のずれが発生することがあります。

以上、「特定ユーザーのCPU使用率監視+閾値で通知発報」の設定方法解説でした。

シナリオ2:特定プロセスを監視して使用ユーザーの状況を確認する

次にご紹介するのは、同時に複数ユーザーがWindowsサーバーを使用する場合に便利な監視活用方法です。動きが遅い・重い場合に、誰かが複数のプロセスを立ち上げている、またリソースを多く使用していることを確認できないか、といったお問い合わせがありました。

シナリオ1では特定のユーザーを監視していましたが、2では特定のプロセスを監視する方法をご紹介します。よく使われるプロセスを監視対象にしておくことで、動作遅延が発生した場合などの原因究明に役立てることができることができます。以下、Excelを監視する際の設定方法です。

特定プロセスを監視する場合、設定内容は、以下の通り入力してください。

図8
プロセス名:    EXCEL(任意)
・プロセスマッチング: 有効 「コマンドラインに一致する正規表現」を選択
             コマンドライン:「EXCEL*.」(正規表現可)
・オペレーティングシステムユーザーの名前: 有効 「すべてのユーザーに一致」
・検出されたサービスのデフォルトパラメータ:閾値を設定したい任意の項目があれば有効
・長い出力でプロセスごとの詳細を有効にする: 有効、テキスト出力を選択
   →サービスの詳細情報ページで、ユーザーごとにどのプロセスを使用中か一覧表示できます。

今回も、ルール画面下部の条件欄にホスト条件を入力し、保存→変更の適用を行います。

セットアップ>ホスト から新しいサービスを追加する対象のホストを探し、サービス取得のボタンをクリックします。新しいルールを追加した際は、必ずサービスを再取得して適用してください。

図9 サービス取得画面

図9のようにProcess EXCELというサービスが表示されるため、監視対象に追加してください。こちらも、追加後は適用作業を行います。以上で設定は完了です。

モニターメニューのすべてのホストから対象のホストを選択し、追加したサービスの詳細画面(図10)を確認します。

図10 サービス詳細画面

概要欄には、プロセス数、物理/仮想メモリの使用率、CPU使用率、プロセスハンドル数、最小/最大許容経過日数が表示され、その下の図10赤枠箇所には、現在使用中のプロセスとユーザー名が一覧となって表示されています。シナリオ1では「toguchi」というユーザーのみ取得していましたが、今回はEXCEL.exeを立ち上げている全てのユーザー分のプロセスを取得しています。こちらもサービスの監視間隔はデフォルトの1分です。

今回のようにEXCELのプロセスを監視しておくことで、同プロセスを誰が使用しているのか、1人が複数のプロセスを起動していないかなど、動作遅延が発生した場合にCheckmkの画面上から原因を確認することが可能となります。

以上、「特定プロセスを監視して使用ユーザーの状況を確認する」場合の設定方法解説でした。

おわりに

今回は、Windowsサーバーを対象に、プロセス監視の活用方法を2種類確認しました。「プロセスディスカバリー」のルールは、組合せ次第で色々なパターンでのプロセス監視が可能になります。

本記事で説明した手順と同様の手順で、Linuxのプロセス監視ももちろん可能です。様々なオプションと組み合わせ、ご希望にあったプロセス監視の仕組み作りにお役立てください!

お問い合わせ

Checkmkにご興味のある方は、以下リンクよりいつでも弊社までお問い合わせください。

30日無償でご利用いただける評価版も以下のダウンロードリンクにご用意しております。評価ガイドをもとに簡単に検証ができますので、ぜひお試しください!

こんな記事も読まれています

最新記事

おすすめ記事

  1. 産業スパイを発見し、防ぐ方法とは

  2. Flexible NetFlowとは?を5分で理解する

  3. WinSyslog 使い方ガイド#2 受信時刻とデバイスタイムスタンプ両方を出力する

製品カテゴリー

JTC IT用語集
TOP