nginx-module-vts 是一个很不错的nginx 模块,我们可以用来,方便的分析系统的请求状态
同时支持基于prometheus 的监控, 我参考openresty 的docker镜像已经制作了一个集成模块
的镜像 dalongrong/openresty-nginx-module-vts

环境准备

  • docker-compose 文件
version: "3"
services:
api:
build: ./
image: dalongrong/demo-ngx-vts
ports:
- "8080:80"
g:
image: grafana/grafana
ports:
- "3000:3000"
p:
image: prom/prometheus
volumes:
- "./prometheus.yml:/etc/prometheus/prometheus.yml"
ports:
- "9090:9090"
  • 集成nginx-module-vts的openresty 配置
    dockerfile
FROM dalongrong/openresty-nginx-module-vts
COPY nginx.conf usr/local/openresty/nginx/conf/
EXPOSE 80
EXPOSE 443
EXPOSE 88

nginx.conf

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
vhost_traffic_status_zone;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
upstream backend-app {
server 10.15.0.66:80 weight=20 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
charset utf-8;
location / {
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
client_body_buffer_size 10M;
client_max_body_size 10G;
proxy_buffers 1024 4k;
proxy_read_timeout 300;
proxy_next_upstream error timeout http_404;
proxy_pass http://backend-app;
}
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
location /alert {
default_type text/html;
content_by_lua_block{
ngx.say([[<script>alert("error")</script>]])
}
} location /ip {
default_type text/html;
content_by_lua_block{
ngx.say(ngx.var.remote_addr)
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 88;
server_name localhost;
charset utf-8;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
  • prometheus监控配置
    prometheus.yml
scrape_configs:
- job_name: nginx
metrics_path: /status/format/prometheus
static_configs:
- targets: ['api:80']

启动&&集成测试

  • 启动
docker-compose up -d
  • 界面效果


  • 集成grafana
    添加prometheus datasource 配置

    添加dashboard

说明

nginx-module-vts 是一个很方便的模块,集成进openresty 中,我们可以快速的实现系统的信息监控,同时模块的文档也很全,类似的也
有一个基于opentracing 的模块nginx-opentracing

参考资料

https://github.com/rongfengliang/openresty_nginx-module-vts_prometheus_grafana
https://github.com/vozlt/nginx-module-vts
https://github.com/rongfengliang/openresty-nginx-module-vts
https://www.cnblogs.com/rongfengliang/p/9752800.html

 
 
 
 

最新文章

  1. GCD的相关函数使用
  2. Array.sort()方法
  3. Maven问题总结:could not resolve archetype xxxxxxx from any of the configured repositories
  4. angular 和jq 的AJAX的请求区别
  5. UI设计原则
  6. MEF 编程指南(十二):批量组合
  7. Javascript 异步编程的4种方法详解
  8. id 自增------删除数据后恢复到删除前自增id
  9. asp.net core VS goang web[修正篇]
  10. MVCC 多版本并发控制
  11. ViewGroup可实现上下、各地跑马灯效果滚动
  12. 每天一个Linux命令(05)--rm命令
  13. servlet学习总结(一)——初识Servlet
  14. OpenCV探索之路(二):图像处理的基础知识点串烧
  15. WebDriver下载地址
  16. angular学习3
  17. 走进JDK(十一)------LinkedHashMap
  18. HBase——HMaster启动之一(HMaster的构建)
  19. youtube link for review STAT(1)
  20. 【BZOJ2127】happiness 最小割

热门文章

  1. [Leetcode221]最大面积 Maximal Square
  2. 7.4 C++标准模板库(STL)的概念
  3. minifilter
  4. 7系列FPGA远程更新方案-QuickBoot(转)
  5. Ansible-playbook的简单使用 [转]
  6. SharePoint Framework 企业向导(四)
  7. Linux文件系统命令 mkdir/rmdir
  8. ubuntu Cairo图形库 环境搭建
  9. Python 类变量
  10. Python 实例方法