龙空技术网

一文看懂如何用prometheus+grafana体系监控nginx服务

波波说运维 192

前言:

如今小伙伴们对“用nginx访问后端接口”大约比较关怀,同学们都想要学习一些“用nginx访问后端接口”的相关文章。那么小编同时在网上收集了一些对于“用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

2、导入json

3、展示

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

标签: #用nginx访问后端接口 #nginx海康