高薪运维必备Prometheus监控系统企业级实战

zhang123 · · 27 次点击 · · 开始浏览    

获课:yinheit.xyz/14474/

获取ZY↑↑方打开链接↑↑

Prometheus 简介1
Prometheus 是由前 Google 工程师从 2012 年开始在 Soundcloud 以开源软件形式研发的系统监控和告警工具包。2016 年 5 月加入 CNCF 基金会,成为继 Kubernetes 之后的第二个 CNCF 托管项目。
优势:拥有由指标名称和键 / 值对标签标识的多维数据模型;具备强大的查询语言 PromQL;不依赖分布式存储,单个服务节点具有自治能力;时间序列数据通过服务端 HTTP 协议主动拉取获得,也可通过中间网关推送;支持多种类型的图表和仪表盘。
组件及功能1


Prometheus Server:负责收集指标和存储时间序列数据,并提供查询接口。
监控目标:类比于 Zabbix Agent,是 Prometheus 要监控的对象。
短期存储:用于临时性任务或自定义监控等度量值。
Server discovery:支持动态配置服务监控,无需重启 Prometheus Server。
报警功能:支持邮件、微信、钉钉等多种报警方式。
Web 查询接口:需写 PromQL 语句,后期可用 Grafana 替换。
部署与配置


使用 Docker 部署 Prometheus:

bash

mkdir -p /data/prometheus/{data,config}
docker run -d --name=prometheus \
-p 9090:9090 \
-v /data/prometheus/data:/prometheus \
-v /data/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus:v2.47.1 --web.enable-lifecycle

关键配置参数说明:--web.enable-lifecycle:启用配置热加载,避免服务重启。通过 volume 挂载保证配置和数据持久化,推荐固定版本号避免版本漂移问题。
Prometheus 配置文件优化:

yaml

global:
  scrape_interval: 15s
  evaluation_interval: 30s
alerting:
  alertmanagers:
  - scheme: http
    static_configs:
    - targets: ('alertmanager:9093')
rule_files:
- /etc/prometheus/rules/*.yaml
scrape_configs:
- job_name: 'prometheus'
  metrics_path: '/actuator/prometheus'
  static_configs:
  - targets: ('host.docker.internal:9090')
监控指标与 PromQL

CPU 使用率计算:100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100 )
内存利用率计算:(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
智能告警体系建设

分级告警规则示例:紧急级别(Critical):

yaml

- alert: HostOutOfMemory
  expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.05
  for: 3m
  labels:
    severity: critical
  annotations:
    summary: "{{ $labels.instance }} 内存耗尽 (当前值: {{ $value }}%)"


黄金指标(Golden Signals):
yaml

- alert: APIHighErrorRate
  expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.1
  for: 5m


与其他工具集成2
Prometheus 可以与 Grafana、Alertmanager 等工具集成。Grafana 用于数据可视化,提供更丰富的图表和仪表盘展示;Alertmanager 用于管理告警,实现告警的分组、抑制、静默等功能,还可将告警发送到多种渠道,如邮件、即时通讯工具等。
 

27 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传