我们目前每个ec2实例有多个cloudwatch日志流。这很难调试;在所有实例中查询“ERROR XY”将涉及挖掘每个日志流(耗时)或使用aws cli(耗时的查询)。
我希望有一个日志流组合特定类型的所有实例的日志数据,假设所有“webserver”实例将其“apache2”日志数据记录到一个中央流,并将“php”日志数据记录到另一个中心流。
显然,我仍然希望能够找出哪个日志条目来自哪个实例 - 就像我通过syslogd进行中央日志记录一样。
如何将自定义字段“instance id”添加到cloudwatch中的日志中?
在CloudWatch Logs中组织日志的最佳方法如下:
对于查询,我强烈建议使用Insights功能(我在@ AWS工作时帮助构建了它)。日志流名称将作为特殊的@logStream
字段与每个日志记录一起使用。
您可以在所有实例中查询,如下所示:
filter @message like /ERROR XY/
或者在这样的一个实例中:
filter @message like /ERROR XY/ and @logStream = "instance_id"