ps-1 promesql监控alertmanager告警
#统计 nginx Vhost 平均状态码占比
sum(nginx_server_requests{code="2xx",host="onepower.sit.industry-cmcc.com"})/sum(nginx_server_requests{code="total",host="onepower.sit.industry-cmcc.com"})*100
https://blog.51cto.com/u_15127511/2657874
####Mysqld_exporter 监控项解释:https://blog.csdn.net/qq_38925100/article/details/115187969
https://www.cnblogs.com/hujinzhong/p/15001755.html promesql学习文档 https://www.prometheus.wang/promql/prometheus-query-language.html
remote_timeout详解: https://www.cnblogs.com/gavin11/p/12668294.html
#统计平均 CPU
avg(100-(avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance) *100))
#统计平均 内存
avg(100-(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes)/node_memory_MemTotal_bytes*100)
#--------------------------------------------------------------
# CPU使用情况
# 2) cpu使用率:------重点
(1 - sum(rate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[1m])) by (instance) / sum(rate(node_cpu_seconds_total{job="node_exporter"}[1m])) by (instance) )
1) cpu负载情况
node_load1{job="node_exporter"}
node_load5{job="node_exporter"}
node_load15{job="node_exporter"}
3) cpu 空闲模式占比:
sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[1m])) / sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter"}[1m]))
4) cpu user模式占比:
sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter",mode="user"}[1m])) / sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter"}[1m]))
5) cpu system模式占比:
sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter",mode="system"}[1m])) / sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter"}[1m]))
6) nice 模式占比
sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter",mode="nice"}[1m])) / sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter"}[1m]))
7) iowait 模式占比
sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter",mode="iowait"}[1m])) / sum by (instance)(rate(node_cpu_seconds_total{job="node_exporter"}[1m]))
8) cpu 核数
count(node_cpu_seconds_total{job="node_exporter",mode='system'}) by (instance)
#--------------------------------------------------------------
# 内存使用情况
# 2) 内存使用率------重点
(1- (node_memory_Buffers_bytes{job="node_exporter"} + node_memory_Cached_bytes{job="node_exporter"} + node_memory_MemFree_bytes{job="node_exporter"}) / node_memory_MemTotal_bytes{job="node_exporter"})*100
1) 空闲内存占比
node_memory_MemFree_bytes{job="node_exporter",instance=~"$host"}/ node_memory_MemTotal_bytes{job="node_exporter",instance=~"$host"}
3) 缓冲内存
node_memory_Buffers_bytes{job="node_exporter"}
4) 缓存内存
node_memory_Cached_bytes{job="node_exporter"}
5) 空闲内存
node_memory_MemFree_bytes{job="node_exporter"}
6) 交换内存
node_memory_SwapFree_bytes{job="node_exporter"}
7) 已用内存
node_memory_MemTotal_bytes{job="node_exporter"}-(node_memory_Buffers_bytes{job="node_exporter"} + node_memory_Cached_bytes{job="node_exporter"} + node_memory_MemFree_bytes{job="node_exporter"})
#--------------------------------------------------------------
# DISK使用情况
# 1)"/"磁盘使用率(文件系统类型为 ext.?或 xfs的)--------------重点
(node_filesystem_size_bytes{job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/"} - node_filesystem_free_bytes{ job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/"}) / node_filesystem_size_bytes{ job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/"}
(node_filesystem_size_bytes{job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/data"} - node_filesystem_free_bytes{ job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/data"}) / node_filesystem_size_bytes{ job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/data"}
2)"/"磁盘大小
node_filesystem_size_bytes{job="node_exporter",fstype=~"ext.?|xfs", mountpoint="/"}
3)"/"磁盘剩余空间
node_filesystem_free_bytes{fstype="ext4", job="node_exporter",mountpoint="/"}
4)磁盘每秒读取(1h内)
sum by (instance) (rate(node_disk_reads_completed_total{job="node_exporter"}[1h]))
5)磁盘每秒写入(1h内)
sum by (instance)(rate(node_disk_writes_completed_total{job="node_exporter"}[1h]))
6)磁盘每秒读写总数(1h内)
sum by (instance) (rate(node_disk_reads_completed_total{job="node_exporter"}[1h]))+sum by (instance)(rate(node_disk_writes_completed_total{job="node_exporter"}[1h]))
指标注释:
node_disk_writes_completed_total #成功写操作的总次数
node_disk_reads_completed_total #成功读操作的总次数
node_filesystem_size_bytes #文件系统大小
node_filesystem_free_bytes #文件系统空闲空间
#--------------------------------------------------------------
# 网络速率
1)上传速率:
rate(node_network_transmit_bytes_total{job="node_exporter"}[5m])
2)下载速率:
rate(node_network_receive_bytes_total{job="node_exporter"}[5m])
3)TCP连接数:
sum(time() - node_boot_time_seconds{job="node_exporter"})by(instance)
- job_name: "pushgateway"
scrape_interval: 30s
honor_labels: true #加上此配置exporter节点上传数据中的一些标签将不会被pushgateway节点的相同标签覆盖
static_configs:
- targets: ['localhost:9091']
labels:
instance: pushgateway
#远程推送任务
参考文档:
告警:https://blog.51cto.com/u_12965094/2687946
https://www.kancloud.cn/pshizhsysu/prometheus/1803806
https://www.cnblogs.com/jsonhc/p/13702974.html
Alertmanager 是 Prometheus 生态系统中的一个组件,负责处理来自 Prometheus 的告警,并根据配置进行告警的抑制、分组和路由。以下是 Alertmanager 全量配置的详解,包括主要配置项及其作用。
1. 基本配置
global:
resolve_timeout: 5m # 解析超时时间
# 其他全局配置项
2. 告警接收器配置
route:
group_by: ['alertname'] # 按照哪些标签进行分组
group_wait: 30s # 首次告警等待时间
group_interval: 5m # 分组告警的间隔时间
repeat_interval: 3h # 重复告警的间隔时间
routes:
- match:
severity: critical
receiver: 'pagerduty' # 指定接收器
3. 接收器配置
receivers:
- name: 'pagerduty'
pagerduty_configs:
- service_key: 'your_service_key' # PagerDuty 服务密钥
severity: 'critical' # 告警严重性
4. 抑制配置
inhibit_rules:
- source_match:
severity: warning
target_match:
severity: critical
equal: ['alertname', 'cluster'] # 抑制条件
5. 其他配置
templates:
- './alertmanager/template/*.tmpl' # 模板路径
6. 启动配置
在启动 Alertmanager 时,可以通过命令行参数指定配置文件:
./alertmanager --config.file=alertmanager.yml
总结
Alertmanager 的配置文件主要由全局配置、路由配置、接收器配置、抑制规则和模板组成。通过合理配置这些项,可以有效管理和处理告警,确保及时响应和处理。
如果需要更详细的配置示例或特定功能的实现,请告知!
珊瑚海

浙公网安备 33010602011771号