CloudWatchのログ蓄積とモニタリングを使ってみる(その1)
皆さん初めまして。ヴァル研究所で開発、運用、雑用をやっているMikawaです。ここ数年はAWSにはまっていて、会社以外にもAWSのコミュニティであるJAWS-UGの
中央線支部で活動していたりします。
さて、今日はちょっと旬を逃した感じもしますが、 CloudWatchに新しく追加された ログの蓄積とモニタリング機能について書こうとおもいます。
導入の詳細はリンクの本家サイトを見てもらうのが早いのですが
このエージェントのインストールスクリプト
https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agent-setup-v1.0.py
CentOSで実行してみると、わかるんですが
のようなメッセージが 出ます。どうやら非対応のようです。Launching interactive setup of CloudWatch Logs agent ... ERROR: Failed to determine linux distribution. Exiting.
(8/18時点で対応アナウンスが出ていたみたいです)
因みにソースコードには
# For now, we only support AmazonLinux and Ubuntu.
with open(issue_file_path, "r") as issue_file:
line = issue_file.readline()
if line.startswith("Amazon Linux AMI"):
return self.AmazonLinux
elif line.startswith("Ubuntu"):
return self.Ubuntu
else:
fail("Failed to determine linux distribution. Exiting.", PLATFORM_NOT_SUPPORTED)
となっているので、AmazonLinuxとUbuntu しか対応していないみたいですね。
と言われると使いたいんじゃー、ということで
この辺と、(userは好きにしてください)
Rhel, Ubuntu, AmazonLinux, CentOS = range(4)
user_name_map = {Rhel: "ec2-user",
Ubuntu: "ubuntu",
AmazonLinux: "ec2-user",
CentOS: "xxxx"}
installer_name_map = {Rhel: "yum",
Ubuntu: "apt-get",
AmazonLinux: "yum",
CentOS: "yum"}
この辺と、
# For now, we only support AmazonLinux and Ubuntu.
with open(issue_file_path, "r") as issue_file:
line = issue_file.readline()
if line.startswith("Amazon Linux AMI"):
return self.AmazonLinux
elif line.startswith("Ubuntu"):
return self.Ubuntu
elif line.startswith("CentOS"):
return self.CentOS
else:
fail("Failed to determine linux distribution. Exiting.", PLATFORM_NOT_SUPPORTED)
この辺。(daemonのところを飛ばしてますが、ちょっとエラーでるだけで自分で起動すればOK)
if self.os_flavor == self.AmazonLinux or self.os_flavor == self.Rhel or self.os_flavor == self.CentOS:
log_file_path = '/var/log/messages'
elif self.os_flavor == self.Ubuntu:
log_file_path = '/var/log/syslog'
あとは、エージェントが動いていて、設定が正しければ、CloudWatch(N.Virginiaですよ)に
ガンガン流れてきます。
CloudWatchのログ蓄積とモニタリング機能は運用のコストを軽減するのに最適だと思いますので
これから積極的に使っていきたいですね。
それではまた次回お会いしましょう。