我使用nohup在Master内启动Ansible剧本,该剧本是通过AWS Lambda的boto3通过boto3生成的。 >因此,我想为此设计/构建一个可靠的监视系统。现在,我正在将nohup的日志写入master内的tasks.log文件,并在Ansible播放完成后将其推入商店(目前为S3)。
是否存在更优雅(和/或)更好的方法来执行相同的操作?而且,是否有好的工具可以在此过程中为我提供帮助?

评论

ELK / filebeat周围的一些东西来推送日志会是一个有趣的选择吗?

@Tensibai是的,我们也在探索ELK堆栈:)。但是,就目前而言,S3已经足够了。

我真的不确定你到底在追求什么:p

您想了解什么?

这些天,当重定向到日志文件并在后台运行时,使用nohup似乎是愚蠢的。

#1 楼

我不确定这是最佳实践,但是我要做的是使用filebeat几乎实时读取日志并将其推送到ElasticSearch。 />
直接使用filebeat进行Elasticsearch的缺点是事件发生的时间将是探矿者读取事件的时间,如果您的日志有时间戳记,则可以“产生”它们的顺序,而不是产生它们的顺序(来自多个工作人员) )。

您可以在两者之间添加Logstash,从filebeat发送到logstash,然后发送到elasticsearch。 Logstash能够解释您的日志并将其拆分为多个字段以再次搜索,就像您解析日志中的日期一样,因此事件将以正确的时间戳存储。

您可以直接使用logstash读取日志,但是它占用了大量资源,因此我将其分开以免影响工作人员。

如果您从x-pack购买许可证,则可以直接从elasticsearch添加消息警报。

如果您想摆脱维护Logstash的负担,可以使用logmatic.io之类的服务为您提供完整的堆栈,您只需要推送日志,就可以从库存中进行大量解析。