zabbix监控nginx和tomcat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix监控nginx和tomcat相关的知识,希望对你有一定的参考价值。

请先还原到“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图形监控
技术图片
技术图片
查看监控
技术图片
实验完毕

以上是关于zabbix监控nginx和tomcat的主要内容,如果未能解决你的问题,请参考以下文章

zabbix 4.0 安装配置(五)

zabbix监控搭建步骤

zabbix监控nginxmysqljava应用Zabbix + proxy分布式

zabbix开源监控解决方案-本地化

运维篇-zabbix监控基础

zabbix监控规划及实施