VM 上のプロセス数をモニタリングする

このドキュメントでは、Google Cloud コンソールを使用して、指定した条件を満たす仮想マシン(VM)で実行されているプロセスの数をモニタリングするアラート ポリシーを作成する方法について説明します。このタイプのアラート ポリシーは、プロセスの状態アラート ポリシーとも呼ばれます。たとえば、root ユーザーが開始したプロセス数をカウントできます。呼び出しコマンドに特定の文字列を含むプロセスの数をカウントすることもできます。アラート ポリシーは、プロセス数がしきい値を上回るかまたは下回るときに通知できます。モニタリングできるプロセスについては、モニタリング対象のプロセスをご覧ください。

このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

準備

  1. Google Cloud コンソールを使用してアラート ポリシーを作成および変更するために必要な権限を取得するには、プロジェクトに対する Monitoring 編集者roles/monitoring.editor)の IAM ロールの付与を管理者に依頼してください。 ロールの付与の詳細については、アクセスの管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。

  2. アラート ポリシーの一般的なコンセプトに精通していることを確認してください。 このトピックについては、アラートの概要をご覧ください。

  3. アラートの受信に使用する通知チャンネルを構成します。冗長性を確保するために、複数のタイプの通知チャンネルを作成することもおすすめします。これらの手順については、通知チャンネルの作成と管理をご覧ください。

  4. モニタリングする VM に Ops エージェントがインストールされていることを確認します。詳細については、Google Cloud Observability エージェントをご覧ください。

アラート ポリシーを作成する

Cloud Monitoring API を使用して VM 上で実行されているプロセスの数をモニタリングするアラート ポリシーを作成するには、フィルタ式で時系列セレクタを指定する必要があります。このセレクタを指定する JSON ファイルの例については、プロセスの状態ポリシーをご覧ください。

VM 上で実行されているプロセスの数をモニタリングするアラート ポリシーを作成するには、次の操作を行います。

  1. Google Cloud コンソールで [アラート] ページに移動します。

    アラートに移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [ポリシーを作成] を選択します。
  3. [?] を選択して[指標の選択] ヘッダーをクリックして、ツールチップの [ダイレクト フィルタモード] を選択します。

  4. モニタリング フィルタを入力します。

    たとえば、名前に nginx が含まれている Compute Engine VM インスタンスで動作しているプロセスの数をカウントするには、次のように入力します。

    select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
    resource.type="gce_instance"
    

    詳しくは、次のリソースをご覧ください。

  5. アラート ポリシーを完了します。 条件のトリガー、通知、ドキュメント、ポリシー名を構成してから、[ポリシーの作成] をクリックする必要があります。

    詳細については、指標しきい値のアラート ポリシーの作成をご覧ください。

モニタリング対象のプロセス

プロセスの状態条件によって、システム内で実行中のすべてのプロセスをモニタリングできるわけではありません。この条件では、プロセスを呼び出したコマンドラインに適用される正規表現を使用して、モニタリングするプロセスを選択します。コマンドライン フィールドを使用できない場合、プロセスはモニタリングできません。

プロセスの状態条件でプロセスをモニタリングできるかどうかを判断する方法の 1 つは、アクティブなプロセスを確認することです。たとえば、Linux システムの場合は、ps コマンドを使用します。

    ps aux | grep nfs
    USER      PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      1598  0.0  0.0      0     0 ?        S<   Oct25   0:00 [nfsd4]
    root      1639  0.0  0.0      0     0 ?        S    Oct25   2:33 [nfsd]
    root      1640  0.0  0.0      0     0 ?        S    Oct25   2:36 [nfsd]

COMMAND エントリが角かっこで囲まれている場合(たとえば、[nfsd])、プロセスのコマンドライン情報は利用できません。この場合、Cloud Monitoring を使用してプロセスをモニタリングすることはできません。