EC2でサーバを作成
Amazon Linux2 で作成しました。
サーバにエージェントインストール
- インストール
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 > ロールの作成 から
ロールを作成していきます
AWSサービス > ユースケースの選択:EC2 を選択し、次に進みます
アタッチする権限を指定します。
CloudWatchLogsFullAccess
を検索してチェックを行い、次に進みます
今回はタグをつけずに進みます
ロール名を指定して、作成を行います
EC2_cloudwatch_log のロールが作成出来ました。
- 作成したIAMロールを紐付ける
EC2インスタンスに戻り、
監視されるEC2インスタンスにチェックを入れて、
アクション > セキュリティ > IAMロールを変更 でIAMを紐付けします
IAMロールを開けば、先程作成したIAMロールが出てくるので
指定して保存を行います。
cloudwatch logを確認
- cloudwatch logに移動
マネジメントコンソール > ログ > ロググループ へ移動
- ロググループで作成を確認
/var/log/messages
のログを確認しました
- 詳細なログを確認
/var/log/messages > ログストリーム で詳細なログを確認することが出来ます
httpdのアクセスログを取得
- httpdのインストール
yum install httpd
- httpdの起動と自動起動設定
systemctl start httpd
systemctl enable httpd
- ファイルを設置
vi /var/www/html/index.html
==========
<h1>hello world!</h1>
==========
- EC2のセキュリティグループを開放
セキュリティグループで80番ポートを開放
※あんまりやり方としてよくないです
- エージェント設定の変更
このファイルを書き換えることで、取得できるファイルを変えることが出来ます。
[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など対応しましょう
- ログの確認
cloudwatch > ログ > ロググループ で新しいロググループが確認できました
詳細はログストリームから確認することが出来ます
勉強後イメージ
エージェントをインストールするのは知ってたけど、実際やってみてイメージつかめた
ファイルにどう出力するのかとか記載 → 自動的にロググループに送られる って感じかな