logAlert
用于日志报警检测。
属于source interceptor。 使用示例请参考日志报警。
Example
interceptors:
- type: logAlert
matcher:
contains: ["error", "err"]
regexp: ['.*example.*']
ignore: ['.*INFO.*']
sendOnlyMatched: true
additions:
module: "loggie"
alertname: "alert-test"
cluster: "local-cluster"
namespace: "default"
advanced:
enabled: true
mode: [ "noData","regexp" ]
duration: 6h
matchType: "any"
rules:
- regexp: '(?<date>.*?) (?<time>[\S|\\.]+) (<status>[\S|\\.]+) (?<u>.*?) --- (?<thread>\[*?\]) (?<pkg>.*) : (?<message>(.|\n|\t)*)'
matchType: "any"
groups:
- key: status
operator: "eq"
value: WARN
- key: thread
operator: "eq"
value: 200
- regexp: '(?<date>.*?) (?<time>[\S|\\.]+) (?<status>[\S|\\.]+) (?<u>.*?) --- (?<thread>\[.*?\]) (?<pkg>.*) : (?<message>(.|\n|\t)*)'
matchType: "any"
groups:
- key: status
operator: "eq"
value: ERROR
matcher
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
matcher.contains | string数组 | 非必填 | | 日志数据包含字符串检测 |
matcher.regexp | string数组 | 非必填 | | 日志数据正则检测 |
matcher.target | string | 非必填 | body | 根据日志数据的该字段进行检测,如果进行日志切分或者drop body字段,请填写所需字段 |
ignore
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
ignore | string数组 | 非必填 | | 正则表达式,若匹配,则忽略这条日志,向下传递,可用于告警时排除某些日志 |
additions
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
additions | map | 非必填 | | 发送alert时,额外添加的字段,会放在_additions 字段中,可用作渲染。 |
sendOnlyMatched
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
sendOnlyMatched | bool | 非必填 | false | 是否仅将匹配成功的数据发送至sink |
advanced
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
enabled | bool | 非必填 | false | 是否开启高级匹配模式 |
mode | string列表 | 非必填 | | 匹配模式 支持regexp 和noData 两种,可同时生效。 |
duration | time.Duration | 非必填 | | noData模式必填,在一定时间内,没有日志会发出告警。 |
matchType | string | 非必填 | | regexp模式必填,可选any或者all,表示匹配任意或者全部规则rule |
rules | Rule列表 | 非必填 | | regexp模式必填,匹配规则列表 |
advanced.rule
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
regexp | string | 必填 | | 正则分组表达式 |
matchType | string | 必填 | | 可选any或者all,表示匹配任意或者全部匹配组group |
groups | group列表 | 必填 | | 匹配组列表 |
advanced.rule.group
字段 | 类型 | 是否必填 | 默认值 | 含义 |
---|
key | string | 必填 | | 分组匹配之后的键值 |
operator | string | 必填 | | 操作符,目前支持eq,gt,lt |
value | string | 必填 | | 目标值 |