logAlert

用于日志报警检测。
属于source interceptor。 使用示例请参考日志报警

Example

  1. interceptors:
  2. - type: logAlert
  3. matcher:
  4. contains: ["error", "err"]
  5. regexp: ['.*example.*']
  6. ignore: ['.*INFO.*']
  7. sendOnlyMatched: true
  8. additions:
  9. module: "loggie"
  10. alertname: "alert-test"
  11. cluster: "local-cluster"
  12. namespace: "default"
  13. advanced:
  14. enabled: true
  15. mode: [ "noData","regexp" ]
  16. duration: 6h
  17. matchType: "any"
  18. rules:
  19. - regexp: '(?<date>.*?) (?<time>[\S|\\.]+) (<status>[\S|\\.]+) (?<u>.*?) --- (?<thread>\[*?\]) (?<pkg>.*) : (?<message>(.|\n|\t)*)'
  20. matchType: "any"
  21. groups:
  22. - key: status
  23. operator: "eq"
  24. value: WARN
  25. - key: thread
  26. operator: "eq"
  27. value: 200
  28. - regexp: '(?<date>.*?) (?<time>[\S|\\.]+) (?<status>[\S|\\.]+) (?<u>.*?) --- (?<thread>\[.*?\]) (?<pkg>.*) : (?<message>(.|\n|\t)*)'
  29. matchType: "any"
  30. groups:
  31. - key: status
  32. operator: "eq"
  33. value: ERROR

matcher

字段类型是否必填默认值含义
matcher.containsstring数组非必填日志数据包含字符串检测
matcher.regexpstring数组非必填日志数据正则检测
matcher.targetstring非必填body根据日志数据的该字段进行检测,如果进行日志切分或者drop body字段,请填写所需字段

ignore

字段类型是否必填默认值含义
ignorestring数组非必填正则表达式,若匹配,则忽略这条日志,向下传递,可用于告警时排除某些日志

additions

字段类型是否必填默认值含义
additionsmap非必填发送alert时,额外添加的字段,会放在_additions字段中,可用作渲染。

sendOnlyMatched

字段类型是否必填默认值含义
sendOnlyMatchedbool非必填false是否仅将匹配成功的数据发送至sink

advanced

字段类型是否必填默认值含义
enabledbool非必填false是否开启高级匹配模式
modestring列表非必填匹配模式 支持regexpnoData两种,可同时生效。
durationtime.Duration非必填noData模式必填,在一定时间内,没有日志会发出告警。
matchTypestring非必填regexp模式必填,可选any或者all,表示匹配任意或者全部规则rule
rulesRule列表非必填regexp模式必填,匹配规则列表

advanced.rule

字段类型是否必填默认值含义
regexpstring必填正则分组表达式
matchTypestring必填可选any或者all,表示匹配任意或者全部匹配组group
groupsgroup列表必填匹配组列表

advanced.rule.group

字段类型是否必填默认值含义
keystring必填分组匹配之后的键值
operatorstring必填操作符,目前支持eq,gt,lt
valuestring必填目标值