Amazon CloudWatch エージェントをインストールし、CentOS7 でログ監視をする設定手順について解説します。
/var/log/messages などのログファイルを監視して特定のエラーなどが出力されたらアラートメールを送信するということは Zabbix で既に設定されている企業も多いかと思いますが、今後クラウド環境、特に AWS 環境に移行する場合は CloudWatch エージェントを利用する方向になると思います。
Amazon Linux 2 の場合は以下の記事を参考にしてください。
【AWS】【AmazonLinux2】CloudWatch エージェントでログ監視をする設定手順【awslogsd】
手順概要
今回の設定手順は以下のようになりました。
- CloudWatch エージェントをインストール
- CloudWatch エージェントの設定
- CloudWatch の設定
- 動作確認
環境
OS は CentOS 7 です。
■OS
[root@CentOS7 ~]# cat /etc/redhat-release |
CloudWatch エージェントがサポートされている OS やバージョン情報があるので事前に確認しておきます。
【AWS】CloudWatch エージェントのサポートOSとバージョン情報(2019年9月16日更新)
AWS AMI は「CentOS 7 (x86_64) – with Updates HVM」を利用しました。
CloudWatch エージェントをインストール
以下の記事は RedHat に CloudWatch エージェントをインストールする手順です。
【AWS】CloudWatch エージェントをインストールして EC2 インスタンス(RedHat Linux)のメモリ使用率を取得する設定手順
root にスイッチします。
[centos@CentOS7 ~]$ sudo su – |
wgetコマンドをインストールします。
[root@CentOS7 ~]# yum install wget |
■CentOSのダウンロードリンク
■参考
コマンドラインを使用して CloudWatch エージェントをダウンロードおよび設定する
以下のコマンドで CentOS 用の CloudWatch エージェントのインストールパッケージをダウンロードします。
[root@CentOS7 ~]# wget https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm |
[root@CentOS7 ~]# ls -lh |
以下のコマンドで CloudWatch エージェントをインストールします。
[root@CentOS7 ~]# yum install amazon-cloudwatch-agent.rpm |
「/opt/aws/amazon-cloudwatch-agent/bin/」ディレクトリに移動して「amazon-cloudwatch-agent-config-wizard」ファイルを確認します。
[root@CentOS7 ~]# cd /opt/aws/amazon-cloudwatch-agent/bin/ |
「amazon-cloudwatch-agent-config-wizard」コマンドを実行します。
[root@CentOS7 bin]# ./amazon-cloudwatch-agent-config-wizard |
CloudWatch エージェントのステータスを確認します。
■CloudWatch エージェントのステータス確認
[root@CentOS7 bin]# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status |
CloudWatch エージェントを起動します。
■CloudWatch エージェントの起動(コンフィグを指定して起動する)
- -a fetch-config ← この json config をエージェントの唯一の構成として使用します。
- -m ec2 ← エージェントが EC2 インスタンス上にあることを示します。
- -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json ← /opt/aws/amazon-cloudwatch-agent/bin/config.json ファイルをコンフィグファイルとして読み込みます。
- -s ← エージェント構成の変更後にエージェントを再起動します。
[root@CentOS7 amazon-cloudwatch-agent.d]# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s |
※失敗パターン
■CloudWatch エージェントの起動(コンフィグを読んでくれないのでログ取得ができない)
- -m ec2 ← エージェントが EC2 インスタンス上にあることを示します。
- -a start ← エージェントを起動します。
[root@CentOS7 bin]# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a start |
上記コマンドではコンフィグ(/opt/aws/amazon-cloudwatch-agent/bin/config.json)を指定していないためか CloudWatch ログを取得できませんでした。
■原因
amazon-cloudwatch-agent-config-wizard コマンドで設定を作りますが、その後失敗したパターンのように単純に「amazon-cloudwatch-agent」エージェントを起動しただけでは、直前に amazon-cloudwatch-agent-config-wizard コマンドで設定した値が反映されません。
そのため、一度「/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s 」コマンドで設定を読み込む必要があります。
このコマンドで「/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml」と「/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json」が更新されます。
再度 CloudWatch エージェントのステータスを確認します。
■CloudWatch エージェントのステータス確認
[root@CentOS7 bin]# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status |
amazon-cloudwatch-agent-ctl コマンド
■amazon-cloudwatch-agent-ctl コマンドのヘルプ
[root@CentOS7 ~]# amazon-cloudwatch-agent-ctl -help
|
systemctl コマンドでの起動・停止・ステータス確認
■ステータス確認(停止中)
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl status amazon-cloudwatch-agent.service -l |
■起動
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl start amazon-cloudwatch-agent.service |
■ステータス確認(起動中)
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl status amazon-cloudwatch-agent.service -l |
■停止
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl stop amazon-cloudwatch-agent.service |
■再起動
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl restart amazon-cloudwatch-agent.service |
■登録状況の確認
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl list-unit-files amazon-cloudwatch-agent.service |
■自動起動の登録
[root@CentOS7 amazon-cloudwatch-agent.d]# systemctl enable amazon-cloudwatch-agent.service |
動作確認
CloudWatch ダッシュボードに移動し、左側ペインより「ログ」を選択します。
作成したロググループの「messages」をクリックします。
対象のログストリーム(インスタンスID)をクリックします。
下図のように /var/log/messages の内容を取得していることを確認します。
コメント