Prometheus语法
...
...
监控平台系列 监控服务端Promethues 监控采集器Exporter 告警服务端Altermanager 告警中间件PrometheusAlert 监控展示Grafana Exporter安装 官方exporter下载地址汇总 Windows-exporter安装 ✅ 程序下载 Windows-exporter的下载地址 选择 windows_exporter-{{版本号}}-amd64.msi 注意是amd64.msi结尾 ✅ 程序安装 将程序上传到服务器桌面,执行以下命令,注意修改程序版本号 不包含mssql监控 msiexec /i C:\Users\Administrator\Desktop\windows_exporter-{{版本号}}-amd64.msi ENABLED_COLLECTORS=cpu,net,os,memory,process,tcp,textfile,cs,logical_disk,service,system /quiet 包含mssql监控 msiexec /i C:\Users\Administrator\Desktop\windows_exporter-{{版本号}}-amd64.msi ENABLED_COLLECTORS=cpu,net,os,memory,process,tcp,mssql,textfile,cs,logical_disk,service,system /quiet ✅ 防火墙开启 如果系统开启了防火墙,那么需要配置防火墙规则放通9182端口 netsh advfirewall firewall add rule name="windows-exporter" dir=in action=allow protocol=TCP localport=9182 ✅ job配置 prometheus.yaml配置 - job_name: windows-exporter scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http file_sd_configs: - refresh_interval: 10s files: - "/etc/config/jobs/windows.yaml" windows.yaml配置(通过文件挂载映射进容器) 多个主机使用不通签 - job_name: 'dev_app_01' static_configs: - targets: ['192.168.1.117:9182'] labels: os: WINDOWS env: dev - job_name: 'test_app_01' static_configs: - targets: ['192.168.2.217:9182'] labels: os: WINDOWS env: test 多个主机使用相同标签 - job_name: 'test_app_01' static_configs: - targets: - 192.168.2.217:9182 - 192.168.2.218:9182 - 192.168.2.219:9182 labels: os: WINDOWS env: test ✅ rule配置 groups: - name: windows主机信息 rules: - alert: CPU使用 expr: round(100 - (avg by (instance) (irate(windows_cpu_time_total{mode="idle"}[5m])) * 100),0.01) > 60 for: 10m labels: severity: 严重 annotations: summary: "{{$labels.instance}} CPU使用率过高!" description: "{{$labels.instance}} CPU使用大于60%(目前使用:{{$value}}%)" - alert: 内存使用 expr: round(100 - ((windows_os_physical_memory_free_bytes / windows_cs_physical_memory_bytes) * 100),0....
监控平台系列 监控服务端Promethues 监控采集器Exporter 告警服务端Altermanager 告警中间件PrometheusAlert 监控展示Grafana 写在前面 在使用之前,有一些常用的概念需要掌握,才能更好的理解为什么需要如此配置prometheus。 Prometheus局限 Prometheus 作为一个基于指标(Metric)的监控系统,在设计上就放弃了一部分数据准确性: 比如在两次采样的间隔中,内存用量有一个瞬时小尖峰,那么这次小尖峰我们是观察不到的; 再比如 QPS、RT、P95、P99 这些值都只能估算,无法和日志系统一样做到 100% 准确,下面也会讲一个相关的坑。 放弃一点准确性得到的是更高的可靠性,这里的可靠性体现为架构简单、数据简单、运维简单。假如你维护过 ELK 或其它日志架构的话,就会发现相比于指标,日志系统想要稳定地跑下去需要付出几十倍的机器成本与人力成本。 既然是权衡,那就没有好或不好,只有适合不适合,我推荐在应用 Prometheus 之初就要先考虑清楚这个问题,并且将这个权衡明确地告诉使用方。 irate与rate区别 irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。 所以官网文档说:irate适合快速变化的计数器,而rate适合缓慢变化的计数器 Prometheus安装