一、背景介绍
前段时间小编给大家分享了:
1、《五分钟打造高逼格的监控系统》
2、《Prometheus服务监控进阶》
我们对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/
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
# 解压即可使用
tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
在Mysql中给mysqld_exporter 授权(赋予mysqld_exporter读取数据所需的权限)
# mysqld_exporter: 为数据库用户名,自行定义
# mysqld_exporter_password: 为数据库用户对应的密码,自行定义
>CREATE USER 'mysqld_exporter'@'%' IDENTIFIED BY 'mysqld_exporter_password' WITH MAX_USER_CONNECTIONS 3;
>GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'%';
>flush privileges;
配置mysql_exporter
# 在Mysql exporter目录下新建配置文件.my.cnf:
[client]
user=mysqld_exporter
password=mysqld_exporter_password
启动mysql_exporter
./mysqld_exporter --config.my-cnf=".my.cnf" &
在Prometheus配置中加入Mysql的监控配置(用于拉取数据嘛):
- job_name: mysql
static_configs:
- targets: ['localhost:9104']
labels:
instance: db1
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模块
git clone git://github.com/vozlt/nginx-module-vts.git
# 重新编译nginx
./configure --add-module=/usr/local/nginx-module-vts/
make && make install
配置nginx(为监控提供接口)
http {
vhost_traffic_status_zone;
...
server {
...
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
下载安装nginx-vts-exporter
# 下载地址
wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
# 解压
tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
启动nginx-vts-exporter
./nginx-vts-exporter --nginx.scrape_uri="http://127.0.0.1/status/format/json" &
在Prometheus配置中加入Nginx的监控配置:
- job_name: nginx
static_configs:
- targets: ['localhost:9913']
labels:
instance: web1
为了方便查看Nginx服务情况,我们可以在Grafana里添加数据异常模板
# 模板链接:https://grafana.com/grafana/dashboards/2949
# 模板使用方法:见《五分钟打造高逼格的监控系统》
面板展示结果如下:
四、小结
通过上述部署流程,我们总结一下Prometheus的Exporter部署使用方法:
1、下载解压Exporter;
2、配置Exporter;
3、在Prometheus配置中加入对Exporter数据的抓取;
4、启动Exporter和Prometheus服务;
5、在Grafana平台进行数据面板配置,并进行数据监控。
对于其他Exporter,我们亦可以进行举一反三进行部署安装使用,希望各位受用。
最后:部署监控系统遇到问题的可以直接留言或添加我们官方微信好友,我们竭诚为您服务(交流学习)。
本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/2512041/blog/4378041