ansibleでRHEL8のセットアップ ~CloudwatchAgent編~
どうも2人目です。
最近AWS上にRed Hat Enterprise Linux 8のサーバを立てる機会がありましたので備忘として残そうと思います。
今回はCloudWatchAgent編です。
RHELサーバのログ監視を実装したかったので、CloudwatchAgentをインストールして、Cloudwatchlogsに残すような実装をしました。
ansible使いの方はよかったら参考にしていってください。
①collectdのインストール
上記サイトはAmazonlinuxのモノですが、今回はrhelなので少しいじりました。
・playbook
- name: Enable epel repo #epelの有効化
shell: dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
- name: Install collectd #collectdインストール
yum:
name: collectd
state: latest
②CloudwatchAgentのインストール
yumでサクッと入れてしまいましょう。
・playbook
- name: Install amazon-cloudwatch-agent
yum:
name: amazon-cloudwatch-agent
state: latest
③config.jsonの配置
仕様に合わせたconfig.jsonを配置しましょう。
書き方は公式のドキュメントを参考ください。
・playbook
- name: Copy amazon-cloudwatch-agent config
copy:
src: <配置用ディレクトリ>/config.json
dest: /opt/aws/amazon-cloudwatch-agent/etc/config.json
mode: '0644'
私は/var/log/secure をログ監視する必要があったのでこんな感じに記述しました。
・config.json
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"logs": {
"force_flush_interval": 60,
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/secure",
"log_group_name": "/var/log/secure_aws",
"log_stream_name": "{instance_id}",
"timestamp_format": "%b %d %H:%M:%S"
}
]
}
}
},
"metrics": {
"metrics_collected": {
"disk": {
"measurement": [
"disk_free",
"disk_used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_used",
"mem_used_percent"
],
"metrics_collection_interval": 60
}
}
}
}
④CloudWatchAgentの起動
最後の仕上げです。CloudWatchAgentを起動させましょう。
- name: Fetch amazon-cloudwatch-agent config
shell: |
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json \
-s
少しでも皆様のお役に立てれば幸いです。
以上