LoginSignup
1
0

AWS-EC2のアクセスログをCloudWatch Logsで取得する

Last updated at Posted at 2023-10-23

目的

EC2にCloudWatchのエージェントを導入することで以下が可能になるようです。

  1. インスタンスやサービスログの蓄積
  2. ログのモニタリング
  3. ログのフィルタリング
  4. ログデータのアーカイブ
  5. ログデータの分析 (CloudWatch Logs Insights)
  6. ログのアラート化

今回はCloudWatchを使い、EC2のApacheのアクセスログを収集、確認してみたいと思います。

インスタンス準備

  • OSはAmazonLinux2023
  • sshでつながるec2を準備する。
  • インターネットから80番ポート への接続はセキュリティグループで許可
    image.png

Apacheの導入

  • apacheインストール、起動
// インストール
sudo yum install httpd -y

// サービス起動
sudo systemctl start httpd

image.png

  • アクセス確認
// HEADだけ確認
curl http://localhost | head

image.png

  • httpdログの出力があるか確認
cd /var/log/httpd
tail -f access_log -n 100

image.png

CloudWatchLogsポリシーの設定

  • EC2に割り当てるIAMロール作成
1. マネジメントコンソールからIAMを選択
2. 信頼されたエンティティタイプ - AWS のサービス
3. ユースケース - EC2
4. 次へ
5. 検索窓に 「CloudWatchLogsFullAccess」 を入力、チェックオン
6. 次へ
7. ロール名には任意の名前を設定
8. ロールを作成
  • IAMロールをEC2に設定
1. マネージメントコンソールからEC2を選択
2. 対象のEC2をチェックオン
3. アクション - セキュリティ - IAMロールを選択
4. IAMロールから、作成したロールを選択
5. IAMロールの更新

ロールをEC2に紐付けることで、CloudWatchLogsサービスの利用権限を保持するようになります。

CloudWatchエージェントの導入

  • CloudWatch Logsエージェントのインストール
$ sudo dnf install amazon-cloudwatch-agent

image.png

  • ウィザードを利用した監視設定
$ cd /opt/aws/amazon-cloudwatch-agent/bin
$ sudo ./amazon-cloudwatch-agent-config-wizard

基本的にdefault choiceですが、今回はhttpdのログ取得なので以下の設定を行います。

Log file path:
/var/log/httpd/access_log

instance_idでログストリームが作成されます。

  • JSONファイルのコピー、リネーム
  • /opt/aws/amazon-cloudwatch-agent/bin 配下に「config.json」が出来上がります。
    しかし、このままでは読み込んでくれないため、起動に失敗します。
    /opt/aws/amazon-cloudwatch-agent/etc/ 配下に「config.json」をコピーします。
#ファイル移動
$ sudo cp -p config.json ../etc/

#ディレクトリ移動、リネーム
$ cd ../etc/
$ sudo mv config.json ./amazon-cloudwatch-agent.json
  • エージェントの起動、ステータス確認
// 起動
$ sudo systemctl restart amazon-cloudwatch-agent
// ステータス確認
$ sudo systemctl status amazon-cloudwatch-agent

image.png

※OSがAM2023の場合、collectが入っていないので、うまくエージェントが起動してくれませんでした。以下を参考にcollectのインストール後、無事に起動しました。
参考URL:https://zenn.dev/techa_log/articles/d2f766d38c0407

  • CloudWatchでログ収集確認
    ロググループ - access_log - instanceIdを選択し、正常にログ出力されていることが確認できました。
    image.png
1
0
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
0