CloudWatch解析带有通配符的@message内容的时候碰到问题, 如何解决?

0

【以下的问题经过翻译处理】 如果有实际的文档资料,我为此道歉,因为我已经花了数小时寻找解决方案。作为一个Oracle数据库管理员,我需要监控某些日志文件以查找特定字符串。对于监听器日志,其中一种类型的消息包含 "service_update * <db_name> * STATUS * [0 or non-zero]"。我可以解析到第一个星号之前的所有内容,但是即使使用双引号作为分隔符,我仍然无法确定如何包含该字符串的结尾部分。具体而言,我需要在出现非零状态的情况下触发警报。

类似地,对于警报日志,我需要标记包含 "ORA-" 错误消息的消息,但不包括 'ORA-1'。非常感谢您提前的帮助。

profile picture
EXPERTE
gefragt vor 6 Monaten13 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你好,感谢你的询问!

虽然我对Oracle日志的完整格式并不完全熟悉,但希望这些示例能对你有所帮助。同时,我不太清楚你是尝试使用Logs Insights解析这些日志,还是为了在日志组上设置Metric Filter进行警报设置,所以我将为两者提供示例。

为了进行测试,我使用了基于你提供的片段的虚构样本日志消息。以下示例假设日志以空格分隔:

2022-04-13 00:00:28 service_update DB_1 STATUS * 0
2022-04-13 00:00:29 service_update DB_1 STATUS * 1
2022-04-13 00:00:30 service_update DB_1 STATUS * 1
2022-04-13 00:00:31 service_update DB_1 STATUS * 1
2022-04-13 00:00:32 service_update DB_1 STATUS * 1
2022-04-13 00:00:33 service_update DB_1 STATUS * 0
2022-04-13 00:00:34 service_update DB_1 STATUS * 1
2022-04-13 00:00:35 service_update DB_1 STATUS * 1
2022-04-13 00:00:36 service_update DB_1 STATUS * 0
2022-04-13 00:00:37 service_update DB_1 STATUS * 1
2022-04-13 00:00:38 service_update DB_1 STATUS * 1
2022-04-13 00:00:39 service_update DB_1 STATUS * 0
2022-04-13 00:00:40 service_update DB_1 STATUS * 1

在Logs Insights中,通过解析字符串为七个独特字段,以下查询将返回仅包含状态不等于0的日志消息:

fields @timestamp
| parse @message "* * * * * * *" as date, time, action, db, type, asterisk, status
| filter status!=0
| sort time desc

同样地,如果你想在日志组上创建一个Metric Filter,以便生成一个非零状态的指标以创建警报,以下Metric Filter模式可以成功解析和筛选出status!=0:

[date, time, action, db, type, asterisk, status!=0]

另外,针对你的警报日志(再次假设是以空格分隔的情况),考虑到以下示例日志:

2022-04-13 00:00:28 service_update DB_1 STATUS ORA-1 0
2022-04-13 00:00:29 service_update DB_1 STATUS ORA-2 1
2022-04-13 00:00:30 service_update DB_1 STATUS ORA-3 1
2022-04-13 00:00:31 service_update DB_1 STATUS ORA-8 1

你可以生成一个Metric Filter模式,以监视并仅筛选包含 "ORA-*" 的日志,但不包括 "ORA-1":

[date, time, action, db, type, error!=ORA-1, status]

希望这对你有所帮助,如果我的假设是错误的,请让我知道!

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen