CloudWatchでプロセス監視する手順をLinuxとWindowsともに詳しく紹介

Amazon Web Services(AWS)の監視サービスAmazon CloudWatchを活用したプロセス監視の設定手順を詳しく解説します。また、無料かつ5分でプロセス監視を始める方法も紹介していますので、参考にしてみてください。

目次

CloudWatchでプロセス監視する手順

今回、CloudWatchを使ったプロセス監視はprocstatプラグインを利用して行います。監視対象とするプロセスはログ収集で利用されることが多いtd-agent(fluentd)とします。Linux編Windows編、それぞれ設定し、各環境差異も見ていきましょう。最後に通知設定の手順も紹介します。

  • 監視対象サーバー:Windows Server 2019、CentOS8
  • 監視対象プロセス:td-agent(fluentd)

Linux編(CentOS8)

1. IAMロールの適用

監視対象となるサーバーからCloudWatchへのアクセス権限を付与するため、まずは必要となるIAMロールを作成します。AWSコンソールのロール作成画面にて今回はAWSで既に用意されている「CloudWatchAgentServerPolicy」「AmazonSSMManagedInstanceCore」の2つのポリシーが適用されたIAMロールを作成します。

作成後、AWSコンソールにてEC2に遷移し、監視対象サーバーに作成したIAMロールを適用します。

2. エージェントのインストール

次に最新版のSSMエージェントをインストールします。インストールは各種ディストリビューションに応じたパッケージが提供されているので、環境に合わせてインストールを行ってください。インストール後、自動で起動していることを確認します。

次に、インストールしたSSMを活用してCloudWatchエージェントをインストールします。AWSコンソールのSSM ManagerのRun Commandより以下のように設定し、CloudWatchエージェントのリモートインストールを実行します。

Run Commandの履歴で正常に完了していることを確認します。

3. エージェントの設定変更

監視対象サーバーにログインし、amazon-cloudwatch-agent-config-wizardコマンドを利用して、CloudWatchエージェントの設定を変更します。設定項目が多いですが、対話式で設定内容を聞かれるので、環境に合わせて設定してください。

4. プロセス監視の設定追加

SSM Managerのパラメータストアより、今回のプロセス監視用の設定ファイルを追加します。Linuxでは監視対象のpidファイルを指定することとします。作成したパラメータストアの名称はこの後利用するので、控えておいてください。

Amazon CloudWatchのプロセス監視の設定追加画面1

*今回利用したLinux用の設定内容:

{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "pid_file": "/var/run/td-agent/td-agent.pid",
                    "measurement": [
                        "pid_count"
                    ],
                    "metrics_collection_interval": 60
                }
            ]
        }
    }
}

次に、SSM ManagerのRun Commandを使って、先ほど設定したパラメータストアを監視対象サーバーに反映させます。以下のようにOptional Configuration Locationに先ほど作成したパラメータストアの名称を入力します。

Amazon CloudWatchのプロセス監視の設定追加画面2

Run Commandが正常に実行された後、しばらくするとCloudWatchのコンソールに登録したカスタムメトリクスの値が収集されていることを確認します。

Amazon CloudWatchのプロセス監視の設定追加画面3

5. プロセス監視の閾値設定

次に、CloudWatch アラーム設定を追加します。アラームの対象となるメトリクスに前の手順で登録したプロセス数を利用して、下記のように閾値を設定してみます。

Amazon CloudWatchのプロセス監視の閾値設定画面1

次の画面では通知先を設定する画面になりますが、まだ通知先の登録が完了していないので下記のような状態にして設定を一旦完了させます。

Amazon CloudWatchのプロセス監視の閾値設定画面2

無料かつ5分でプロセス監視を始める方法はこちら

Windows編(Windows Server 2019)

1. IAMロールの適用

Linuxと同様にCloudWatchへのアクセス権限を付与するため、IAMロールを作成する必要があります。IAMロールの権限は同一であるため、Linuxの手順を参考に作成を行い、AWSコンソール画面より監視対象サーバーにIAMロールを適用します。

2. エージェントのインストール

Windows Serverの場合、AWSにて提供されている2016年11月以降のAMIであればデフォルトでSSMエージェントとCloudWatchエージェントがインストール&起動した状態となっています。

3. エージェントの設定変更

Windows ServerでもLinuxと同様にamazon-cloudwatch-agent-config-wizardコマンドが用意されているので、Powershell等でコマンドを実行して環境に合わせた設定を行ってください。

4. プロセス監視の設定追加

原則、Linuxと同様ですがパラメータストアの中身をWindows用に少し変更します。その他手順はLinuxと同様なのでここでは割愛します。

*今回利用したWindows用の設定内容:

{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "exe": "td-agent",
                    "measurement": [
                        "pid_count"
                    ],
                    "metrics_collection_interval": 60
                }
            ]
        }
    }
}

5. プロセス監視の閾値設定

Linuxと同様の手順となりますので、割愛します。

無料かつ5分でプロセス監視を始める方法はこちら

通知設定

1. アラート通知の設定

アラート時のメール通知用のAmazon SNSで新規にトピックを作成します。

トピック作成後、作成したトピックにてサブスクリプションを作成します。プロトコルをEメールに変更し、アラート通知先のメールアドレスを入力します。サブスクリプションを複数登録することで宛先を増やすことが可能です。

作成後、入力したメールアドレスに対してAWSから以下のような確認用メールが通知されるので、Confirm subscriptionから有効化します。これで準備が整いました。

2. 通知条件の設定

あとは閾値設定で作成したCloudWatchのアラームを設定変更して、アクションの通知先として先ほど作成したSNSトピックを設定します。これでAWSのサービスのみでプロセス監視を行う設定が完了しました。

