Amazon CloudWatch日志代理忽略日志行的第一个字符

时间:2017-06-16 16:32:06

标签: amazon-cloudwatch amazon-cloudwatchlogs

如果我将一批n个测试记录添加到我的日志文件中,则awslogs代理会错误地忽略我添加的一批行的第一行的第一个字符。这是完全可重复的。因此,如果我使用vi附加以下测试日志行:

2017-06-16 15:20:01,123 this line will not get correctly parsed. first character in date string will be skipped.
2017-06-16 15:21:23,456 this will get parsed. 1
2017-06-16 15:22:23,456 this will get parsed. 2
2017-06-16 15:23:23,456 this will get parsed. 3
2017-06-16 15:24:23,456 this will get parsed. 4
2017-06-16 15:25:23,456 this will get parsed. 5
2017-06-16 15:26:23,456 this will get parsed. 6
2017-06-16 15:27:23,456 this will get parsed. 7

第一行中的前导2被日志代理省略。在CloudWatch Logs Web控制台中,事件显示为017-06-16 15:20:01,123 this line will...,日期时间字符串未成功解析,日志事件必须使用上一个日志的时间戳。

在我将日志事件一次添加到文件的常见情况下,每行的第一个字母将被忽略,并且时间戳字符串无法正确解析。如果我在点击vi保存之前在:w附加多行,则只有第一行会遇到此问题,并且批量中的其他行会被正确摄取。

我使用touch创建了日志文件(作为测试),并且仅使用vi手动添加了行,因此我不认为这是文件编码问题。

我使用的是大多数标准默认配置。

我的CloudWatch代理配置文件:

[general]
state_file = /var/awslogs/state/agent-state

[/var/log/myapp/app.log]
file = /var/log/myapp/app.log
log_group_name = MyAppLogGroup
log_stream_name = MyAppLogStream
datetime_format=%Y-%m-%d %H:%M:%S,%f

然后我从https://s3.amazonaws.com//aws-cloudwatch/downloads/latest/awslogs-agent-setup.py

下载最新的设置脚本

并运行sudo ./awslogs-agent-setup.py -n -r us-west-2 -c cloudwatch_logs.config

1 个答案:

答案 0 :(得分:1)

尝试设置

initial_position = start_of_file
显式配置文件中的

选项,你会得到相同的行为吗?