Nginx監(jiān)控模塊(vts模塊)詳解
Nginx 監(jiān)控模塊(vts模塊)
監(jiān)控Nginx主要用到以下三個(gè)模塊:
1、nginx-module-vts:Nginx virtual host traffic status module,Nginx的監(jiān)控模塊,能夠提供JSON格式的數(shù)據(jù)產(chǎn)出。
2、nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的監(jiān)控?cái)?shù)據(jù),并給Prometheus提供監(jiān)控接口,默認(rèn)端口號(hào)9913。
3、Prometheus:監(jiān)控Nginx-vts-exporter提供的Nginx數(shù)據(jù),并存儲(chǔ)在時(shí)序數(shù)據(jù)庫(kù)中,可以使用PromQL對(duì)時(shí)序數(shù)據(jù)進(jìn)行查詢和聚合。
1、上傳nginx-module-vts-master軟件包并解壓
unzip nginx-module-vts-master.zip 解壓

2、安裝Nginx依賴環(huán)境
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

3、優(yōu)化路徑及編譯安裝nginx

make && make install
優(yōu)化管理
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

檢查開啟的模塊
nginx -v? 檢查 nginx版本 nginx -V

watch -n 1 nginx 觀察nginx狀態(tài)


4、備份nginx的備份文件

5、修改nginx的配置文件
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
進(jìn)去后再http{ } 中添加如下內(nèi)容
vhost_traffic_status_zone;?? ??? ??? ?#流量狀態(tài)監(jiān)控?
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;
}



在虛擬機(jī)中測(cè)試 192.168.100.10/status

6、監(jiān)控模塊各字段信
監(jiān)控列表各項(xiàng)信息
Server main 主服務(wù)器
**Host:**主機(jī)名
**Version:**版本號(hào)
**Uptime:**服務(wù)器運(yùn)行時(shí)間
Connections active:當(dāng)前客戶端的連接數(shù) reading:讀取客戶端連接的總數(shù) writing:寫入客戶端連接的總數(shù)
Requsts accepted:接收客戶端的連接總數(shù) handled:已處理客戶端的連接總數(shù) Total:請(qǐng)求總數(shù) Req/s:每秒請(qǐng)求的數(shù)量
Shared memory:共享內(nèi)存 name:配置中指定的共享內(nèi)存名稱 maxSize:配置中指定的共享內(nèi)存的最大限制 usedSize:共享內(nèi)存的當(dāng)前大小 usedNode:共享內(nèi)存中當(dāng)前使用的節(jié)點(diǎn)數(shù)
Server zones 服務(wù)器區(qū)域
zone:當(dāng)前區(qū)域
Requests Total:請(qǐng)求總數(shù) Req/s:每秒請(qǐng)求數(shù) time:時(shí)間
Responses:狀態(tài)碼數(shù)量 1xx、2xx、3xx、4xx、5xx:表示響應(yīng)不同狀態(tài)碼數(shù)量 Total:響應(yīng)狀態(tài)碼的總數(shù)
Traffic表示流量 Sent:發(fā)送的流量 Rcvd:接收的流量 Sent/s:每秒發(fā)送的流量 Rcvd/s:每秒接收的流量
Cache表示緩存 Miss:未命中的緩存數(shù) Bypass:避開的緩存數(shù) Expirde:過(guò)期的緩存數(shù) Stale:生效的緩存數(shù) Updating:緩存更新的次數(shù) Revalidated:重新驗(yàn)證的緩存書 Hit:緩存命中數(shù) Scarce:未達(dá)緩存要求的請(qǐng)求次數(shù)Total:總數(shù)
7、一鍵安裝vts監(jiān)控模塊
#!/bin/bash
echo "提前準(zhǔn)備好安裝包如:nginx-1.15.9.tar.gz? nginx-module-vts-master.zip"
##關(guān)閉防火墻及核心防護(hù)
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
#創(chuàng)建運(yùn)行用戶、組
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? 統(tǒng)計(jì)模塊
#安裝?
make && make install
#優(yōu)化路徑
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
#給權(quán)限
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; #流量狀態(tài)監(jiān)控" /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
#測(cè)試 ? 本機(jī)ip/status總結(jié)
到此這篇關(guān)于Nginx監(jiān)控模塊(vts模塊)的文章就介紹到這了,更多相關(guān)Nginx監(jiān)控模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx與安全相關(guān)的幾個(gè)配置小結(jié)
Nginx提供了一系列的安全相關(guān)參數(shù),可以幫助加固網(wǎng)站安全性,本文主要介紹了Nginx與安全相關(guān)的幾個(gè)配置小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Linux下安裝MongoDB的實(shí)現(xiàn)步驟
這篇文章主要介紹了Linux下安裝MongoDB的實(shí)現(xiàn)步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家輕松安裝,需要的朋友可以參考下2017-10-10
nginx location中uri的截取的實(shí)現(xiàn)方法
這篇文章主要介紹了nginx location中uri的截取的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Nginx+Tomcat負(fù)載均衡、動(dòng)靜分離群集全過(guò)程
Nginx與Tomcat分別作為高性能Web服務(wù)器和Java應(yīng)用容器,常用于負(fù)載均衡與動(dòng)靜分離,提升系統(tǒng)性能與可用性,Nginx處理靜態(tài)資源及反向代理,Tomcat承載動(dòng)態(tài)業(yè)務(wù),二者協(xié)作可優(yōu)化架構(gòu)并應(yīng)對(duì)高并發(fā)場(chǎng)景2025-10-10
nginx proxy_redirect https配置后端http302跳轉(zhuǎn)處理方式
這篇文章主要介紹了nginx proxy_redirect https配置后端http302跳轉(zhuǎn)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
nginx如何實(shí)現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈
這篇文章主要為大家介紹了nginx實(shí)現(xiàn)配置靜態(tài)資源服務(wù)器及防盜鏈步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

