一、创建报警模版
{{/* 定义消息体片段 */}}
{{ define "my_text_alert_list" }}{{ range . }}
**告警名称**:{{ index .Labels.alertname }}
**告警机器**:
{{- if index .Labels.instance }}
{{ index .Labels.instance }} {{ index .Labels.device }}
{{- else }}
实例信息不可用 {{ index .Labels.device }}
{{- end }}
**告警概要**:{{ index .Annotations.summary }}
**告警详情**:{{ index .Annotations.description }}
**触发时间**: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{ if eq .Status "resolved" }}
**恢复时间**: {{ (.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{ end }}
======= = end = ======{{ printf "\n" }}
{{ end }}{{ end }}
{{/* 定义消息体 */}}
{{ define "my.message2" }}
{{ if gt (len .Alerts.Firing) 0 }}--------**<font color='#FF0000'>发生告警</font>**---------
{{ template "my_text_alert_list" .Alerts.Firing }}
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}-------**<font color='#00FF00'>恢复告警</font>**-------
{{ template "my_text_alert_list" .Alerts.Resolved }}
{{ end }}
{{ end }}
二、创建报警模版title
{{ define "my.title" }}[监控报警]: [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ if gt (.Alerts.Resolved | len) 0 }}, RESOLVED:{{ .Alerts.Resolved | len }}{{ end }}{{ end }}]{{ end }}
三、创建通知联络点(当前文章忽略钉钉群聊创建机器人,自行百度如果不会)
选择上述步骤中创建报警模版的title以及报警消息体
1).Edit Title
2). Edit Message
四、设置通知策略(当前选择编辑默认通知策略)
五、创建报警规则
方法一、
选择已有的监控仪表盘选择则一个监控项;更多--->新建报警规则
采用方法一可能会有多个查询条件保留一个即可
方法二、
1). 警报--->警报规则--->New alter rule
2). 定义规则跟名称,cpu大于95%时则会发生告警
查询语句(摘抄于grafana配置告警规则(二)_grafana 告警规则详解-CSDN博客)
**linux告警规则**
CPU大于90%规则
100 - (avg by (instance,job)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
内存大于90%规则
(1 - (node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes)* 100 >90
磁盘大于90%规则
100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 90
网络上传大于50mb/s规则
((sum(rate (node_network_transmit_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[2m])) by (instance,job)) / 100) > 51200
网络下载大于50mb/s规则
((sum(rate (node_network_receive_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[2m])) by (instance,job)) / 100) > 51200
ssl证书小于10天规则
probe_ssl_earliest_cert_expiry - time() < 86400 * 10
**windows告警规则**
CPU大于90%规则
100 - (avg by (instance,job,env) (rate(windows_cpu_time_total{mode="idle"}[2m])) * 100) > 90
磁盘大于90%规则
100 - 100 * ((windows_logical_disk_free_bytes / 1024 / 1024 ) / (windows_logical_disk_size_bytes / 1024 / 1024)) > 90
内存大于90%规则
100 - ((windows_os_physical_memory_free_bytes / windows_cs_physical_memory_bytes) * 100) > 90
网络上传大于50mb/s规则
((sum(irate(windows_net_bytes_sent_total{nic!~'isatap.*|VPN.*'}[2m])) by (instance,job,env)) / 100) > 51200
网络下载大于80mb/s规则
((sum(irate(windows_net_bytes_received_total{nic!~'isatap.*|VPN.*'}[2m])) by (instance,job,env)) / 100) > 81920
3). 查询数据设置细节(测试时可以范围设置小些方便观察效果)
4). 设置报警规则组
5). 设置报警规则组的报警评估频率
6). 设置评估失败或查询未返回任何数据时的警报行为(当前设置为正常什么也不做,可自定义行为。)
7). 设置使用的通知的联络点
8). 设置报警要发送的描述信息
9). 最终钉钉效果