CloudWatchlogs awslogsインストールと調べると、「あ、wgetでインストールするのか…パッケージないのかな」からの、これ2014年の記事じゃねええか!と結構古い記事が出てくるので、設定方法とansible化したのでブログします。
※今回はコンソールでログを可視化するところまでにします。(OSはAmazon Linux1)
■awslogsは何がすごいのか
AWSが提供しているログ監視ツールで、EC2のログやアプリのログを収集して、リアルタイムでモニタリングしてくれる強者。
さらに
・特定の文字のフィルタリング
・グラフ化
・Amazon SNSと連携してアラートも設定できる
・ログデータをS3にエキスポートしてくれる
■インストールと設定
まずは
・IAMのロールにCloudWatchLogsFullAccessをぶち込みましょう
・CloudWatch Logsエージェントのインストール
1 2 3 4 5 6 7 |
$ sudo yum install -y awslogs ======================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================== Installing: (省略) Complete! |
・/etc/awslogs/awscli.conf
1 2 3 4 |
[plugins] cwlogs = cwlogs [default] region = ap-northeast-1 |
・/etc/awslogs/awslogs.conf
今回はmessagesとcronとelasticsearch系にしてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[general] state_file = /var/lib/awslogs/agent-state [/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/cron] datetime_format = %b %d %H:%M:%S file = /var/log/cron buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = /var/log/cron [/var/log/elasticsearch/elasticsearch.log] datetime_format = %b %d %H:%M:%S file = /var/log/elasticsearch/elasticsearch.log buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = /var/log/elasticsearch/elasticsearch.log |
・awslogsサービスの起動
1 2 3 |
$ sudo service awslogs start or $ sudo /etc/init.d/awslogs start |
・自動起動の設定
1 2 3 |
$ sudo chkconfig awslogs on $ sudo chkconfig --list awslogs awslogs 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
■AWSコンソールの確認
■Ansible化
・cloudwatch_logs
1 2 3 4 5 6 7 8 9 |
> tree cloudwatch_logs cloudwatch_logs ├── files │ ├── awscli.conf │ └── awslogs.conf ├── handlers │ └── main.yml └── tasks └── main.yml |
・cloudwatch_logs/tasks/main.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
- name: install packages yum: name={{ item }} state=installed with_items: - awslogs - name: copy awscli.conf copy: src: "{{ item.src }}" dest: "/etc/awslogs" owner: root group: root mode: 0600 with_items: - { src: roles/cloudwatch_logs/files/awscli.conf } - { src: roles/cloudwatch_logs/files/awslogs.conf } notify: restart awslogs - name: awslogs enabled service: name=awslogs state=started enabled=yes state=started |
■まとめ
しかしこんなに簡単に設定できるのはいいですね。Amazon恐るべし!そういえばcloudwatch logsのログは/var/log/awscli.logにできるのですが、それ自体を監視するとエラーが出るので注意。(OperationalError: database is locked)みたいなエラー吐くはず。
ちなみに(2016年12月)時点での東京リージョンでの利用料金はこんな感じ。
$0.50 : 取り込み GB あたり
$0.03 : GB あたりのアーカイブ/月
参考
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
0件のコメント