使用prometheus-operator构建监控系统 (三) —— 设置自定义告警规则监告警

网友投稿 359 2022-10-10

使用prometheus-operator构建监控系统 (三) —— 设置自定义告警规则监告警

根据生产环境的需求,自定义监控指标,并配置触发告警规则后告警信息自动发送到邮箱

1.清除原来服务默认的监控指标数据

2. 自定义监控指标

apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: labels: prometheus: k8s role: alert-rules name: host-rules namespace: monitoring spec: groups: - name: 主机状态-监控告警 rules: - alert: 主机状态 expr: up == 0 for: 1m labels: status: 非常严重 annotations: summary: "{{$labels.instance}}:服务器宕机" description: "{{$labels.instance}}:服务器延时超过5分钟" - alert: CPU使用情况 expr: 100-(avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)* 100) > 60 for: 1m labels: status: 一般告警 annotations: summary: "{{$labels.mountpoint}} CPU使用率过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }} CPU使用大于60%(目前使用:{{$value}}%)" - alert: 内存使用 expr: 100 -(node_memory_MemTotal_bytes -node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes ) / node_memory_MemTotal_bytes * 100> 80 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} 内存使用率过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }} 内存使用大于80%(目前使用:{{$value}}%)" - alert: IO性能 expr: 100-(avg(irate(node_disk_io_time_seconds_total[1m])) by(instance)* 100) < 60 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} 流入磁盘IO使用率过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }} 流入磁盘IO大于60%(目前使用:{{$value}})" - alert: 网络 expr: ((sum(rate (node_network_receive_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance)) / 100) > 102400 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} 流入网络带宽过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }}流入网络带宽持续2分钟高于100M. RX带宽使用率{{$value}}" - alert: 网络 expr: ((sum(rate (node_network_transmit_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance)) / 100) > 102400 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} 流出网络带宽过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }}流出网络带宽持续2分钟高于100M. RX带宽使用率{{$value}}" - alert: TCP会话 expr: node_netstat_Tcp_CurrEstab > 1000 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} TCP_ESTABLISHED过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }} TCP_ESTABLISHED大于1000%(目前使用:{{$value}}%)" - alert: 磁盘容量 expr: 100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 80 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.mountpoint}} 磁盘分区使用率过高!" description: "{{$labels.instance}}:{{$labels.mountpoint }} 磁盘分区使用大于80%(目前使用:{{$value}}%)"

3. 配置邮箱告警

global: resolve_timeout: 5m smtp_smarthost: 'smtp.163.com:25' smtp_from: 'test@163.com' smtp_auth_username: 'test@163.com' smtp_auth_password: 'GGTEWBFHFGJGCBXFVD' smtp_require_tls: false route: group_by: ['alertname'] group_wait: 30s group_interval: 10s repeat_interval: 30s receiver: 'mail' receivers: - name: 'mail' email_configs: - to: 'test@163.com' send_resolved: true

kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring当环境的资源使用率触发了定义的告警规则之后会自动将告警信息发送到邮箱中

配置一个k8s环境中展示Pod重启次数的监控模板

首先在prometheus的搜索栏中用PromSQL语句筛选示例

选取monitoring名称空间下的所有Pod的重启次数kube_pod_container_status_restarts_total{namespace="monitoring"}

在grafana的展示界面中创建自定义模板

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:实战分布式医疗挂号系统之整合Swagger2到通用模块
下一篇:使用prometheus-operator构建监控系统(二) —— 配置一个redis的监控告警示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~