广告
返回顶部
首页 > 资讯 > 服务器 >Nginx监控模块(vts模块)详解
  • 879
分享到

Nginx监控模块(vts模块)详解

2024-04-02 19:04:59 879人浏览 八月长安
摘要

目录Nginx 监控模块(vts模块)1、上传nginx-module-vts-master软件包并解压2、安装Nginx依赖环境3、优化路径及编译安装nginx4、备份nginx的

Nginx 监控模块(vts模块)

监控Nginx主要用到以下三个模块:
1、nginx-module-vts:Nginx virtual host traffic status module,Nginx的监控模块,能够提供JSON格式的数据产出。
2、nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via Http for prometheus consumption。主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。
3、Prometheus:监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用ProMQL对时序数据进行查询和聚合。

1、上传nginx-module-vts-master软件包并解压

unzip nginx-module-vts-master.zip 解压

2、安装Nginx依赖环境

yum -y install GCc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

3、优化路径及编译安装nginx

 make && make install

 优化管理

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin 

检查开启的模块

nginx -v  检查 nginx版本

nginx -V

 watch -n 1 nginx 观察nginx状态

4、备份nginx的备份文件  

5、修改nginx的配置文件

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

进去后再http{ } 中添加如下内容

vhost_traffic_status_zone;            #流量状态监控 

log_fORMat main '{ "@timestamp": "$time_local", '
'"@fields": { '
'"uri":"$request_uri",'
'"url":"$uri",'
'"upstream_addr":"$upstream_addr",'
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"host":"$host",'
'"server_addr":"$server_addr",'
'"request_time": "$request_time", '
'"request_time":"$request_time",'
'"status":"$status",'
'"request": "$request", '
'"request_method": "$request_method", '
'"size":$body_bytes_sent,'
'"upstream_time":"$upstream_response_time"'
'"http_referrer": "$http_referer", '
'"body_bytes_sent":"$body_bytes_sent", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" } }';

在server中80端口添加

 location /status {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }

虚拟机测试 192.168.100.10/status

6、监控模块各字段信

监控列表各项信息
Server main 主服务器
**Host:**主机名
**Version:**版本号
**Uptime:**服务器运行时间
Connections active:当前客户端的连接数 reading:读取客户端连接的总数 writing:写入客户端连接的总数
Requsts accepted:接收客户端的连接总数 handled:已处理客户端的连接总数 Total:请求总数 Req/s:每秒请求的数量
Shared memory:共享内存 name:配置中指定的共享内存名称 maxSize:配置中指定的共享内存的最大限制 usedSize:共享内存的当前大小 usednode:共享内存中当前使用的节点数
Server zones 服务器区域
zone:当前区域
Requests Total:请求总数 Req/s:每秒请求数 time:时间
Responses:状态码数量 1xx、2xx、3xx、4xx、5xx:表示响应不同状态码数量 Total:响应状态码的总数
Traffic表示流量 Sent:发送的流量 Rcvd:接收的流量 Sent/s:每秒发送的流量 Rcvd/s:每秒接收的流量
Cache表示缓存 Miss:未命中的缓存数 Bypass:避开的缓存数 Expirde:过期的缓存数 Stale:生效的缓存数 Updating:缓存更新的次数 Revalidated:重新验证的缓存书 Hit:缓存命中数 Scarce:未达缓存要求的请求次数Total:总数

7、一键安装vts监控模块

#!/bin/bash
echo "提前准备好安装包如:nginx-1.15.9.tar.gz  nginx-module-vts-master.zip"
##关闭防火墙及核心防护
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#删除原有的nginx
rm -rf /var/run/yum.pid
##安装依赖包
yum -y install gcc gcc-c++ pcre-devel zlib-devel make pcre zlib openssl openssl-devel
#解包
tar zxvf nginx-1.15.9.tar.gz
unzip nginx-module-vts-master.zip
#创建运行用户、组
useradd -M -s /sbin/nologin nginx 
##编译
cd /opt/nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--add-module=/usr/local/nginx-module-vts-master/  #vts模块

#--with-http_stub_status_module  统计模块
#安装 
make && make install
#优化路径
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
#查看nginx安装信息
nginx -V
#把nginx的加入到systemctl管理中
cat<<EOF >/usr/lib/systemd/system/nginx.service
[Unit]    
Description=nginx                            
After=network.target                        
[Service]
Type=forking                                
PIDFile =/usr/local/nginx/logs/nginx.pid    
ExecStart=/usr/local/nginx/sbin/nginx        
ExecrReload=/bin/kill -s HUP $MAINPID        
ExecrStop=/bin/kill -s QUIT $MAINPID        
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
#给权限
chmod 754 /lib/systemd/system/nginx.service
#备份nginx配置文件 
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
#修改nginx的配置文件
sed -i "21i vhost_traffic_status_zone; #流量状态监控" /usr/local/nginx/conf/nginx.conf

sed -i "/#log_format  main/i log_format main '{ "@timestamp": "$time_local", '
'"@fields": { '
'"uri":"$request_uri",'
'"url":"$uri",'
'"upstream_addr":"$upstream_addr",'
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"host":"$host",'
'"server_addr":"$server_addr",'
'"request_time": "$request_time", '
'"request_time":"$request_time",'
'"status":"$status",'
'"request": "$request", '
'"request_method": "$request_method", '
'"size":$body_bytes_sent,'
'"upstream_time":"$upstream_response_time"'
'"http_referrer": "$http_referer", '
'"body_bytes_sent":"$body_bytes_sent", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" } }';" /usr/local/nginx/conf/nginx.conf

