中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zabbix監控Tomcat及Nginx

發布時間:2020-08-03 03:33:00 來源:網絡 閱讀:515 作者:warrent 欄目:系統運維

注:本篇博文是基于部署zabbix監控服務器的環境進行的。這里將開啟一臺client服務器(被監控端)用于測試。

博文大綱:
一、監控Tomcat
二、監控Nginx服務器

一、監控Tomcat

監控Tomcat需要用到zabbix_java_gateway這個組件(在zabbix2.0引入的功能),顧名思義就是:Java網關,類似于agentd,但是只用于Java方面。需要注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會提交到server端或proxy。

如果需要開啟監控Tomcat功能,在編譯zabbix server端時,需要添加--enable_java 參數。

1、Zabbix Server安裝zabbix_java_gateway程序

zabbix_java_gateway程序既可以安裝在zabbix server端,也可以安裝在被監控端,不過一般都是安裝在Zabbix server端,這里我就安裝在Zabbix Server端。

注:文中所有用到的源碼包都可以從我的網盤鏈接中下載

#執行下面命令前,請先下載我網盤鏈接中的對應rpm包
[root@zabbix ~]# rpm -ivh zabbix-java-gateway-3.2.1-1.el7.x86_64.rpm
#修改java_gateway配置文件
[root@zabbix ~]# cd /etc/zabbix/
[root@zabbix zabbix]# sed -i 's/# LISTEN_IP="0.0.0.0"/LISTEN_IP="0.0.0.0"/g' zabbix_java_gateway.conf 
[root@zabbix zabbix]# sed -i 's/# LISTEN_PORT=10052/LISTEN_PORT=10052/g' zabbix_java_gateway.conf 
[root@zabbix zabbix]# egrep -v '^$|^#' zabbix_java_gateway.conf 
#確定修改后的配置文件
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
TIMEOUT=3
#啟動java-gateway
[root@zabbix zabbix]# systemctl start zabbix-java-gateway.service 
#確定端口在監聽
[root@zabbix zabbix]# netstat -anpt | grep 10052
tcp6       0      0 :::10052                :::*                    LISTEN      3112/java           
#修改Zabbix-Server的配置文件
[root@zabbix zabbix]# cd /usr/local/zabbix/etc/
[root@zabbix etc]# sed -i 's/# JavaGateway=/JavaGateway=192.168.20.2/g' zabbix_server.conf
[root@zabbix etc]# sed -i 's/# JavaGatewayPort=10052/JavaGatewayPort=10052/g' zabbix_server.conf
[root@zabbix etc]# sed -i 's/# StartJavaPollers=0/StartJavaPollers=5/g' zabbix_server.conf
[root@zabbix etc]# /etc/init.d/zabbix_server restart    #重啟zabbix server

2、測試端配置Tomcat

啟動一臺IP為192.168.20.3的服務器作為Tomcat服務器,用于測試。

#安裝Tomcat
[root@tomcat ~]# rpm -qa | grep jdk       #查詢系統默認的JAVA包
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
copy-jdk-configs-1.2-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
[root@tomcat ~]# rpm -e java-1.8.0-openjdk-headless --nodeps        #卸載Java1.8
[root@tomcat ~]# rpm -e java-1.7.0-openjdk-headless --nodeps        #卸載Java1.7
[root@tomcat ~]# cd /usr/src
[root@tomcat src]# rz      #上傳我提供的兩個源碼包
[root@tomcat src]# ls         #源碼包如下
apache-tomcat-8.5.35.tar.gz  jdk-8u211-linux-x64.tar.gz
[root@tomcat ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local/   #解壓JDK到指定路徑
[root@tomcat src]# tar zxf apache-tomcat-8.5.35.tar.gz   #解壓Tomcat源碼包
[root@tomcat src]# mv apache-tomcat-8.5.35 /usr/local/tomcat   #將解壓后的目錄移動到指定目錄并命名為tomcat
[root@tomcat ~]# vim /etc/profile         #編輯環境變量,在配置文件末尾添加以下內容
export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=/usr/local/jdk1.8.0_211/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@tomcat ~]# . /etc/profile       #重新加載環境變量
[root@tomcat ~]# java -version       #查看java版本
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
#開啟Tomcat的JMX遠程管理功能
[root@tomcat src]# vim /usr/local/tomcat/bin/catalina.sh
export JDK_JAVA_OPTIONS    #跳轉到306行,也就是該行,下面寫入以下內容
CATALINA_OPTS=" $CATALINA_OPTS  -Dcom.sun.management.jmxremote  -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.20.3  -Dcom.sun.management.jmxremote.authenticate=false"
#注:上面的IP為Tomcat本機的IP,端口“8888”可以自定義,不要沖突即可
[root@tomcat src]# /usr/local/tomcat/bin/startup.sh   #啟動Tomcat
#確定相關端口在監聽
[root@tomcat src]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      3871/java           
[root@tomcat src]# netstat -anpt | grep 8888
tcp6       0      0 :::8888                 :::*                    LISTEN      3871/java           

