Help us understand the problem. What is going on with this article?

Amazon Linux2のEC2にCloudWatchのLogAgentを導入する

まいど。ゆうべはお楽しみでしたね。
AWS東京リージョンで発生した障害について(4.20)

CloudWatchやSQS,Lambda辺りが対象だったようなので
ウチのEC2やS3とかには特に影響無かったようですが、
逆に言うと古き良きサーバマネジメントしか出来てないという事実を突きつけられました。
世の中どんどん進化してるので上記のようなサービスも知ってないといけないなぁと痛感。

ということで昨日障害が起きたサービスを一つずつ理解しようと思い、
CloudWatchから触ってみることにしました。

そもそもCloudWatchとは何なのか

調べりゃ分かることなんで詳細は書きませんが要は監視ツールです。
コンソールにあるのでインスタンスを持ってたら見れるでしょう。

スクリーンショット 2020-04-21 11.24.39.png

log取りを導入してみる

とりあえずapacheのaccess_logを収集出来るようにしてみようということで
他の記事や公式資料を参考にしてみましたがなんかsetup.pyが対応してないような?
AmazonLinux2はyumから導入出来るようなのでそっちの手段を使います。
EC2 Linux インスタンスの起動時に CloudWatch Logs エージェントをインストールして設定する

yum install awslogs

/etc配下にawslogディレクトリが切られるので中のconfを編集
IAMでCloudWatchLogsFullAccessを割り当てたユーザのアクセスキーを追加し、
EC2のawscli経由でCloudWatchLogにアクセス出来るようにしておく。

awscli.conf
[plugins]
cwlogs = cwlogs #これはなんだ、分からん
[default]
region = ap-northeast-1 #regionを変更
#以下awscliのアクセスキー情報
aws_access_key_id=XXXXXXXXXXXXX 
aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXX
awslogs.conf
#色々書かれてるが一番下にmessagesの定義が書いてるのでこれを参考にする
[/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

#↓今回これをこうした
[/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 = /var/log/httpd/access_log

サービスを開始...systemctlの書き方をなかなか覚えられない...

service awslogsd start

動作してるのを確認
スクリーンショット 2020-04-21 12.58.11.png

access_logが更新されるように適当に作ったWebページにアクセスしてコンソールを見る。

スクリーンショット 2020-04-21 13.57.47.png

出てた。けど名前なんとかならないのか。

awslogs.conf
[Apache-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 = shindev-log #ここを変える

サービスを再起動して再確認

service awslogsd restart

スクリーンショット 2020-04-21 14.28.48.png

行けた。
グループ単位で他のログを取ってみる。
なんでもいいんだけどerror_logを追記、ついでにlog_stream_nameを変更してログファイル単位で分別する形にした。

awslogs.conf
[Apache-error_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/error_log #対象ファイル
buffer_duration = 5000
log_stream_name = shindev-ec2-error_log #ここを変更
initial_position = start_of_file
log_group_name = shindev-log #ここは同じ

こうなりました。

スクリーンショット 2020-04-21 14.37.50.png

使い方大体分かったような気がする。

終わり。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした