暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Prometheus 之Exporter

运维技术经验分享 2020-12-04
1036

尽信书,莫如无书。







01



简介




Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

 

Exporter的存在:大多数监控无法直接提供监控接口(本身不支持http接口、稳定性等)

Exporter是采集本地监控数据并通过Prometheus监控规范统一对外提供数据的组件

Exporter有分官方实现库和第三方实现库(https://prometheus.io/docs/instrumenting/exporters/)

Exporter通过被监控对象提供的监控相关的接口获取监控数据(HTTP/HTTPS、TCP、本地文件(node)、标准协议方式)




02




常用Exporter


node_exporter  

wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
tar -xf node_exporter-1.0.1.linux-amd64.tar.gz
mv node_exporter-1.0.1.linux-amd64 node_exporter

#配置系统服务化
echo “[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=work #根据自己用户配置
ExecStart=/node_exporter/node_exporter #修改为自己的目录

[Install]
WantedBy=default.target” > /etc/systemd/system/node_exporter.service

#启动
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
复制


 

 

nginx-vts-exporter

(自己对应好版本)

nginx-1.13 => nginx-module-vts-0.1.13.linux-amd64.tar.gz

nginx-1.14 => nginx-module-vts-0.1.14.linux-amd64.tar.gz

 

#下载
wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
wget https://github.com/vozlt/nginx-module-vts/archive/v0.1.13.zip
tar -xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
tar -xf v0.1.13.zip
mv nginx-vts-exporter-0.10.3.linux-amd64 nginx-vts-exporter
mv v0.1.13 nginx-module-vts
#重新编译nginx覆盖
./configure --prefix= /usr/local/nginxx --conf-path=/usr/local/nginx/config/nginx/nginx.conf --http-log-path=/usr/local/nginx/logs/nginx/ --user=work --group=work --with-http_ssl_module --with-http_sysguard_module --with-pcre= /usr/local/pcre-8.35 --with-openssl=/usr/local/openssl-1.0.1i --with-http_stub_status_module --add-module=/nginx-module-vts/
make -j 2
注意:不要执行make install

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.20201204
cp /usr/local/nginx-1.13.3/objs/nginx /usr/local/nginx/sbin/nginx

#查看是否有2个新模块--with-http_stub_status_module --add-module=/nginx-module-vts
/usr/local/nginx/sbin/nginx -V
#配置nginx
server {
listen 9080;
server_name 127.0.0.1;
location /vts_status {
vhost_traffic_status_display;
#vhost_traffic_status_display_format html;
vhost_traffic_status_display_format json;
}
location /status {
stub_status on;
access_log off;
}
#如果本地运行php进行配置文件(php-fpm.conf)开启pm.status_path = /php-status
location ~ ^/(php-status|ping)$ {
fastcgi_pass 127.0.0.1:9000;
allow 127.0.0.1;
deny all;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
error_log /usr/local/nginx/logs/nginx/status-error.log;
access_log /usr/local/nginx/logs/nginx/status-access.log main;
}
#重新加载
/usr/local/nginx/sbin/nginx -s reload
#配置系统服务化
Echo “[Unit]
Description=nginx-vts-exporter
After=network.target

[Service]
Type=simple
User=work
ExecStart=/nginx-vts-exporter/nginx-vts-exporter -nginx.scrape_uri=http://127.0.0.1:9080/vts_status
Restart=on-failure

[Install]
WantedBy=multi-user.target” > /etc/systemd/system/nginx-vts-exporter.service

#启动nginx-vts-exporter
systemctl daemon-reload
systemctl start nginx-vts-exporter
systemctl enable nginx-vts-exporter
复制


 

 

php-fpm_exporter

 

wget https://codeload.github.com/bakins/php-fpm-exporter/tar.gz/v0.6.1/php-fpm-exporter-0.6.1.tar.gz
tar -xf php-fpm-exporter-0.6.1.tar.gz
mv php-fpm-exporter-0.6.1 php-fpm_exporter

#配置系统服务化
echo “[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=work #根据自己用户配置
ExecStart=/php-fpm_exporter/php-fpm-exporter --addr 0.0.0.0:9190 --endpoint http://127.0.0.1:9080/php-status

[Install]
WantedBy=default.target” > /etc/systemd/system/php-fpm_exporter.service

#启动
systemctl daemon-reload
systemctl start php-fpm_exporter
systemctl enable php-fpm_exporter
复制


 

redis_exporter

 

wget https://github.com/oliver006/redis_exporter/releases/download/v0.13/redis_exporter-v0.13.linux-amd64.tar.gz
tar -xf redis_exporter-v0.13.linux-amd64.tar.gz
mv redis_exporter-v0.13.linux-amd64 redis_exporter
#配置系统服务化
echo “[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=work
ExecStart=/redis_exporter/redis_exporter --redis.addr 0.0.0.0:6379

[Install]
WantedBy=default.target”> /etc/systemd/system/redis_exporter.service
#启动
systemctl daemon-reload
systemctl start redis_exporter
systemctl enable redis_exporter
复制


 

mysqld_exporter

 

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
mv mysqld_exporter-0.12.1 mysqld_exporter
#创建数据库账号密码
CREATE USER 'mysql_exporter'@'localhost' IDENTIFIED BY 'mysql_exporter_2020';
CREATE USER 'mysql_exporter'@'127.0.0.1' IDENTIFIED BY 'mysql_exporter_2020';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'localhost' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'127.0.0.1' WITH MAX_USER_CONNECTIONS 3;
FLUSH PRIVILEGES;
#配置登陆账号密码
echo “[client]
host=localhost
port=3306
user=mysql_exporter
password=mysql_exporter_2020”> /mysqld_exporter/.my.cnf

#配置系统服务化
[Unit]
Description=Mysqld Exporter
After=network-online.target

[Service]
User=work
Environment=DATA_SOURCE_NAME=mysql_exporter:mysql_exporter_2020@(localhost:3306)/
ExecStart=/mysqld_exporter/mysqld_exporter \
--config.my-cnf /mysqld_exporter/.my.cnf \
--collect.slave_status \
--log.level=error \
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.innodb_cmp \
--collect.info_schema.innodb_cmpmem
Restart=on-failure

[Install]
WantedBy=multi-user.target
注意:--collect.info_schema 还有很多模块,看自己的版本,因为是5.6所以根据需求配置
#启动
systemctl daemon-reload
systemctl start mysqld_exporter
systemctl enable mysqld_exporter
复制


 

memcached_exporter

 

wget https://github.com/prometheus/memcached_exporter/releases/download/v0.6.0/memcached_exporter-0.6.0.linux-amd64.tar.gz
tar -xf memcached_exporter-0.6.0.linux-amd64.tar.gz
mv memcached_exporter-0.6.0.linux-amd64 memcached_exporter

#配置系统服务化
echo “[Unit]
Description=memcached_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/memcached_exporter/memcached_exporter --memcached.address=127.0.0.1:11211
Restart=on-failure
[Install]
WantedBy=multi-user.target” > /etc/systemd/system/memcached_exporter.service

#启动
systemctl daemon-reload
systemctl start memcached_exporter
systemctl enable memcached_exporter
复制



下一篇文章《Elasticsearch 之 Metricbeat》,个人感受比exporter更人性化


文章转载自运维技术经验分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论