3、回到Zabbix-server進行JMX連接測試

注:該測試需要系統支持圖形化桌面,若沒有圖形化桌面,此驗證過程可以省略。

[root@zabbix ~]# jconsole    #執行此命令,此命令是Java-gateway提供的。

執行上面的命令后,會彈出下面提示框(輸入Tomcat的IP+JMX監聽端口,進行連接):

Zabbix監控Tomcat及Nginx

確保可以看到以下畫面即可:

Zabbix監控Tomcat及Nginx

4、登錄到Zabbix Server的web界面進行配置

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

稍等片刻,顯示如下即可:

Zabbix監控Tomcat及Nginx

可以進行以下操作,看到JVM虛擬機相關的信息:

Zabbix監控Tomcat及Nginx

二、監控Nginx服務器

自行安裝部署Nginx,這里我還將Nginx配置在Tomcat這臺主機上。部署Nginx可參考博文:搭建Nginx服務器及深度優化

1、在Nginx服務器上部署agent客戶端

#安裝zabbix-agent
[root@tomcat src]# tar zxf zabbix-3.2.1.tar.gz 
[root@tomcat src]# cd zabbix-3.2.1/
[root@tomcat zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
[root@tomcat zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@tomcat zabbix-3.2.1]# chmod +x /etc/init.d/zabbix_agentd 
#修改啟動腳本
[root@tomcat zabbix-3.2.1]# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd 
[root@tomcat zabbix-3.2.1]# sed -i 's/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=$BASEDIR\/logs\/$BINARY_NAME.pid/g' /etc/init.d/zabbix_agentd
[root@tomcat zabbix-3.2.1]# useradd -M -s /sbin/nologin zabbix
[root@tomcat ~]# mkdir -p /usr/local/zabbix/logs/
[root@tomcat ~]# chown -R zabbix:zabbix /usr/local/zabbix
[root@tomcat zabbix-3.2.1]# chkconfig --add zabbix_agentd
[root@tomcat zabbix-3.2.1]# chkconfig zabbix_agentd on
[root@tomcat zabbix-3.2.1]# systemctl start zabbix_agentd
[root@tomcat zabbix-3.2.1]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      97364/zabbix_agentd 
#修改agent配置文件
[root@tomcat zabbix-3.2.1]# cd /usr/local/zabbix/etc/
[root@tomcat etc]# sed -i 's/# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.pid/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.log/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/Server=127.0.0.1/Server=192.168.20.2/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/# ListenPort=10050/ListenPort=10050/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/# ListenIP=0.0.0.0/ListenIP=0.0.0.0/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.20.2/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.20.3/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/# Timeout=3/Timeout=15/g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/zabbix\/etc\/zabbix_agentd.conf.d\//g' zabbix_agentd.conf
[root@tomcat etc]# sed -i 's/# UnsafeUserParameters=0/UnsafeUserParameters=1/g' zabbix_agentd.conf
[root@tomcat etc]# echo 'UserParameter=nginx.info[*],/usr/local/zabbix/scripts/nginx.sh  $1' >> zabbix_agentd.conf
[root@tomcat etc]# echo "UserParameter=nginx.ping[*],netstat -anput | grep -w 80 | grep -w LISTEN | wc -l" >> zabbix_agentd.conf
[root@tomcat etc]# egrep -v '^$|^#' zabbix_agentd.conf   #確定配置無誤
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.20.2
ListenPort=10050
ListenIP=0.0.0.0
ServerActive=192.168.20.2
Hostname=192.168.20.3
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
UserParameter=nginx.info[*],/usr/local/zabbix/scripts/nginx.sh  $1
UserParameter=nginx.ping[*],netstat -anput | grep -w 80 | grep -w LISTEN | wc -l

2、在Nginx服務器上編寫Nginx腳本

注:此腳本可在我文章開頭的下載鏈接中獲得。

[root@tomcat etc]# mkdir /usr/local/zabbix/scripts/
[root@tomcat etc]# cd /usr/local/zabbix/scripts/
[root@tomcat scripts]# cat nginx.sh     #腳本如下,所有IP均為Nginx的IP

#!/bin/bash
case $1 in
index)
    RS=`curl -s -I 192.168.20.3/index.html |head -n1 |awk '{print $2}'`
    echo $RS
    ;;

