パラメータストアから複数コンフィグ読み込み
作業概要
前回からのつづき
https://knowledge.hdora.tokyo/?p=1686
・パラメータストアからファイルを読み込むようにする
・複数コンフィグを読み込む
インスタンス1台1台にコンフィグを設置していくのは面倒なのでパラメータストアから読み込むようにしたい。
また、複数コンフィグを読み込むようにしたい
※以前チャレンジしたとき、うまく複数コンフィグを読み込めなかったので再チャレンジ。
ついでにプロセス監視も行います。(Apache、Postfix等)
・複数の CloudWatch エージェント設定ファイルを読み込む
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html
fetch-configの代わりにappend-configを使うことで設定ファイルを追加できるようだ。
なるほど。
・パラメータストアから設定ファイルを読み込む
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name
これでいけそう。
作業記録
パラメータストアに2つコンフィグを作成
AmazonCloudWatch-processes 種類 String データ型 text 値 ----- { "metrics": { "metrics_collected": { "procstat": [ { "exe": "httpd", "measurement": [ "pid_count" ] }, { "exe": "postfix", "measurement": [ "pid_count" ] }, { "exe": "named", "measurement": [ "pid_count" ] }, { "exe": "dovecot", "measurement": [ "pid_count" ] }, { "exe": "mysqld", "measurement": [ "pid_count" ] } ] } } } ----- AmazonCloudWatch_disk-mem-swap 種類 String データ型 text 値 ----- { "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "collectd": { "metrics_aggregation_interval": 60 }, "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used_percent" ], "metrics_collection_interval": 60 } } } } -----
パラメータストアからコンフィグ読み込み
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudWatch_disk-mem-swap sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c ssm:AmazonCloudWatch-processes
あとはダッシュボードに追加し、アラームを設定して閾値越えやプロセスダウン時にメール通知するようにしておきます。
宿題
あとはログ監視。
CloudWatch Logsではなく推奨されている方法でやってみよう。
どのログを監視するか、監視キーワードは何にするかなどがポイントか。