LoginSignup
1
4

More than 3 years have passed since last update.

【AWS】EC2のログをCloudWatchに送る

Last updated at Posted at 2020-04-21

やりたいこと

EC2インスタンス内のログをAWSで管理したい。

ログをAWSで管理すると嬉しいこと

  • Zabbixなどの監視用ミドルを使わずにログを監視できる
  • ログをリアルタイムにLambdaで処理できる
  • S3に転送できたり、Kinesisと連携できたりする

用途は様々あるので、その手始めとしてCloudWatch Logsを使用してEC2内のログをCloudWatchに送る。
Qiita logo

1. CloudWatch書き込み用のポリシーを作成してEC2のロールに紐づける

「IMA」→「ポリシー」→「ポリシーの作成」
1.png

「JSON」のタブを選択し、ポリシーを追加する。
2.png

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
      "Resource": [
        "*"
    ]
  }
 ]
}

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

ポリシー名を記載して「ポリシーの作成」
3.png

作成したポリシーをEC2インスタンスのロールに紐づける。

2. EC2にCloudWatchLogsエージェントをインストールする。

※EC2のイメージはAmazonLinux2を使用しています

CloudWatchLogsエージェントのインストール
$ sudo yum update -y
$ sudo yum install -y awslogs
awscli.confの修正
$ sudo vi /etc/awslogs/awscli.conf

[default]
region = us-east-1
↓
[default]
region = ap-northeast-1

CloudWatchに送るログの指定を行っていきます。
デフォルトで/var/log/messagesを送る設定が記載されているので、それを修正して今回は/var/log/test.logを作成して、対象のログファイルとします。

awslogs.confの修正
$ sudo vi /etc/awslogs/awslogs.conf

[/var/log/test.log]
datetime_format = %b %d %H:%M:%S
file = /var/log/test.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/test.log
サービス起動
$ sudo systemctl start awslogsd
サービス自動起動設定
$ sudo systemctl enable awslogsd.service

これでインストールと設定は完了になるので、動作確認を行います。

3. 動作確認

対象のログファイルに文字列を記載します。

$ sudo vi /var/log/test.log

aaaaaa

CloudWatchのログを確認します。
「CloudWatch」→「ログ」→「ロググループ」
4.png
awslogs.confのlog_stream_nameの値をインスタンスIDにしているので、「ロググループ」→「インスタンスID」配下にEC2のログが出力されています。
5.png

awslogs.confの詳しい設定項目については公式を参考にしてください。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4