Score
0
Watch 81 Star 551 Fork 157

张奇峰 / GoSkeletonGoMIT

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
deploy_nginx.md 3.04 KB
Copy Edit Web IDE Raw Blame History

运维方案之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

最终效果图

点击查看

Comment ( 0 )

Sign in for post a comment