cloudwatchlogsでデータを取得してみる

## EC2でサーバを作成

Amazon Linux2 で作成しました。

![2インスタンス _ EC2 Management Console - Google Chrome 2021-04-05 15.36.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/270f35eb-cae1-c4c5-91d7-621249a8318e.png)


## サーバにエージェントインストール

- インストール

```
sudo su -
yum install awslogs
```

- ログの監視設定

リージョンの変更を行います。
今回であればEC2インスタンスがある、東京リージョンに書き換えを行います。

```
vi /etc/awslogs/awslogs.conf
==========
[default]
region = us-east-1
↓
region = ap-northeast-1
==========
```

今回は特に変更はしないです。

```
vi /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
==========
```

- エージェントの起動・自動起動設定

```
systemctl start awslogsd
systemctl enable awslogsd
```

## 権限設定

- ロールの作成

マネジメントコンソール > IAM > ロールの作成 から
ロールを作成していきます

![1IAM Management Console - Google Chrome 2021-04-05 15.44.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/db118804-5293-bb34-3984-01ceeb63889d.png)


AWSサービス > ユースケースの選択:EC2 を選択し、次に進みます

![2IAM Management Console - Google Chrome 2021-04-05 15.45.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/11398612-181d-9e19-08f1-3d42bbec533c.png)


アタッチする権限を指定します。
`CloudWatchLogsFullAccess` を検索してチェックを行い、次に進みます

![3IAM Management Console - Google Chrome 2021-04-05 15.46.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/f8335a5e-c56d-cca3-8f5e-ba8f4009fc82.png)


今回はタグをつけずに進みます

![4IAM Management Console - Google Chrome 2021-04-05 15.48.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8e67b122-2e8a-a85d-2ace-a45d57a13e43.png)


ロール名を指定して、作成を行います

![5IAM Management Console - Google Chrome 2021-04-05 15.49.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/316be71b-064a-b488-a8cb-dbda3b8bc81e.png)


EC2_cloudwatch_log のロールが作成出来ました。

![6IAM Management Console - Google Chrome 2021-04-05 15.50.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/35658ec3-733d-cb83-3674-e551bfee4292.png)


- 作成したIAMロールを紐付ける

EC2インスタンスに戻り、
監視されるEC2インスタンスにチェックを入れて、
アクション > セキュリティ > IAMロールを変更 でIAMを紐付けします

![7インスタンス _ EC2 Management Console - Google Chrome 2021-04-05 15.52.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/e978e1a4-0aaf-7af1-4096-46459a589526.png)


IAMロールを開けば、先程作成したIAMロールが出てくるので
指定して保存を行います。

![8IAM ロールを変更 _ EC2 Management Console - Google Chrome 2021-04-05 15.53.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/f25de5d2-c7df-6c19-181d-d1ef289940bd.png)


## cloudwatch logを確認

- cloudwatch logに移動

マネジメントコンソール > ログ > ロググループ へ移動

![9CloudWatch Management Console - Google Chrome 2021-04-05 16.06.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2e63e803-544b-321d-2ff5-3355b88ffa59.png)


- ロググループで作成を確認

`/var/log/messages` のログを確認しました

![10CloudWatch Management Console - Google Chrome 2021-04-05 16.07.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/ee53104b-5770-8cad-3b11-2b63b301767f.png)


- 詳細なログを確認

/var/log/messages > ログストリーム で詳細なログを確認することが出来ます

![11CloudWatch Management Console - Google Chrome 2021-04-05 16.09.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/1a5efa0b-74f8-2cfb-4dae-7866c3ffd47c.png)


## httpdのアクセスログを取得

- httpdのインストール

```
yum install httpd
```

- httpdの起動と自動起動設定

```
systemctl start httpd
systemctl enable httpd
```

- ファイルを設置

```
vi /var/www/html/index.html
==========
<h1>hello world!</h1>
==========
```

- EC2のセキュリティグループを開放

セキュリティグループで80番ポートを開放
※あんまりやり方としてよくないです

![12EC2 Management Console - Google Chrome 2021-04-05 16.16.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2af04a0c-5619-915d-3da6-1397f7453e8b.png)


- エージェント設定の変更

このファイルを書き換えることで、取得できるファイルを変えることが出来ます。
[logstream]セクションと、取得するファイル(file)と、ロググループ名(log_group_name) を書き換えました。

```
vi /etc/awslogs/awslogs.conf
==========
[/var/log/httpd/access_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/access_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = access_log
==========
```

- エージェントの再起動

```
systemctl restart awslogsd
```

- webページを表示

`http://[IPアドレス]/index.html` で確認することが出来ます。
実際に使う際はSSLなど対応しましょう

![13Mozilla Firefox 2021-04-05 16.30.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/aca431a1-bcdc-d4d7-4faa-e36b02e5cac2.png)



- ログの確認

cloudwatch > ログ > ロググループ で新しいロググループが確認できました

![14CloudWatch Management Console - Google Chrome 2021-04-05 16.27.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/00883f50-96dc-4a83-8411-42c0283b42c8.png)


詳細はログストリームから確認することが出来ます

![15CloudWatch Management Console - Google Chrome 2021-04-05 16.28.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/06dc6136-0c38-e1b4-b7cc-1907bb5aa4a6.png)


## 勉強後イメージ

エージェントをインストールするのは知ってたけど、実際やってみてイメージつかめた
ファイルにどう出力するのかとか記載 → 自動的にロググループに送られる って感じかな


## 参考

- [awslogsでEC2のログをCloudWatch連携する方法](https://colsis.jp/blog/awslogs/)
- [CloudWatchでログ監視を始める手順と同じことを5分で実現する方法](https://www.site24x7.jp/blog/cloudwatch-log-monitoring/)