こんにちは、ちゃりおです。
Cloudwatchでプロセス監視をしてみました。
procstatプラグインをつかうことで、以前より簡単にできました。
今回は、構成管理ツールで再現しやすいようにSSMを使わない手順を紹介します。
AmazonLinux2でhttpdのプロセスを監視してみる
EC2にCloudwatchAgentのIAMロールを追加する
事前に「CloudWatchAgentServerPolicy」がついたIAMロールを作成し、EC2にアタッチします。
CloudWatch エージェントで使用する IAM ロールおよびユーザーを作成する
CloudwatchAgentインストール
$ wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/
amazon-cloudwatch-agent.rpm
$ sudo rpm -U ./amazon-cloudwatch-agent.rpm
公式ドキュメント Cloudwatchagentインストール
設定ファイルの反映・Cloudwatchエージェントの起動
CloudWatch エージェント設定ファイルを手動で作成または編集する場合は、任意の名前を付けることができます。トラブルシューティングを簡単にするため、Linux サーバーでは、/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json、Windows Server を実行しているサーバーでは、$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json という名前を付けることをお勧めします。
公式ドキュメント Cloudwatchagentファイルを手動で作成・編集する
「/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json」という名前でファイルを作成します。
$ vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
{
"metrics": {
"metrics_collected": {
"procstat": [
{
"exe": "httpd",
"measurement": [
"pid_count"
],
"metrics_collection_interval": 60
}
]
}
}
}
設定ファイルを読み込ませます。
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl
-a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/
etc/amazon-cloudwatch-agent.json -s
「amazon-cloudwatch-agent.toml」をみてみると、プロセス監視の設定が追加されているのがわかると思います。
$ cat /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
~~抜粋~~
[[inputs.procstat]]
exe = "httpd"
fieldpass = ["pid_count"]
interval = "60s"
pid_finder = "native"
[inputs.procstat.tags]
metricPath = "metrics"
Cloudwatchagentのstatusを確認します。
running担っているはずです。
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
{
"status": "running",
"starttime": "2019-11-15T23:42:41+0000",
"version": "1.231221.0"
}
マネジメントコンソールからプロセス監視できていることの確認
取得できた場合、Cloudwatchのメトリクスから確認できます。(CWAgent>exe,host,pid_finder)
まとめ
Cloudwatchでも結構簡単にプロセス監視ができます。
SSM使ったほうがさらに楽ですが、Ansibleでやりたいのでコマンドラインを使った方法でやりました。
こういった設定もAnsibleでやるのかSSMを使うのか、悩みどころです。