CloudWatchログ
- 2016.08.12
- Webサイト
こんにちは、
先日、娘の10歳の誕生日でしたので、誕生日ケーキを作ってプレゼントしました。
といっても、ロールケーキを中心に、
いろんなフルーツを切って、ちょっとデコレーションしただけなんですが、
喜んでくれたので、ニヤニヤしていたパパヤマです。
AWSには、さまざまなサービスがありますが、
今回、「CloudWatch」を使ってみましたので、備忘録も兼ねてご紹介します。
CloudWatchとは、平たく言えばAWSが提供するクラウドサーバ監視サービスです。
サーバの運用といえば、やはり「監視」をどう実現するかも重要ですね。
このCloudWatchサービスは、
例えば、「CPUが5分間に渡って使用率50%を超えたら、メールで通知する」といったことが
簡単に設定できるサービスで、別途監視ツールなどをインストールしておく必要がなく、
非常に手軽に、且つ安く始められます。
そして、サーバ運用となると、「ログ」の監視も重要です。
何かトラブルがあった時、SSHでサーバへログインし、対象サービスのログを探し、
一つ一つログを見て追っていく、という作業など、一刻も早く解決しないといけない場合は大変ですね。
また、ログを見ながら、例えば原因の特定のために「キーワード」で検索するかもしれません。
予めそういったエラーの原因になりそうなキーワードがログに含まれていることがわかれば、
エラーの原因特定まで、非常にスムースにいきそうです。
そこで使用すべきサービスが、「CloudWatch Log」です。
「CloudWatch Log」の良いところ
- AWSのコンパネからすぐに、アプリのログを閲覧できる
- 特定文字が含まれている場合など、フィルターし易い
- 予めフィルターを作っておき、さらにそのフィルター結果に対してメール通知ができる
3はまだ、試していないのでまだ良くわかっていません、すみません。
(通常のCloudWatchでのメール通知は試しています)
このCloudWatchLogの導入手順を詳しく書こうかと思ったのですが、
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html
こちらの公式ドキュメント通りに実施して頂ければ、3分で出来ます。
ポイントだけさら~っと書いていきます。
<1>
CloudWatchログに関する権限を持ったIAMユーザを作る。
あるいは、既存のIAMユーザに該当権限を付与する。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
<2>
yum install awslogs
でインストールした後に、
/etc/awslogs/awslogs.conf
に、監視対象とするログファイルを設定する
<3>
/etc/awslogs/awscli.conf
にさきほどのIAMユーザのアクセスIDとキーを設定する
リージョンには、ap-northeast-1を設定できるぽいです。
こんな感じでだいたい3ステップです。
あとはCloudWatchの画面でログを開いて、閲覧できるか確認しましょう。
その他、気になった点もピックアップさせて頂きます。
1)ローテートされたログの閲覧にも対応できる
awslogs.confの「file」に、/usr/local/apache/logs/access_log*
などのようにワイルドカードに対応しています。
このように書けば、ローテートされた最新ログファイルが監視の対象となります。
2)でも、hogehoge.YYYYMMDD.logのようなファイルには対応できない
ファイル後方のマッチングにしか対応していない?のかわからないですが、
なぜか反応しませんでした。
これは、私のやり方が良くない可能性もありますので、後日さらに調べてみます。
ドキュメントに載ってるかも。
⇒ログファイル名によっては、CloudWatchLogに対応できないかもしれませんね。
⇒awslogsサービスを再起動したら問題なくいけたようです :(
3)log_group_name:クライアント名、log_stream_name:ログ名として運用
弊社の場合は、このように命名して運用しています。
実際の運用に合わせて命名すれば、良いと思います。
皆様もステキなCloudWatchLogライフをお過ごしください。