You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.0 KiB
3.0 KiB
运维方案之Nginx
1.我们已经介绍完毕了
Linux
运维、Mysql
运维、Redis
运维,监控某个程序运行的状态整体流程大家都很熟练了,接下来继续介绍Nginx
监控方案。
前言
1.nginx监控的原理主要是编译niginx的时候增加 nginx-module-vts 模块,让他提供底层数据。
2.其次需要安装nginx-vts-expoter 数据收集器,存储数据,等待被 prometheus 获取,最终在 grafana 展示。
3.但是默认情况下,编译的nginx是没有这个模块的,因此在nginx新安装的时候就应该编译进去,如果是已有nginx,要么重新编译、要么使用docker方式进行重新配置替换原有nginx。
4.由于我的nginx之前编译的时候没有编译 nginx-module-vts 模块,为了不影响已上线的项目,我们通过docker进行从头部署。
正式开始部署nginx运维监控
1.以下操作涉及到的ip 172.19.130.185 是我ip ,实际操作注意替换为自己服务器的ip。
2.nginx部分使用我本人进行编排的dockerfile生成、并且已经配置好了nginx运行状态数据输出地址。
# step1,拉取 nginx_vts 镜像,该 nginx 版本已经集成了 https://codeload.github.com/vozlt/nginx-module-vts/tar.gz/v0.1.18,并且对容器进行了配置,直接在ip:80/status提供状态数据。
docker pull zhangqifeng/nginx_vts:v1.4
# step2, 启动nginx_vts 镜像,镜像中nginx 的配置(/usr/local/nginx/conf/)、日志目录(/usr/local/nginx/logs/) 站点根目录:/usr/local/nginx/html/ 数据卷映射暂时忽略,您可以通过 -v 自行映射
docker container run --name nginx_vts -d -p 172.19.130.185:9506:80 zhangqifeng/nginx_vts:v1.4
# step3, 此时你可以验证该nginx是否正常运行,只要有数据就是启动ok
访问地址 http://172.19.130.185:9506/status 、http://172.19.130.185:9506/status/format/json
# step4, 拉取 nginx-vts-expoter 镜像,该镜像负责收集上一个镜像提供的运行状态数据,等待prometheus获取
docker pull sophos/nginx-vts-exporter:latest # 该镜像的github地址:https://github.com/hnlq715/nginx-vts-exporter
# step5, 启动 nginx-vts-exporter
docker run -p 172.19.130.185:9913:9913 -d --name nginx-vts-exporter -ti --rm --env NGINX_STATUS="http://172.19.130.185:9506/status/format/json" sophos/nginx-vts-exporter
# step6, 配置prometheus文件
- job_name: "Aliyun_Nginx"
static_configs:
- targets: ["172.19.130.185:9913"]
labels:
instance: "Nginx_001"
# step7, nginx-vts-expoter 采集 docker 容器中启动的 nginx:9506 端口数据,需要穿越防火墙
# 以设置9506端口为例,9913端口仿照设置即可。
firewall-cmd --zone=public --add-port=9506/tcp --permanent
firewall-cmd --complete-reload
# step8, 在 grafana 中导入nginx监控模板ID,2494
// 相关模板地址:https://grafana.com/dashboards/2949