今更で恐縮です。
有用性は認識しつつもちゃんとしたことnないシリーズです。
インストールと実行
yum install -y awslogs systemctl restart awslogsd systemctl enable awslogsd
configを修正
cd /etc/awslogs vi awscli.conf
regionを変更
region = us-east-1
↓
region = ap-northeast-1
[plugins] cwlogs = cwlogs [default] region = ap-northeast-1
cloudwatchへ送りたいログの設定
設定ファイルは以下
/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 [HttpdAccessLog] datetime_format = %d/%b/%Y:%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 = /HttpdAccessLog [/var/log/audit/audit.log] file = /var/log/audit/audit.log buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = /var/log/audit/audit.log [HttpdErrorLog] datetime_format = %d/%b/%Y:%H/%M/%S file = /var/log/httpd/error_log buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = /HttpdErrorLog [SecureLog] datetime_format = %d/%b/%Y:%H/%M/%S file = /var/log/secure buffer_duration = 5000 log_stream_name = {hostname} initial_position = start_of_file log_group_name = /SecureLog
各設定はそれぞれ上から 1.ログの時間フォーマット(正しいフォーマットだと時間も表示できる) 2.ログイベントのバッチ期間(単位ms) 3.ロググループ内のストリーム名(インスタンス単位となるもの) 4.ログの読み込み位置(start or end) 5.ロググループ名
こんな感じでcloudwatchlogに出力される ロググループ一覧
ロググループ内のストリーム一覧
ストリームの中身
[追記(2019/05/09)] インスタンスに「Cloudwatchlog」のロールを割り当てましょう
まとめ
これでインスタンスへSSHしなくてもログが確認できて楽できます!!
このままではずっとcloudwatchへログが吐き出され続けで溜まって行くだけです。
見づらくなってくるのである程度のログはS3へアーカイブしましょう。
その手順は別で。