5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CloudWatch-Logs を利用としたら AWS-CentOSにインストール出来なかった話

Last updated at Posted at 2019-05-04

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で見えるようになりました。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?