CloudWatch Logsを使いたい

### CloudWatch Logsの主な機能
– インスタンスやサービスログの蓄積
– ログのモニタリング
– ログのフィルタリング
– ログデータのアーカイブ
– ログデータの分析
– ログのアラート化

### IAMロールの作成
AWS Service -> EC2 -> Add Permissionで “CloudWatchLogsFullAccess” をつける -> role nameはそのまま”CloudWatchLogsFullAccess” にする

### roleをattach
Modify IAM roleで作成した”CloudWatchLogsFullAccess”をroleにつける

sshログインしてapache2を入れる
$ sudo yum install httpd
$ sudo systemctl start httpd
$ sudo systemctl status httpd
$ sudo systemctl enable httpd
$ sudo systemctl is-enabled httpd
$ httpd -v

public ipを叩き、ipが入っていることを確認

cloudwatch logsエージェントインストール
$ sudo yum install -y awslogs

/etc/awslogs/awscli.confがconfファイル。us-east-1になっているので、ap-northeast-1に変更する
$ sudo cat /etc/awslogs/awscli.conf

[plugins]
cwlogs = cwlogs
[default]
region = us-east-1
[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1

$ sudo cat /etc/awslogs/awslogs.conf

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages

fileで対象となるログファイルを指定する
buffer_duration: ログイベントのバッチ期間

apacheエラーログを追加

[Apache_AccessLog]
log_group_name = TestSV_Apache
log_stream_name = {instance_id}_accesslog
file = /etc/httpd/logs/access_log
datetime_format = %a %b %d %H:%M:%S %Y
initial_position = start_of_file
buffer_duration = 5000

[Apache_ErrorLog]
log_group_name = TestSV_Apache
log_stream_name = {instance_id}_errorlog
file = /etc/httpd/logs/error_log
datetime_format = %a %b %d %H:%M:%S %Y
initial_position = start_of_file
buffer_duration = 5000

amazon linux2 amiの場合
$ sudo systemctl start awslogsd

CloudWatch Logsで確認するとログが出力されている

なるほど、これをS3に転送するのね
なんか凄いことになってるな