このドキュメントでは、 Google Cloud コンソールを使用して、指定した条件を満たす仮想マシン(VM)で実行されているプロセス数をモニタリングするアラート ポリシーの作成方法について説明します。このタイプのアラート ポリシーは、プロセスの状態のアラート ポリシーとも呼ばれます。たとえば、root ユーザーによって開始されたプロセスの数をカウントできます。呼び出しコマンドに特定の文字列が含まれているプロセスの数をカウントすることもできます。アラート ポリシーは、プロセス数がしきい値を超えるか下回ったときに通知できます。モニタリング可能なプロセスについては、モニタリングされるプロセスをご覧ください。
このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが含まれるときに通知するログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。
始める前に
-
Google Cloud コンソールを使用してアラート ポリシーを作成および変更するために必要な権限を取得するには、プロジェクトに対する Monitoring 編集者(
roles/monitoring.editor
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
アラート ポリシーの一般的なコンセプトに精通している必要があります。これらのトピックについては、アラートの概要をご覧ください。
アラートの受信に使用する通知チャンネルを構成します。冗長性を確保するために、複数のタイプの通知チャンネルを作成することをおすすめします。これらの手順については、通知チャンネルの作成と管理をご覧ください。
モニタリングする VM に Ops エージェントがインストールされていることを確認します。詳細については、Google Cloud Observability エージェントをご覧ください。
アラート ポリシーを作成する
Cloud Monitoring API を使用して、VM で実行されているプロセス数をモニタリングするアラート ポリシーを作成するには、フィルタ式で時系列セレクタを指定する必要があります。このセレクタを指定する JSON ファイルの例については、プロセスの状態のポリシーをご覧ください。
VM 上で実行されているプロセスの数をモニタリングするアラート ポリシーを作成するには、次の操作を行います。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
- [ポリシーを作成] を選択します。
[?] を選択します。[指標の選択] ヘッダーをクリックして、ツールチップの [ダイレクト フィルタモード] を選択します。
モニタリング フィルタを入力します。
たとえば、名前に
nginx
が含まれている Compute Engine VM インスタンスで動作しているプロセスの数をカウントするには、次のように入力します。select_process_count("monitoring.regex.full_match(\".*nginx.*\")") resource.type="gce_instance"
詳しくは、次のリソースをご覧ください。
- 仮想マシン上で動作しているプロセスのカウントに使用するフィルタについては、プロセスの状態のフィルタをご覧ください。
- 一般的な構文については、Monitoring フィルタをご覧ください。
アラート ポリシーを完成させます。条件のトリガー、通知、ドキュメント、ポリシー名を構成し、[ポリシーを作成] をクリックします。
詳細については、指標しきい値のアラート ポリシーを作成するをご覧ください。
モニタリング対象のプロセス
プロセスの状態条件では、システム内で実行中のすべてのプロセスをモニタリングできるわけではありません。この条件では、プロセスを呼び出したコマンドラインに適用される正規表現を使用して、モニタリングするプロセスを選択します。コマンドライン フィールドを使用できない場合、プロセスをモニタリングできません。
プロセスの状態条件でプロセスをモニタリングできるかどうかを判断する方法の一つは、アクティブなプロセスを確認することです。たとえば、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 を使用してプロセスをモニタリングすることはできません。