sed -i "/server_name  localhost;/a location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }" /usr/local/nginx/conf/nginx.conf
#重启nginx
systemctl restart nginx &> /dev/null
#测试   本机ip/status

总结

到此这篇关于Nginx监控模块(vts模块)的文章就介绍到这了,更多相关Nginx监控模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Nginx监控模块(vts模块)详解

本文链接: https://www.lsjlt.com/news/167384.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nginx监控模块(vts模块)详解
    目录Nginx 监控模块(vts模块)1、上传nginx-module-vts-master软件包并解压2、安装Nginx依赖环境3、优化路径及编译安装nginx4、备份nginx的...
    99+
    2022-11-13
  • Burpsuite模块之Burpsuite Intruder模块详解
    目录一、简介二、模块说明Burp Suite Intruder的4种攻击类型一 Sniper(狙击手模式)二Battering ram(攻城锤模式)三Pitchfork(草叉模式)四...
    99+
    2022-11-12
  • argparse模块详解
    目录1. argparse 模块简介2. 未使用argparse示例3. 使用argparse示例3.1 argparse简单示例3.2 argparse进阶示例3.2.1 可选参数...
    99+
    2023-02-27
    argparse 模块 python argparse 模块
  • Django模块学习之模块语言详解
    目录前言1、变量2、注释3、过滤器4、标签:include5、标签:for6、标签:if总结前言 Django模块引擎支持Django模块语言(简称DTL)。DTL包含变量、注释、过...
    99+
    2022-11-12
  • 详解Python模块化--模块(Modules)和包(Packages)
    目录引言Python Modules模块导入模块①导入整个模块②导入模块中的特定函数③导入模块中的所有函数给导入的模块一个别名单独运行模块加速模块加载Python Packages包引用包(Package)中的模块引...
    99+
    2022-06-02
    Python Modules模块 Packages包
  • Node.js中HTTP模块与事件模块详解
    Node.js的http服务器 通过使用HTTP模块的低级API,Node.js允许我们创建服务器和客户端。刚开始学node的时候,我们都会遇到如下代码: var http = require('http...
    99+
    2022-06-04
    模块 详解 事件
  • 详解python时间模块中的datetime模块
    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,dat...
    99+
    2022-06-04
    模块 详解 时间
  • Node.js基础入门之path模块,url模块,http模块使用详解
    目录path模块1. path模块示例2. path模块其他方法url模块1. 旧的解析方法2. 新的解析方法http模块1. 什么是HTTP协议?2. HTTP协议约束的细节3. ...
    99+
    2022-11-13
  • 详解nodejs 文本操作模块-fs模块(二)
    前一篇学习了文件的打开和关闭,文件操作总不能只包含打开和关闭吧,这里就开始文件的读写操作。 fs模块方法 1:read和readSync方法 该方法,是从文件的指定位置处读取文件,一直读取到文件底部,然后...
    99+
    2022-06-04
    模块 详解 文本
  • 详解nodejs 文本操作模块-fs模块(一)
    JS的安全性问题,就决定了JS想要取操作数据库操作文件是不可实现的,而Nodejs作为服务端的JS,如果依然不能操作文件,那么又如何称之为服务端语言呢,所以在Nodejs中,提供了一个fs(File Sys...
    99+
    2022-06-04
    模块 详解 文本
  • 详解nodejs 文本操作模块-fs模块(三)
    下面继续nodejs的学习,在前两篇中,已经把文件操作的打开,关闭读写这两个最基本的功能进行了简单的说明,它们的强大之处,让我觉得知道这几种方法之后,基本上就可以随意的操作文件了,但是open,read,w...
    99+
    2022-06-04
    模块 详解 文本
  • 详解nodejs 文本操作模块-fs模块(四)
    在前文中,提到了一个概念,就是当我在读取文件时,我需要知道这个文件的数据量的大小,而在readFile的源码中,是使用的fa.fstat方法,获取到了文件的相关数据,而对于使用fstat获取到的一个对象中,...
    99+
    2022-06-04
    模块 详解 文本
  • 详解nodejs 文本操作模块-fs模块(五)
    fs模块是一个比较庞大的模块,在前面也介绍了该模块中最核心的一点东西,虽然核心的这点东西,在整个fs模块中占据的比例比较小,但是如果只是我们平常使用的话,基本已经够用了,其他的一些方法,属于能力提升时需要学...
    99+
    2022-06-04
    模块 详解 文本
  • Python常用内置模块之xml模块(详解)
    xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,...
    99+
    2022-06-04
    模块 详解 常用
  • python—xlwt模块详解
    一、前言 xlwt模块是python中专门用于写入Excel的拓展模块,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句话就是人使用excel实现的功能,这个扩展包都可以实现。 ...
    99+
    2023-09-04
    python excel 自动化办公 xlwt
  • python—requests模块详解
    一、前言 1、requests简介 requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,它是python语言的第三方的库,专门用于发送HTTP请求,使用...
    99+
    2023-09-04
    python 开发语言 requests 网络爬虫
  • 详解Python requests模块
    前言 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。...
    99+
    2022-06-02
    Python requests模块 Python模块
  • 详解NodeJS模块化
    目录一、前言二、正文2.1、什么是模块2.2、Resolving2.3、require.resolve2.4、模块间的父子依赖关系2.5、exports, module.export...
    99+
    2022-11-12
  • python datetime模块详解
    目录1. 获取当前时间2. 时间间隔 timedelta3. datetime 转 字符串 strftime()4. 字符串 转 datetime对象 datetime.strpti...
    99+
    2022-11-12
  • python sys模块详解
      sys.argv           命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info()     获取当前正在处理的异...
    99+
    2023-01-31
    详解 模块 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作