WorkerProcesses)
    RS=`ps aux |grep nginx | grep -w worker |wc -l`
    echo $RS
    ;;

bps)
    RS=`ab -q -n 1000 -c 1000 http://192.168.20.3/index.html |grep Request | awk '{print $4}'`
    echo $RS
    ;;

Current)
    LINES=`cat /usr/local/nginx/logs/access.log |wc -l`
    sleep 1
    NOW_LINES=`cat /usr/local/nginx/logs/access.log |wc -l`
    echo $NOW_LINES $LINES | awk '{print $1 -$2}'
;;
IP)
    RS=`cat /usr/local/nginx/logs/access.log | awk '{print $1}' |sort -u | wc -l`
    echo $RS
    ;;

VirtualHost)
    RS=`cat /usr/local/nginx/conf/nginx.conf |grep -v '#' | grep server_name | wc -l`
    echo $RS
    ;;

MD5)
    RS=`md5sum /usr/local/nginx/conf/nginx.conf |awk '{print $1}'`
    echo $RS
    ;;

PV)
    RS=`wc -l /usr/local/nginx/logs/access.log | awk '{print $1}'`
    echo $RS
    ;;
esac
[root@tomcat scripts]#  /etc/init.d/zabbix_agentd restart   #重啟agent
#調整相應權限,需要所有用戶都可以執行netstat命令
[root@tomcat scripts]# chmod +s /usr/bin/netstat
[root@tomcat scripts]# chmod  +x  nginx.sh

3、配置Zabbix-Server Web界面

1、在配置web界面前,可現在Zabbix-Server端測試一下相關信息是否可以獲得,以便驗證腳本的正確性(同時ab壓力測試是必須要有的,Server端和Agent端都要裝該命令)。

[root@zabbix fonts]# yum -y install httpd-tools     #安裝ab壓力測試命令
[root@zabbix fonts]# ab -q -n 1000 -c 1000 http://192.168.20.3/index.html |grep Request | awk '{print $4}'
2117.31         #有信息返回則表示正常

配置Web界面:

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

1)配置應用集

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

2)配置監控項

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

監控Nginx總訪問量:

接下來每添加一個監控項,都要點擊下面的按鈕,為了簡單,以后就不截下面頁面的圖了。

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

獨立IP數

Zabbix監控Tomcat及Nginx

Nginx主頁的狀態

Zabbix監控Tomcat及Nginx

Nginx當前并發數

Zabbix監控Tomcat及Nginx

配置文件MD5值用來監控nginx配置文件是否被更改(注意圖中其信息類型)

Zabbix監控Tomcat及Nginx

當前吞吐量bps,并且讓其更新時間為60秒(注意其信息類型)

Zabbix監控Tomcat及Nginx

監控nginx工作進程的個數

Zabbix監控Tomcat及Nginx

監控Nignx虛擬主機的個數

Zabbix監控Tomcat及Nginx

3)創建觸發器

nginx服務意外停止工作觸發器
Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

創建Nginx主頁不可訪問的觸發器
Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

創建Nginx配置文件被修改觸發器
Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

4)添加被監控主機

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

5)查看Zabbix監控的數據

Zabbix監控Tomcat及Nginx

6)給監控nginx狀態添加映射(更加友好)

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx
Zabbix監控Tomcat及Nginx

確定已添加:
Zabbix監控Tomcat及Nginx

關聯到監控項

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

在Server端模擬并發,然后查看圖形檢測頁面:

[root@zabbix ~]# vim a.sh      #編寫腳本

#!/bin/bash
while true
do
ab -n 1000 -c 100 192.168.20.3/index.html &> /dev/null
done
[root@zabbix ~]# sh a.sh      #執行腳本

執行腳本后,圖形界面如下:

Zabbix監控Tomcat及Nginx

也可以自定義圖表,如下:
Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

Zabbix監控Tomcat及Nginx

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

微山县| 普定县| 津市市| 英超| 芜湖县| 阿荣旗| 图木舒克市| 池州市| 定州市| 色达县| 新疆| 隆回县| 萝北县| 新密市| 澄迈县| 桂阳县| 东莞市| 托里县| 大城县| 巴林左旗| 安图县| 乌兰浩特市| 阜城县| 二连浩特市| 宁化县| 铜山县| 太原市| 资中县| 蓬溪县| 沭阳县| 呼图壁县| 青海省| 措勤县| 台山市| 安图县| 香格里拉县| 大足县| 探索| 淮安市| 中牟县| 彰化县|