こちらの記事でCloudWatch Agentとcollectdを使ってオンプレミスサーバーからAWS CloudWatchへカスタムメトリクスを送信する方法を記載しましたが、今回はprocstatをとってプロセスの監視をしてみようと思います。
基本的には以下の公式ページに詳しくやり方が記載してあります。
procstat プラグインでプロセスメトリクスを収集する - Amazon CloudWatch
CloudWatch エージェントと procstat を使用してプロセスからメトリクスを収集する方法を示します。
前提
我が家の自宅サーバー(NUC)はAnsibleで管理しているので、Ansibleのプレイブックにより修正作業を行っています。
自宅の機器をAnsibleで管理する方法については、以下の記事を参照ください。
Ansibleを使ってオンプレミスサーバーにCloudWatch Agentとcollectdをインストール&設定する方法は以下をごらんください。

自宅サーバーにansibleでCloudWatch Agentの設定をしてCloudWatchで監視できるようにした
amazon-cloudwatch-agent.json
以下が設定ファイルです。
...
"metrics": {
"metrics_collected":
"procstat":[
{
"exe": "chronyd",
"measurement": [
"cpu_usage",
"memory_data"
]
}
]
}
...
metricsの下のmetrics_collectdの中にprocstatを指定して、配列で監視したいプロセスを記載します。
公式ページに指定できるパラメータが記載されています。exe以外にも3種類記載できるようです。
プロセスの指定方法 | 内容 |
pid_file | プロセスが作成するプロセス識別番号(PID)ファイルの名前でプロセスを選択する。 /var/run/crond.pid など |
exe | 正規表現を含む指定した文字列を含むプロセス名のプロセスを監視します。 |
pattern | 指定した文字列を含むコマンドラインを持つすべてのプロセスをモニタリングします。 |
結果

取得し始めてすぐなので、収集出来ているデータが少ないですが、ちゃんと取れているのが分かります。
CloudWatch Agent経由で取得したメトリクスは、「すべてのメトリクス」-「CWAgent」の下に出てきます。
コメント