TL;DR
CloudWatchLogがインストール出来なかった。
yumからのインストールがAmazon Linux専用だった。しょうがないのでCentOSでインストール頑張った。
AWSLogsインストール
この辺を参考にインストールしてみる
Zabbixよりも超カンタン!AWSの監視ならCloudWatchが便利すぎる
逆引きマニュアル: AWS: CloudWatch エージェントをEC2に入れる方法
sudo yum install -y awslogs
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
epel/x86_64/metalink | 17 kB 00:00:00
* base: ftp.iij.ad.jp
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: ftp.iij.ad.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 3.4 kB 00:00:00
google-chrome | 1.3 kB 00:00:00
mariadb | 2.9 kB 00:00:00
nginx | 2.9 kB 00:00:00
remi-safe | 3.0 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/8): epel/x86_64/updateinfo | 991 kB 00:00:00
(2/8): extras/7/x86_64/primary_db | 201 kB 00:00:00
(3/8): google-chrome/primary | 1.7 kB 00:00:00
(4/8): remi-safe/primary_db | 1.4 MB 00:00:00
(5/8): epel/x86_64/primary_db | 6.7 MB 00:00:00
(6/8): updates/7/x86_64/primary_db | 4.2 MB 00:00:00
(7/8): nginx/x86_64/primary_db | 45 kB 00:00:01
(8/8): mariadb/primary_db | 70 kB 00:00:01
google-chrome 3/3
パッケージ awslogs は利用できません。
エラー: 何もしません
無慈悲なエラーに遭遇。
気を取り直してもう一度。
sudo yum install awslogs
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: ftp.iij.ad.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
パッケージ awslogs は利用できません。
エラー: 何もしません
変わらず無慈悲。
どうやら awslogs
をコマンドからインストール出来るのは Amazon Linux
専用の様でした。
AWSLogsインストール(Curlから)
気を取り直してこの辺を参考にしながら作業再開。
CloudWatch Logsを使ってログを集める!
awslogs-agent-setup.pyの設定
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
上記のリンク先を参考に /var/awslogs/etc/config/awslogs.conf
に下記の記載を先に実施。
※LaravelのAPサーバーのため、LaravelのLogとLinuxのLogを取得する設置を実施。
※awslogsの設定方法についてはこの辺がとても参考になる。
CloudWatch LogsでAmazonLinux上のApacheエラーログを監視する
Amazon CloudWatch Logsを試してみる
[general]
state_file = /var/awslogs/state/agent-state
[/var/log/messages]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = /var/log/messages
initial_position = start_of_file
log_group_name = {hostname}
[laravel-web.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/www/laravel/storage/logs/laravel-web-*.log
buffer_duration = 5000
log_stream_name = laravel-web.log
initial_position = start_of_file
log_group_name = {hostname}
[laravel-batch.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/www/laravel/storage/logs/laravel-batch-*.log
buffer_duration = 5000
log_stream_name = laravel-batch.log
initial_position = start_of_file
log_group_name = {hostname}
で、下記コマンドを実行
sudo python ./awslogs-agent-setup.py --region ap-northeast-1
Choose Log Stream name:
1. Use EC2 instance id.
2. Use hostname.
3. Custom.
Enter choice [1]:
Choose Log Event timestamp format:
1. %b %d %H:%M:%S (Dec 31 23:59:59)
2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
4. Custom
Enter choice [1]:
Choose initial position of upload:
1. From start of file.
2. From end of file.
Enter choice [1]:
More log files to configure? [Y]: Y
Path of log file to upload [/var/log/messages]: /var/log/messages
Destination Log Group name [/var/log/messages]: /var/log/messages
Choose Log Stream name:
1. Use EC2 instance id.
2. Use hostname.
3. Custom.
Enter choice [1]: 1
Choose Log Event timestamp format:
1. %b %d %H:%M:%S (Dec 31 23:59:59)
2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
4. Custom
Enter choice [1]: 3
Choose initial position of upload:
1. From start of file.
2. From end of file.
Enter choice [1]: 1
More log files to configure? [Y]: n
Step 5 of 5: Setting up agent as a daemon ...DONE
------------------------------------------------------
- Configuration file successfully saved at: /var/awslogs/etc/awslogs.conf
- You can begin accessing new log events after a few moments at https://console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logs:
- You can use 'sudo service awslogs start|stop|status|restart' to control the daemon.
- To see diagnostic information for the CloudWatch Logs Agent, see /var/log/awslogs.log
- You can rerun interactive setup using 'sudo python ./awslogs-agent-setup.py --region ap-northeast-1 --only-generate-config'
------------------------------------------------------
※一部、AWSのKEYを求められる部分に関する記載は省略しています。
/var/awslogs/etc/config/awslogs.conf
無視されている!?
というか、Generateされた設定ファイルの保存先がそもそも違っていますね。
/var/awslogs/etc/awslogs.conf
ですので、こちらに編集内容をコピーして、再起動+ついでに自動起動設定。
sudo systemctl start awslogs
sudo systemctl enable awslogs
これでAWS-CentOSにAWSLogsをインストールして、CloudWatch-Logsで見えるようになりました。