web-dev-qa-db-ja.com

AWS Cloudwatch Agentが変更を取得しない

私は困惑しています。 AWS CloudWatchエージェントによって監視されている2つのログファイルがあります。最初の1つ、 /var/log/nginx/access.log、完全に正常に動作します。二番目、 /var/log/otherserver/access.log、ピックアップされた変更はありません。最終的には、決して--[〜#〜] unless [〜#〜]エージェントを再起動すると、変更が取得され、期待どおりにCloudWatchに送信されます。

/var/log/otherserver/access.logは、エージェントをインストールできない別のサーバーから定期的にrsyncされたログファイルです。コマンドは次のようになります。

rsync -av user@Host:/var/log/access.log /var/log/otherserver/access.log

エージェントは、再起動後に変更を読み取るため、確実にそれを読み取ることができます

設定ファイル内のエントリの位置は重要ではないようです。

Rsyncされたログファイルのログエントリの日付は、サーバーと同じです(すべてUTCです)。

ログファイルを移動すると、エージェントは次のような問題を起こし始めます。

2015-12-14 16:02:26,158 - cwlogs.Push.stream - WARNING - 3344 - Thread-1 - No file is found with given path '/var/log/otherserver/access.log'.

この2番目のログファイルの構成は、最初のログファイル(下記)とほぼ同じです。

[website.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/otherserver/access.log
log_stream_name = master-platform.sh
initial_position = start_of_file
log_group_name = web-access

[app.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/nginx/lax.access.log
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = web-access

誰かが何かの手掛かりを持っていますか?または、あまり気が進まない代替エージェントを提案できますか?

5
lsh

構成に変更を加え続けているため、エージェント状態ファイルが破損している可能性があります。これを修正するには2つの方法があります。

  • オプション1:構成ブロックヘッダーに新しい名前を使用します。
    • つまり、[website.access.log]から[something.else]
  • オプション2:サービスを停止した後、エージェント状態ファイルを削除します。

    Sudo service awslogs stop
    Sudo rm /var/lib/awslogs/agent-state
    Sudo service awslogs start
    

オプション2では、新しい状態ファイルが作成されるときに、最初に重複したログがCloudWatchにプッシュされる場合があることに注意してください。

1
ADTC