请先还原到“zabbix监控及邮件报警”的快照https://blog.51cto.com/14320361/2448847
监控tomcatzabbix_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
二. 配置tomcat20 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主页的状态
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图形监控查看监控实验完毕