1. [root@VM_0_48_centos prometheus]# cat alertmanager-configmap.yaml
  2. apiVersion: v1
  3. kind: ConfigMap
  4. metadata:
  5. name: alertmanager-config
  6. namespace: kube-system
  7. labels:
  8. kubernetes.io/cluster-service: "true"
  9. addonmanager.kubernetes.io/mode: EnsureExists
  10. data:
  11. alertmanager.yml: |
  12. global:
  13. resolve_timeout: 5m
  14. smtp_smarthost: 'smtp.163.com:25'
  15. smtp_from: 'xjq18125012766@163.com'
  16. smtp_auth_username: 'xjq18125012766@163.com'
  17. smtp_auth_password: 'test123'
  18. smtp_require_tls: false
  19.  
  20. route:
  21. group_by: ['alertname']
  22. group_wait: 10s
  23. group_interval: 30s
  24. repeat_interval: 10s
  25. receiver: 'mail'
  26.  
  27. receivers:
  28. - name: 'mail'
  29. email_configs:
  30. - to: '2654071080@qq.com'
  31. [root@VM_0_48_centos prometheus]# cat prometheus-rules.yaml
  32. apiVersion: v1
  33. kind: ConfigMap
  34. metadata:
  35. name: prometheus-rules-config
  36. namespace: kube-system
  37. labels:
  38. kubernetes.io/cluster-service: "true"
  39. addonmanager.kubernetes.io/mode: EnsureExists
  40. data:
  41. pods.yml: |
  42. groups:
  43. - name: pod.rules
  44. rules:
  45. - alert: InstanceDown
  46. expr: up == 0
  47. for: 2m
  48. labels:
  49. severity: error
  50. annotations:
  51. summary: "监控采集器{{ $labels.instance }}停止工作"
  52. value: "{{ $value }}"
  53.  
  54. - alert: PodSvcDown
  55. expr: probe_success == 0
  56. for: 1m
  57. labels:
  58. severity: error
  59. annotations:
  60. summary: "容器代理服务{{ $labels.instance }}停止工作"
  61. value: "{{ $value }}"
  62.  
  63. - alert: MysqlCon
  64. expr: MysqlCon_metric > 40
  65. for: 1m
  66. labels:
  67. severity: warning
  68. annotations:
  69. summary: "mysql连接数过高"
  70. value: "{{ $value }}"
  71.  
  72. - alert: PodCpuUsage
  73. expr: sum by(pod_name, namespace) (rate(container_cpu_usage_seconds_total{image!=""}[1m])) * 100 > 80
  74. for: 5m
  75. labels:
  76. severity: warning
  77. annotations:
  78. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod_name }} CPU使用率超过80%"
  79. value: "{{ $value }}"
  80.  
  81. - alert: PodMemoryUsage
  82. expr: sum(container_memory_rss{image!=""}) by(pod_name, namespace) / sum(container_spec_memory_limit_bytes{image!=""}) by(pod_name, namespace) * 100 != +inf > 80
  83. for: 5m
  84. labels:
  85. severity: warning
  86. annotations:
  87. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod_name }} 内存使用率超过80%"
  88. value: "{{ $value }}"
  89.  
  90. - alert: PodFailed
  91. expr: sum (kube_pod_status_phase{phase="Failed"}) by (pod,namespace) > 0
  92. for: 1m
  93. labels:
  94. severity: error
  95. annotations:
  96. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod }} pod status is Failed"
  97. value: "{{ $value }}"
  98.  
  99. - alert: PodPending
  100. expr: sum (kube_pod_status_phase{phase="Pending"}) by (pod,namespace) > 0
  101. for: 1m
  102. labels:
  103. severity: error
  104. annotations:
  105. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod }} status is Pending"
  106. value: "{{ $value }}"
  107.  
  108. - alert: PodNetworkReceive
  109. expr: sum (rate (container_network_receive_bytes_total{image!="",name=~"^k8s_.*"}[5m]) /1000) by (pod_name,namespace) > 30000
  110. for: 5m
  111. labels:
  112. severity: warning
  113. annotations:
  114. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod_name }} 接受到的网络入流量大于30MB/s"
  115. value: "{{ $value }}K/s"
  116.  
  117. - alert: PodNetworkTransmit
  118. expr: sum (rate (container_network_transmit_bytes_total{image!="",name=~"^k8s_.*"}[5m]) /1000) by (pod_name,namespace) > 30000
  119. for: 5m
  120. labels:
  121. severity: warning
  122. annotations:
  123. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod_name }} 传输的网络出流量大于30MB/s"
  124. value: "{{ $value }}K/s"
  125.  
  126. - alert: PodRestart
  127. expr: sum (changes (kube_pod_container_status_restarts_total[1m])) by (pod,namespace) > 0
  128. for: 5s
  129. labels:
  130. severity: warning
  131. annotations:
  132. summary: "容器ns: {{ $labels.namespace }} | pod: {{ $labels.pod }} pod is restart"
  133. value: "{{ $value }}"
  134. nodes.yml: |
  135. groups:
  136. - name: node.rules
  137. rules:
  138. - alert: NodeFilesystemUsage
  139. expr: 100 - (node_filesystem_free_bytes{device="rootfs"} / node_filesystem_size_bytes{device="rootfs"} * 100) > 85
  140. for: 1m
  141. labels:
  142. severity: warning
  143. annotations:
  144. summary: "主机 {{ $labels.instance }} : {{ $labels.mountpoint }} 分区使用率超过80%"
  145. value: "{{ $value }}"
  146.  
  147. - alert: NodeMemoryUsage
  148. expr: 100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100 > 80
  149. for: 5m
  150. labels:
  151. severity: warning
  152. annotations:
  153. summary: "主机 {{ $labels.instance }} 内存使用率超过80%"
  154. value: "{{ $value }}"
  155.  
  156. - alert: NodeCPUUsage
  157. expr: 100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100) > 80
  158. for: 5m
  159. labels:
  160. severity: warning
  161. annotations:
  162. summary: "主机 {{ $labels.instance }} CPU使用率超过80%"
  163. value: "{{ $value }}"

