扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍“基于prometheus如何监控nginx”,在日常操作中,相信很多人在基于prometheus如何监控nginx问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于prometheus如何监控nginx”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了荆门免费建站欢迎大家使用!
nginx服务器:172.22.3.164
prometheus主机已安装prometheus和grafnana
基于prometheus监控nginx可选两个exporter,一个是通过nginx_exporter主要是获取nginx-status中的内建的指标,nginx自身提供status信息,较为简单,promethues中对应的metrics也较少。另外一个是可以通过nginx-vts-exporter监控更多的指标,但nginx-vts-exporter依赖在编译nginx的时候添加nginx-module-vts模块来实现。vts提供了访问虚拟主机状态的信息,包含server,upstream以及cache的当前状态,显然指标会更丰富一些。本实践主要是介绍基于prometheus使用nginx-vts-exporter对nginx进行监控。
相关安装文件
https://github.com/vozlt/nginx-module-vts/archive/v0.1.18.tar.gz https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
nginx添加nginx-module-vts支持
# cd /opt/nginx-1.19.6 # wget https://github.com/vozlt/nginx-module-vts/archive/v0.1.18.tar.gz # tar -zxf v0.1.18.tar.gz ## 重新编译 # ./configure --add-module=nginx-module-vts-0.1.18/ # make # cp objs/nginx /usr/local/nginx/sbin/nginx
修改nginx.conf
http { vhost_traffic_status_zone; vhost_traffic_status_filter_by_host on; server { listen 10011; server_name localhost; # vhost_traffic_status off; location /nginx_status { vhost_traffic_status_display; vhost_traffic_status_display_format html; } } }
重启nginx后,访问http://172.22.3.164:10011/stub_status
在nginx服务器安装nginx-vts-exporter
# cd /opt/ # wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz # tar -zxf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz # cp nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter /usr/local/bin
创建service
## 创建service # vi /usr/lib/systemd/system/nginx-vts-exporter.service [Unit] Description=nginx-vts-exporter Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=root ExecStart=/usr/local/bin/nginx-vts-exporter \ -nginx.scrape_timeout 10 \ -nginx.scrape_uri http://127.0.0.1:10011/nginx_status/format/json Restart=on-failure [Install] WantedBy=multi-user.target
设置自动启动
# systemctl daemon-reload ## 设置自启动 # systemctl enable nginx-vts-exporter Created symlink from /etc/systemd/system/multi-user.target.wants/nginx-vts-exporter.service to /usr/lib/systemd/system/nginx-vts-exporter.service.
修改prometheus配置文件prometheus.yml,在scrape_configs下增加如下配置
- job_name: 'nginx-hosts' file_sd_configs: - files: ['/opt/prometheus/sd_config/nginx-hosts.yml'] refresh_interval: 5s
新增/opt/prometheus/sd_config/docker-hosts.yml文件,内容如下
cat /opt/prometheus/sd_config/nginx-hosts.yml - targets: - 172.22.3.164:9913
重启prometheus
# systemctl restart prometheus
浏览器地址栏输入 http://172.22.3.148:9090/targets
可以看到targets已经增加了对服务nginx-hosts的监控
在grafana中配置面板显示对主机nginx-hosts监控内容
点“+”按钮,弹出导入面板窗口
如图输入2949,点Load,grafana会直接从官方网站导入编号为2949的面板如下
选择数据源Prometheus,继续“Import”,显示nginx监控界面显示如下
到此,关于“基于prometheus如何监控nginx”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流