请先还原到“zabbix监控及邮件报警”的快照https://blog.51cto.com/14320361/2448847

监控tomcat zabbix_java_gateway:在 zabbix2.0之后引入的一个功能。顾名思义: Java网关,类似 agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会提交到 server或者 proxy。 如果需要开启监控tomcat需要在zabbix编译的的过程中添加--enable_java参数 一.Zabbix_server端配置 安装zabbix_java_gateway程序 (1)查看端口

  284  netstat -anpt | grep 9000
  285  netstat -anpt | grep mysql
  286  netstat -anpt | grep 80
  287  netstat -anpt | grep 10050

(2)安装zabbix_java_gateway程序

  288  rz   (上传zabbix-java-gateway-3.2.1-1.el7.x86_64.rpm)
  292  rpm -ivh zabbix-java-gateway-3.2.1-1.el7.x86_64.rpm 
(3)修改zabbix配置文件
  293  vim /etc/zabbix/zabbix_java_gateway.conf 
LISTEN_IP="0.0.0.0"   #java-gateway监听的地址
LISTEN_PORT=10052  #监听的端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"   #pid文件存放路径

(4)开启zabbix并查看端口

  294  systemctl start zabbix-java-gateway.service 
  295  netstat  -anpt | grep 10052
 
  296  vim /etc/zabbix/zabbix_java_gateway.conf 

(5)修改zabbixserver的配置文件,默认zabbix没有启动java监控程序

  297  vim /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=192.168.1.10   #215  本机IP
JavaGatewayPort=10052      #223 去注释
StartJavaPollers=5        #231

(6)重启zabbixserver端 298 /etc/init.d/zabbix_server restart

二. 配置tomcat 20 rpm -qa | grep jdk #检查是否安装rpm的java环境 21 rpm -e java-1.8.0-openjdk-headless java-1.7.0-openjdk-headless --nodeps ##卸载自带的java环境

   19  rz  (上传jdk和tomcat安装包)
   23  tar zxf jdk-8u211-linux-x64.tar.gz  -C /usr/local/
   24   tar zxf apache-tomcat-8.5.35.tar.gz 
   25    mv apache-tomcat-8.5.35 /usr/local/tomcat
   26  vim /etc/profile   (末尾添加)
export JAVA_H0ME=/usr/local/jdk1.8.0_211
export JRE_HOME=/usr/local/jdk1.8.0_211
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_H0ME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

   27  source  /etc/profile   (执行一下)
   28  java -version      (查看一下jdk是否安装成功)

Tomcat 开启jmx远程调试功能

   29  cd /usr/local/tomcat/
   31  vim bin/catalina.sh   (大约300行添加) 
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.1.20
-Dcom.sun.management.jmxremote.authenticate=flase"
启动tomcat并查看端口
   32  /usr/local/tomcat/bin/startup.sh 
   33  netstat -anput | grep 8888

服务终端测试

zabbixserver端进行配置(在浏览器上操作)

三.监控nginx服务器
1.安装依赖包

   49  yum -y install pcre-devel openssl-devel
2.安装nginx
48  rz              (上传nginx和zabbix安装包)
   50  tar zxf nginx-1.14.0.tar.gz 
   51  cd nginx-1.14.0/
   52  ./configure  && make && make install    (编译安装)
   53  ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/   (链接命令目录)
   54  nginx       (开启nginx)
   56  netstat -anpt | grep  nginx   (查看nginx端口)

3.安装zabbix

 21  tar zxf zabbix-3.2.1.tar.gz 
  22  cd zabbix-3.2.1/
  23    ./configure --prefix=/usr/local/zabbix --enable-agent
  24  make && make install
  26  cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/     (复制zabbix启动文件)
  27  vim /etc/init.d/zabbix_agentd     (修改zabbix启动文件)
       BASEDIR=/usr/local/Zabbix  #22
       PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  #31
  29  cd /usr/local/Zabbix      
  30  vim etc/zabbix_agentd.conf              (修改zabbix配置文件)
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid   #11          (需要创建所需目录)
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log  #30   
Server=192.168.1.10  #91 服务端IP
ListenPort=10050  #99
ListenIP=0.0.0.0  #107
ServerActive=192.168.1.10  #132 服务端IP
Hostname=192.168.1.20  #143 客户端IP
Timeout=3 #232
UnsafeUserParameters=1  #278
#287 修改添加
UserParameter=nginx.info[*],/usr/local/zabbix/scripts/nginx.sh  $1   (需要创建所需目录)
UserParameter=nginx.ping[*],netstat  -anput | grep   -w  80   | grep  -w LISTEN | wc -l

  31  mkdir  /usr/local/zabbix/scripts      (创建所需目录)
  32  cd /usr/local/zabbix/scripts/

4.安装nginx

33  rz 
   34  vim nginx.sh  (修改ip)
编写监控nginx脚本
#!/bin/bash
#This is a scripts for checking nginx 
case $1 in
index)
    RS=`curl -s -I 192.168.83.7/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.83.7/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
   37  yum -y install httpd-tools  (ab压力测试需要)
   41  ab -q -n 1000 -c 1000 http://192.168.1.20/index.html 
   42  chmod +x nginx.sh      (改nginx.sh可执行权限)
   43  useradd  Zabbix         (创建所需用户)
   44  mkdir /usr/local/zabbix/logs   (创建所需目录)
   45  chown  -R zabbix:zabbix  /usr/local/zabbix/   (给配置目录zabbix用户拥有)
   49  /etc/init.d/zabbix_agentd start          (开启zabbix)
   50  netstat  -anpt | grep Zabbix            (查看zabbix端口)

服务端测试 zabbix_get -s 192.168.1.20 -p 10050 -k nginx.info[index] zabbix_get -s 192.168.1.20 -p 10050 -k nginx.ping 客户端给予权限 chmod +s /usr/bin/netstat 再次在服务端测试 zabbix_get -s 192.168.1.20 -p 10050 -k nginx.ping

四.回到浏览器zabbixserver端创建nginx监控模板 1、 监控nginx运行状态 2、 监控nginx总访问量 3、 独立IP数

4、 nginx主页的状态

  1. nginx当前并发数

6、配置文件MD5值用来监控nginx配置文件是否被更改

7、当前吞吐量bps,并且让其更新时间为60秒

8、nginx工作进程的个数 9、nignx虚拟主机的个数

五.创建触发器 创建nginx服务意外停止工作!触发器,表达式格式{} {Temlate App Nginx Service:nginx.ping.last(0)} = 0 Template App Nginx Service 模板名 nginx.ping 键名 last(0) 方法:表示当前的。。 last(1)表示上一个。。 创建“Nginx主页不可访问”的触发器 {Temlate App Nginx Service:nginx.ping.last(0)} > 400

创建“Nginx文件被修改”的触发器 {Temlate App Nginx Service:nginx.info[MD5].last(0)} <> {Temlate App Nginx Service:nginx.info[MD5].last(1)}

六.在客户端主机中添加创建的nginx模板 查看zabbix监控的数据 给监控nginx状态添加映射(更加友好) 关联到监控项

创建nginx图形监控 查看监控 实验完毕