Grafana + prometheus在Centos搭建服务器监控系统(三)--配置监控Nginx
部署并配置nginx-module-vts参考我之前的文章:Linux下Nginx配置nginx-module-vts_allen的博客-CSDN博客配置nginx-vts-exporterexporter会收集nginx性能指标的JSON格式数据,并汇总后暴露监控接口给Prometheus。cd /data/programwget -c https://github.com/hnlq715/ng
·
部署并配置nginx-module-vts
参考我之前的文章:
Linux下Nginx配置nginx-module-vts_allen的博客-CSDN博客
配置nginx-vts-exporter
exporter会收集nginx性能指标的JSON格式数据,并汇总后暴露监控接口给Prometheus。
cd /data/program
wget -c https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
#也可下载最新版本
tar xvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
mv nginx-vts-exporte-0.10.3.linux-amd64.tar.gz nginx-vts-exporte
配置运行
// 创建文件 /etc/systemd/system/nginx-vts-exporte.service
[Unit]
Description=nginx-vts-exporte
Documentation=nginx-vts-exporte
[Service]
ExecStart=/data/program/nginx-vts-exporte/nginx-vts-exporte -nginx.scrape_timeout 10 -nginx.scrape_uri http://127.0.0.1/status/format/json
Restart=on-failure
[Install]
WantedBy=multi-user.target
// data/program/nginx-vts-exporte 是我nginx-vts-exporte的解压路径,可以按需修改
# 推荐exporter和nginx安装在同一台机器上,如果不在同一台主机,把scrape_uri改为nginx主机的地址。
# nginx_vts_exporter的默认端口号:9913,对外暴露监控接口http://xxx:9913/metrics.
# 我们可以访问浏览器 IP:9913
将nginx-vts-exporter配置到prometheus中
# 配置Prometheus,收集node exporter的数据
# 可以看到node exporter启动后也就是暴露了9100端口,并没有把数据传到prometheus,
# 我们还需要在prometheus中配置,让prometheus去pull这个接口的数据。
# 我们去监控主机编辑prometheus.yml文件,修改最后几行,然后重启服务
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'nginx'
static_configs:
- targets: ['127.0.0.1:9913']
# node节点的targets处的IP填写你要监控的node的IP.
systemctl restart prometheus
# 我们登录到Prometheus主机,看下这个节点是不是up状态
配置grafana显示
如未安装,参考教程:Grafana + prometheus在Centos搭建服务器监控系统(一)---安装、配置_allen的博客-CSDN博客
此处我们拿prometheus做例子,虽然说prometheus能展示一些图表,但对比Grafana,那只是过家家,接下来我们在同一个服务器安装Grafana服务,用来展示prometheus收集到的数据
添加nginx模板
通过vts自定义key
通过以上部署只能拿到默认的指标,生产中可能还会需要监控uri的请求量,监控IP访问情况(同一个IP出现大量访问时可能被攻击),获取不同agent请求量用于分析等,通过vts模块的vhost_traffic_status_filter_by_set_key功能可以自定义需要获取的指标。此处的指标需要加到对应的server配置中.
# 添加自定义配置,地址根据自己的修改
$ vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
vhost_traffic_status_filter_by_set_key $uri uri::$server_name; #每个uri访问量
vhost_traffic_status_filter_by_set_key $status $server_name; #http code统计
vhost_traffic_status_filter_by_set_key $upstream_addr upstream::backend; #后端转发统计
vhost_traffic_status_filter_by_set_key $remote_port client::ports::$server_name; #请求端口统计
vhost_traffic_status_filter_by_set_key $remote_addr client::addr::$server_name; #请求IP统计
location ~ ^/storage/(.+)/.*$ {
set $volume $1;
vhost_traffic_status_filter_by_set_key $volume storage::$server_name; #请求路径统计
}
}
更多推荐
已为社区贡献3条内容
所有评论(0)