基于prometheus如何监控nginx

81次阅读
没有评论

共计 2899 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍“基于 prometheus 如何监控 nginx”,在日常操作中,相信很多人在基于 prometheus 如何监控 nginx 问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于 prometheus 如何监控 nginx”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

安装准备

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-vts-exporter

在 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.

配置 nginx-vts-exporter 监控

修改 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”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-17发表,共计2899字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)