一、背景介绍
我们对Prometheus(普罗米修斯)监控体系有了整体的了解。监控的基础是对各类服务的信息、数据进行采样收集,这一重要的角色就是Prometheus里的Exporter。Exporter是我们最常打交道的模块,本节为大家介绍Exporter和其常用的组件。
二、Exporter详细介绍 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个实例称为target,如下所示,Prometheus通过轮询的方式定期从这些target中获取样本数据:
从Exporter的来源上来讲,主要分为两类:
- 社区提供的 Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的监控功能。这些Exporter可以实现大部分通用的监控需求。下表列举一些社区中常用的Exporter:
- 户自定义的 除了直接使用社区提供的Exporter程序以外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby。独立研发的产品,为了满足监控需求,一般采用自定义的Exporter形式。
三、常用Exporter
1、Mysql数据库exporter 主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。 在已有Prometheus服务情况,Mysql数据库exporter安装部署方法如下:
- 下载&安装
# 最新版本下载链接https://prometheus.io/download/
- 在Mysql中给mysqld_exporter 授权(赋予mysqld_exporter读取数据所需的权限)
# mysqld_exporter: 为数据库用户名,自行定义
- 配置mysql_exporter
# 在Mysql exporter目录下新建配置文件.my.cnf:
- 启动mysql_exporter
./mysqld_exporter --config.my-cnf=".my.cnf" &
- 在Prometheus配置中加入Mysql的监控配置(用于拉取数据嘛):
- job_name: mysql
2、Nginx服务exporter 主要监控Nginx服务的稳定性、性能、请求情况、响应时间等,可以对Nginx服务各项指标进行宏观地观察。 由于官方没有提供Nginx直接可用的exporter,Nginx的监控配置相对要复杂一些。这里使用的是三方提供的nginx-vts-exporter。 安装部署方法如下:
- 安装Nginx&nginx-module-vts模块 由于nginx-vts-exporter依赖于Nginx的nginx-module-vts模块,所以这里需要重新编译Nginx。
# 下载nginx-module-vts模块
- 配置nginx(为监控提供接口)
http {
- 下载安装nginx-vts-exporter
# 下载地址
- 启动nginx-vts-exporter
./nginx-vts-exporter --nginx.scrape_uri="http://127.0.0.1/status/format/json" &
- 在Prometheus配置中加入Nginx的监控配置:
- job_name: nginx
- 为了方便查看Nginx服务情况,我们可以在Grafana里添加数据异常模板
# 模板链接:https://grafana.com/grafana/dashboards/2949
面板展示结果如下:
四、小结
通过上述部署流程,我们总结一下Prometheus的Exporter部署使用方法: 1、下载解压Exporter; 2、配置Exporter; 3、在Prometheus配置中加入对Exporter数据的抓取; 4、启动Exporter和Prometheus服务; 5、在Grafana平台进行数据面板配置,并进行数据监控。 对于其他Exporter,我们亦可以进行举一反三进行部署安装使用,希望各位受用。
最后:部署监控系统遇到问题的可以直接留言或添加我们官方微信好友,我们竭诚为您服务(交流学习
)。