如何解决如何为cloudwatch日志事件创建JSON过滤器?
在我的cloudwatch日志中,有三个不同的Sensor日志事件,分别是OK(正常),Warning(警告)和Critical(严重)状态。具有所有状态代码的单个传感器的参考类似,
JSON日志事件:
2020-08-27T19:30:06.998+05:30 {" NumberOfThreads": "Warning"}
2020-08-27T19:43:11.996+05:30 {" NumberOfThreads": "Ok"}
2020-08-27T19:43:11.996+05:30 {" NumberOfThreads": "Critical"}
我想应用“ NumberOfThreads!= OK”之类的过滤器,这意味着该过滤器应该能够为紧急状态或警告状态创建警报。
基于文本的日志事件;
2020-08-26T13:05:08.741+05:30 Elasticsearch Ok
2020-08-26T13:05:08.992+05:30 Elasticsearch Warning
2020-08-26T13:05:08.992+05:30 Elasticsearch Critical
我能够以简单的文本格式为“ NumberOfThreads:警告”和“ NumberOfThreads:严重”创建每个过滤器。在这两种方法中,是否都可以选择定义仅选择Elasticsearch严重或警告状态的过滤器?请帮助我以文本或JSON格式解决此问题
我的脚本:
SENSOR=$(curl https://mywebpage/admin/monitoring/Elsticsearch/ | awk -F"Sensor<\/th><td>" '{print $2}' |awk -F"<\/td></tr>" '{print $1}')
STATUS=$(curl https://mywebpage/admin/monitoring/Elsticsearch/ | awk -F"Status</th><td>" '{print $2}' |awk -F"</td></tr><tr><th>" '{printf $1}')
echo {\"datetime\": "$TIME",\"$SENSOR\": \"$STATUS\"} >> zoop.json
解决方法
由于日志输出结构的定义不明确,因此无法使用基于文本的过滤器来获得类似逻辑的文本。
唯一的解决方案是,从您的应用程序中,您需要再次将其日志输出重新定义为定义良好的基于JSON的日志,以便可以开始使用JSON(而不是TEXT)过滤日志。
{"datetime": 2020,"thread": "ok"}
以下是过滤模式的示例:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。