2、展示结果

k8s全方位监控中-常用rules配置的更多相关文章

  1. 前端Vue中常用rules校验规则

    前提 在 vue开发中,难免遇到各种表单校验,这里整理了网络上和自己平时高频率用到的一些校验方法.如果错误欢迎指出,后期不断补充更新. 1.是否合法IP地址 export function valid ...

  2. Apache运维中常用功能配置笔记梳理

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  3. k8s全方位监控-prometheus-alertmanager部署-配置第一条告警邮件

    1.alertmanager告警插件部署 [root@VM_0_48_centos prometheus]# cat alertmanager-pvc.yaml apiVersion: v1 kind ...

  4. k8s全方位监控-prometheus-配置文件介绍以及基于文件服务发现

    1.scrape_configs 参数介绍 # 默认的全局配置 global: scrape_interval: 15s # 采集间隔15s,默认为1min一次 evaluation_interval ...

  5. k8s全方位监控-prometheus部署

    1.k8s 监控资源对象 2. prometheus简单介绍. https://github.com/prometheus •多维数据模型:由度量名称和键值对标识的时间序列数据•PromSQL:一种灵 ...

  6. k8s全方位监控 -prometheus实现短信告警接口编写(python)

    1.prometheus短信告警接口实现(python)源码如下: import subprocess from flask import Flask from flask import reques ...

  7. maven的pom.xml配置文件中常用的配置标签解析(2018-03-13)

    来自:https://www.cnblogs.com/Nick-Hu/p/7288198.html 拿过来记录下 <project xmlns="http://maven.apache ...

  8. vue-cli3.x中的webpack配置,优化及多页面应用开发

    官方文档 vue-cli3以下版本中,关于webpack的一些配置都在config目录文件中,可是vue-cli3以上版本中,没有了config目录,那该怎么配置webpack呢? 3.x初始化项目后 ...

  9. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

随机推荐

  1. makefile 编译多个目标

    1.静态库libtools.a源码 libtools.h #ifndef tools_h_ #define tools_h_ int sub(int x,int y); int mul(int x,i ...

  2. JOISC 2017

    Day1 「JOISC 2017 Day 1」开荒者 首先观察部分分发现分档很多,于是考虑一步步思考上来. 首先有一点关键观察(一): 风吹的顺序是无所谓的,令分别往东.西.南.北吹了 \(r, l, ...

  3. 【转载】Locust实现集合点

    直接编写接口事务脚本对后台接口进行测试:有时测试需要让所有并发用户完成初始化后再进行压力测试,这就需要类似于LoadRunner中的集合点的概念,由于框架本身没有直接封装,有如下办法实现: from ...

  4. 论java中System.arrayCopy()与Arrays.copyOf()的区别

    如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 首先先说System. ...

  5. Shell循环练习题

    Shell循环练习题 目录 Shell循环练习题 1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和.奇数和 ...

  6. 一文说透https中的s是什么?

    一.HTTP 与 HTTPS 有哪些区别? 1. HTTP 是超文本传输协议,信息是明文传输,存在安全风险.HTTPS ,是在 TCP 和网络层之间加入了 SSL/TLS 安全协议,也就是安全套接字层 ...

  7. 在VMware上安装Linux虚拟机

    1.新建虚拟机 2.选择典型安装 3.点击稍后安装操作系统 4.选择类型和版本 5.选择一个英文路径 6. 7.调整硬件 8. 9. 10.选择第一项 11.选择中文 12.选择最小安装 13. 14 ...

  8. 基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台

    1.板卡概述 板卡由我公司自主研发,基于6UCPCI架构,处理板包含双片TI DSP TMS320C6678芯片:一片Xilinx公司FPGA XC7K420T-1FFG1156 芯片:六个千兆网口( ...

  9. opencv笔记--Kmeans

    在图像分割中,使用 kmeans 算法可以实现图像区域基本分割.如果一幅图像被分为两类,kmeans 分割效果与  ostu 算法基本一致,具体如下图:    kmeans 将图像灰度聚类为 k 类, ...

  10. 论文解读(DAEGC)《Improved Deep Embedded Clustering with Local Structure Preservation》

    Paper Information Title:<Attributed Graph Clustering: A Deep Attentional Embedding Approach>Au ...