一文看懂如何用prometheus+grafana体系监控nginx服务
概述
Prometheus 服务本地已经启动了,接下来,需要安装并运行 Exporter,它的主要作用是持续输出监控的组件信息并格式化,同时提供 Http 接口供 Prometheus 服务来抓取。Exporter 也是通过 GO 语言编写的,Prometheus GitHub 已经为我们提供了很多实用的 Exporter,直接拿来使用即可。
前面已经介绍了被监控端nginx的部署部分,今天主要介绍下监控端的一些配置。
一、Nginx监控在Prometheus的数据汇总
常用监控汇总表达式:
DomainName对应nginx conf里的server_name,这里可以根据不同的server_name和upstream分别进行qps、2xx/3xx/4xx/5xx的状态码监控,另外也可以监控nginx每台后端server的qps和后端接口响应时间。
如果不需要区分server_name,可以把表达式里的$DomainName改为星号,“*****”代表所有;
--求Nginx的QPS: sum(irate(nginx_server_requests{code="total",host=~"$DomainName"}[5m])) --求4xx万分率(5xx类似,code=“5xx”): (sum(irate(nginx_server_requests{code="4xx",host=~"$DomainName"}[5m])) / sum(irate(nginx_server_requests{code="total",host=~"$DomainName"}[5m]))) * 10000 --求upstream的QPS(示例求group1的qps): sum(irate(nginx_upstream_requests{code="total",upstream="group1"}[5m])) --求upstream后端server的响应时间(示例求group1的后端响应时间): nginx_upstream_responseMsec{upstream=“group1”}
二、prometheus集成nginx
Prometheus 和 nginx_exporter服务都已经启动起来了,那么接下来就需要将二者关联起来,让 Prometheus 来定时抓取 Exporter 提供的数据。我们需要修改 Prometheus 的配置文件 prometheus.yml 增加 nginx 相关 exporter job。
说明一下:增加了一个 job_name 为 mysql 的任务,targets 为指向 mysqld_exporter 提供的 Http 接口服务,labels 为该 job 配置一个标签,方便下边 Grafana 页面显示
- job_name: nginx static_configs: - targets: ['172.16.10.123:9913'] labels: instance: jumpserver_nginx

重启容器,隔一会查看metrics:

三、grafana配置
1、下载dashboard
grafana 添加模板id 2949
https://grafana.com/dashboards/2949

2、导入json

3、展示

