この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
初めに
お久しぶりです。伊藤です。
今回は、ログの取得について知識を深めていきたいと思い、
その第一回目としてCloudWatchLogsにapacheのアクセスログを出力
する方法を復習の意味も込めて確認していきたいと思います。
目的
EC2でApacheをインストール後、そのアクセスログをCloudWatchLogsで確認する方法を知りたい。
説明
CloudWatchLogsとは、簡単に言うとその名の通りログ監視サービスです。
その他ログのモニタリングやアーカイブ、その他AWSサービスとの連携が簡単に行うことができます。
ただし、利用するためにはCloudWatchAgentをインストールする必要があります。
EC2ではデフォルトでCPU使用率やネットワーク受信料が確認できますが、
ログやメトリクスを取得したい場合はAgentをインストールしてCloudWatchから確認する、という流れになる
ということです。
今回確認したい内容
さて、本ブログの目的は、冒頭にも書いたとおり
ApacheのアクセスログをCloudWatchLogsに出力して確認することです。
環境
では、実際にやっていきたいと思います。
前提条件
今回は、すでにSSH接続可能なEC2インスタンスを作成済みの前提で進めていきます。
進めていく順番は下記のとおりです。
①ログ出力のためのIAMロール作成
②Apacheのインストール,起動確認
③CloudWatchAgentのインストール,設定,起動
④出力結果の確認
ここまで行うと、CLoudWatchLogsでアクセスログを確認することができます。
①ログ出力のためのIAMロール作成
まずは、CloudWatchAgentからCloudWatchLogsにログの出力をするためには
権限を付与する必要があります。
今回は、CloudWatchAgentServerPolicyのみを付与したIAMロールを作成して
作成済インスタンスにアタッチします。
②インスタンスに接続してApacheの設定
Apacheをインストールするコマンド
$ sudo yum install httpd
index.htmlファイルを生成します。(ファイルの中身は任意の内容です)
$ sudo vi /var/www/html/index.html
demo.ito.accesslog
Apacheを起動して確認してみます。
$ sudo systemctl start httpd
$ sudo systemctl status httpd
実際に起動していることが確認できました。
③CloudWatchAgentのインストール,設定,起動
$ sudo yum install amazon-cloudwatch-agent
下記コマンドでログ出力設定を行うための設定ファイルを作成します。
※インスタンスIDの部分は作成したインスタンスのIDに設定してください。
$ sudo vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/httpd/access_log",
"log_stream_name": "{instance_id}",
"log_group_name": "/var/log/httpd/access_log",
"timestamp_format": "%d/%b/%Y:%H:%M:%S %z",
"timezone": "UTC"
}
]
}
}
}
}
CloudWatchAgent起動、設定確認
$ sudo systemctl start amazon-cloudwatch-agent.service
$ sudo systemctl status amazon-cloudwatch-agent.service
こちらも問題なく起動できています。
ここまで設定すると今回設定したい内容は設定できました。
実際にアクセスログを確認していきます。
アクセスするために再度ループバックアドレスを使用する
$ curl 127.0.0.1
④出力結果の確認
これで実際に設定したApacheへのアクセスログを
CloudWatchLogsにて確認することができました。
※Linux上からも同様のログを確認できます。
まとめ
ログを取得するだけでなく、そのログを分析やトラブルシューティングに活用していく必要があるので、基礎の部分をしっかり理解して、
スムーズにログを活用できるようになっていきたいですね!