古い手順
慣れないうちはこちらの方が楽な気がする。。。
CloudaWatchエージェントをインストール
詳細はこちら。
sudo yum install awslogs
- 収集するログの設定:
sudo vi /etc/awslogs/awslog.conf
- デフォルトでは
/var/log/messages
が入っている
- デフォルトでは
- リージョンの設定:
sudo vi /etc/awslogs/awscli.conf
region = ap-northeast-1
aws_access_key_id
,aws_secret_access_key
を設定
sudo service awslogs start
新しい手順
AWS Systems Managerとの統合が売りだけど、まだ手順が枯れてない感じ。
CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する - Amazon CloudWatch
CloudWatchエージェントのインストール
mkdir AmazonCloudWatchAgent
cd AmazonCloudWatchAgent
wget https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip
unzip AmazonCloudWatchAgent.zip
sudo ./install.sh
CloudWatchエージェントの認証情報を登録
sudo aws configure --profile AmazonCloudWatchAgent
設定ファイルを作成
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
以下の方法で入力すると、カスタムメトリクスがたくさんできるので注意
- OSを選ぶ(Linux/Windows): 1
- ホストのタイプ(EC2/オンプレミス): 1
- CPUやメモリのモニタリングをするか?(はい/いいえ): 1
- コア単位のCPUモニタリングをするか?(はい/いいえ): 1
- EC2の情報を埋め込むか?(はい/いいえ): 1
- 計測単位は?(1秒/10秒/30秒/60秒): 4
- 設定は?(Basic/Standard/Advanced/None): 1(Basic)
- これは意味が分かりませんでした。
- 上の設定(JSONで出力される)で問題ないか?(はい/いいえ): 1
- CloudWatch Log Agentの設定ファイルがあるか?(はい/いいえ): 2
- 初回は「いいえ」になると思います。
- 任意のログファイルをモニタリングするか?(はい/いいえ): 1
- ログファイルのパス:
/var/log/messages
で良さそう?
- ロググループ名: デフォルト
/var/log/messages
のときはmessages
になる。
- 追加でモニタリングするログはあるか?
- 設定をSSMパラメータストアに入れるか?
- 設定をどのような名前でストアに入れるか?
- 何でもいいようですが、
AmazonCloudWatch-
で始まる方が良さそうです。
- 何でもいいようですが、
- パラメータストアを保存するリージョンは?
- 東京リージョンなので
ap-northeast-1
- 東京リージョンなので
- AWSのアクセスキー
CloudWatchエージェントの起動
以下の手順ではなぜか起動しません(後述)。
PARAMETER_STORE=xxx
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:${PARAMETER_STORE} -s
起動できない問題とその回避方法
公式手順の通りにやっても以下のエラーが出ます。
Error in retrieving parameter store content: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
Fail to fetch json config: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
Fail to fetch the config!
これは、以下の環境変数を設定することで回避できます。
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
マニュアル
- Amazon Web Services(AWS)
- cloudwatch: まだありません。