無料かつ5分でプロセス監視を始める方法

CloudWatchによる監視にトライして、わずらわしさや難しさを感じた方もいるかもしれません。そんな方はここで紹介する方法も試してみてください。

数あるサーバー監視ツールの中でも、監視を開始するまでの工数が最もかからないもののひとつがSaaS型ツールの「Site24x7(サイトトゥエンティーフォーセブン)」です。無料で始められる上、2,000円/月からスモールスタートできるのも好評で、今ユーザーが増えています。

ここからは、そのSite24x7でプロセスを監視する手順を紹介します。

フリープランにサインアップ

まず、フリープランのサインアップフォーム(https://www.site24x7.jp/signup.html?pack=1&l=ja)からSite24x7にサインアップします。サインアップフォームは非常にシンプルで、メールアドレスとパスワードを入力するのみです。

サインアップするのに1分もかかりません。フリープランを試すのにクレジットカードの入力が不要なので、サブスクリプションタイプにありがちな課金停止漏れが発生しない安心設計となっています。

ここからは、CloudWatch同様、Linux編Windows編の設定手順と、最後に通知設定の手順を紹介します。

Linux編

1. エージェントのインストール

Site24x7のエージェントのインストールは、Site24x7で用意されているコマンドを流すだけです。Site24x7にログイン後、サーバーより監視の追加ボタンを選択後、対象となるOSを選択することで画像のようにインストールのコマンドが自動生成されます。

あとはこちらのコマンドを準備していた環境で実行するのみです。これだけでインストールが完了し、Site24x7に監視対象のサーバーが登録されています。

あとはこちらのコマンドを準備していた環境で実行するのみです。これだけでインストールが完了し、Site24x7に監視対象のサーバーが登録されています。また、Site24x7ではエージェントの設定変更は不要となります。

2. プロセス監視の追加

Site24x7ではプロセス一覧を収集しているため、監視したいプロセスを一覧から追加するだけで設定可能となります。対象サーバーの詳細画面のプロセスタブを選択し、プロセスのディスカバリーを選択してください。

プロセス監視の追加手順1

プロセス一覧からあとは追加したいプロセスを検索して、追加を選択するだけです。

プロセス監視の追加手順2

これだけで監視対象のプロセスを追加が完了しました。

3. プロセス監視の閾値設定

追加したプロセスに閾値設定を行います。対象となるプロセスの編集アイコンを選択します。

プロセス監視の閾値を設定する手順1

しきい値プロファイルの編集画面で、プロセスがダウンした際の通知を有効にするだけで設定完了となります。

プロセス監視の閾値を設定する手順2

これ以外にもプロセスのCPUやメモリ利用率にも応じてアラート設定をすることができます。Site24x7のプロセス監視の設定はこれで完了です。

Windows編

1. エージェントのインストール

監視対象サーバーからSite24x7にログインし、エージェントをダウンロードします。ダウンロードしたエージェントのインストーラーを起動し、Device Keyを入力後、インストールに従ってインストールを行います。

原則、このDevice Key以外はデフォルトのままで問題ありません。インストールが完了次第、Site24x7に監視対象サーバーが登録されています。エージェントの設定変更はLinuxと同様に不要となります。

2. プロセス監視の追加

Windows ServerでもLinux同様にプロセスは自動収集されています。違いとしてはWindows特有のWindowsサービスがタブとして追加されている点です。要件に合わせてプロセスもしくはWindowsサービスを監視対象に設定します。画像では、Windowsサービスを対象にtd-agentの監視を追加しています。

プロセス監視の追加手順

3. プロセス監視の閾値設定

Linuxと同様にWindowsサービスにも編集アイコンを選択し、プロセスがダウンした際の通知を有効化するだけでプロセス監視の設定は完了となります。

プロセス監視の閾値を設定する手順

通知設定

1. メールサーバーの設定

Site24x7ではメールサーバーを用意する必要はありません。代わりにメールを受信出来るように特定のIPアドレスからの受信許可を追加します。

2. 通知先の設定

デフォルトではSite24x7にサインアップした際のメールアドレスにアラートが飛ぶように設定されていますが、異なるメールアドレスや新たにメールアドレスを追加する場合はユーザーを追加し、メールアドレスを登録します。

3. 通知条件の設定

同一画面で登録したユーザーに通知すべき監視対象の設定やアラートの詳細の通知条件を設定することができます。これでSite24x7のアラートの通知までの設定が完了です。

まとめ

CloudWatchとSite24x7で行うプロセス監視を比較してきましたが、いかがだったでしょうか。どちらのサービスも監視用のサーバーを用意する必要がないため、監視サーバーの運用管理が不要という特徴があります。

AWSの各種サービスを組み合わせて自分たちの要件に合わせたカスタマイズには、自由度の高さというメリットと難しさというデメリットがあります。専任となるエンジニアが対応できるようなケースであれば、AWSのサービスのみで完結させることも出来るでしょう。しかし、今回紹介したプロセス監視のみでも少し複雑と感じられたようであれば、Site24x7のような最適化されたソリューションがよりフィットするのではないでしょうか。

Site24x7は、サインアップから5分でプロセス監視を開始する事が出来ました。

有料プランも月2,000円~なのでスモールスタートも可能です。特に、小さく始めて大きく育てるようなWebサービスにおいては、CloudWatchと合わせてSaaS型の監視ソリューションであるSite24x7を採用してみてはいかがでしょうか。

プランと価格の詳細はこちら:
https://www.site24x7.jp/pricing.html

フリープランのサインアップはこちら:
https://www.site24x7.jp/signup.html?pack=1&l=ja