千家信息网

zabbix监控redis、tomcat、Nginx

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本次博文需基于zabbix的基本环境,可参考搭建zabbix一、配置zabbix监控redis(1)部署zabbix agent端部署agent端详细信息、下载软件包可参考博文配置Zabbix监控之邮
千家信息网最后更新 2025年01月22日zabbix监控redis、tomcat、Nginx

本次博文需基于zabbix的基本环境,可参考搭建zabbix

一、配置zabbix监控redis

(1)部署zabbix agent端

部署agent端详细信息、下载软件包可参考博文配置Zabbix监控之邮件报警、微信报警这里就不进行详细解释了!

[root@agent ~]# tar zxf zabbix-3.2.1.tar.gz  && cd zabbix-3.2.1/[root@agent zabbix-3.2.1]#   ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install[root@agent zabbix-3.2.1]#  useradd zabbix[root@agent zabbix-3.2.1]#  cp /root/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/[root@agent zabbix-3.2.1]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd [root@agent zabbix-3.2.1]#  chmod +x /etc/init.d/zabbix_agentd [root@agent zabbix-3.2.1]#  cd /usr/local/zabbix/etc/[root@agent etc]# sed -i '/PidFile=/s/^#//'  zabbix_agentd.conf[root@agent etc]#  sed -i 's/Server=127.0.0.1/Server=192.168.1.10/g' zabbix_agentd.conf[root@agent etc]#  sed -i '/ListenPort=/s/^#//'  zabbix_agentd.conf[root@agent etc]#  sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.10/g' zabbix_agentd.conf[root@agent etc]#  sed -i 's/Hostname=Zabbix server/Hostname=192.168.1.8/g' zabbix_agentd.conf[root@agent etc]#  echo -e "Timeout=15" >> zabbix_agentd.conf[root@agent etc]#  echo -e "Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/" >> zabbix_agentd.conf[root@agent etc]# /etc/init.d/zabbix_agentd start

web界面配置如下:




(2)安装redis服务

需在agent进行安装:

[root@agent ~]# tar zxf redis-4.0.14.tar.gz [root@agent ~]# cd redis-4.0.14/[root@agent redis-4.0.14]# make && make install[root@agent redis-4.0.14]# cd utils/[root@agent utils]# ./install_server.sh 

(3)定义监控redis文件

如图:




需在zabbix agent端进行配置,如下:

[root@zabbix ~]# cd /usr/local//zabbix/etc/zabbix_agentd.conf.d/[root@zabbix zabbix_agentd.conf.d]# vim zbx_redis.confUserParameter=redis.status[*],/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 info|grep $1|grep -v _human|cut -d : -f2UserParameter=redis.proc,pidof redis-server | wc -l//对下载的配置文件进行修改并存放在指定的地方[root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart//重启启动zabbix agent服务

(4)zabbix server进行测试

[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k redis.status[used_memory:]849472//有数据返回表示没有问题

(5)导入模板并监控

如图:




验证成功!

二、配置zabbix监控tomcat

监控Tomcat需要用到zabbix_java_gateway这个组件(在zabbix2.0引入的功能),顾名思义就是:Java网关,类似于agentd,但是只用于Java方面。需要注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会提交到server端或proxy。
如果需要开启监控Tomcat功能,在编译zabbix server端时,需要添加--enable_java 参数;或者通过以下RPM的方式安装。

(1)zabbix server 安装zabbix_java_gateway程序

zabbix_java_gateway程序既可以安装在zabbix server端,也可以安装在被监控端,也可单独安装,不过一般都是安装在Zabbix server。那么本次案例就安装在zabbix server端。

下载所需软件

zabbix server(192.168.1.8)端的操作如下:

[root@zabbix ~]# rpm -ivh zabbix-java-gateway-3.2.1-1.el7.x86_64.rpm [root@zabbix ~]# sed -i '/LISTEN_IP=/s/^#//' /etc/zabbix/zabbix_java_gateway.conf[root@zabbix ~]# sed -i '/LISTEN_PORT=/s/^#//' /etc/zabbix/zabbix_java_gateway.conf[root@zabbix ~]# systemctl start zabbix-java-gateway.service[root@zabbix ~]# ss -lnt | grep 10052LISTEN     0      50          :::10052                   :::*           [root@zabbix ~]# sed -i 's/# JavaGateway=/JavaGateway=192.168.1.10/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix ~]# sed -i '/JavaGatewayPort/s/^#//' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix ~]#  sed -i 's/# StartJavaPollers=0/StartJavaPollers=5/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix ~]# /etc/init.d/zabbix_server restart[root@zabbix ~]# jconsole          /确保这条命令可以使用,此命令是Java-gateway提供的。

(2)测试端安装、配置tomcat

tomcat测试机(192.168.1.8)的操作如下:

[root@tomcat ~]# java -version        //确保java的环境openjdk version "1.8.0_161"OpenJDK Runtime Environment (build 1.8.0_161-b14)OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)[root@tomcat ~]# tar zxf apache-tomcat-8.5.35.tar.gz [root@tomcat ~]# mv apache-tomcat-8.5.35 /usr/local/tomcat[root@tomcat ~]# sed -i '308a 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.8  -Dcom.sun.management.jmxremote.authenticate=flase" ' /usr/local/tomcat/bin/catalina.sh //必须保证内容插入到以下位置(两个#号中)# ----- Execute The Requested Command -----------------------------------------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.8  -Dcom.sun.management.jmxremote.authenticate=flase"# Bugzilla 37848: only output this if we have a TTY//添加的内容中:IP为Tomcat本机的IP,端口"8888"可以自定义,不要冲突即可![root@tomcat ~]# /usr/local/tomcat/bin/startup.sh [root@tomcat ~]# ss -lnt | grep 8080LISTEN     0      100         :::8080                    :::*                  [root@tomcat ~]# ss -lnt | grep 8888LISTEN     0      50          :::8888                    :::*   

(3)登录到zabbix server提供的web界面进行配置






可以看到已经监控到数据了!

tomcat监控完成!

三、配置zabbix监控nginx

(1)测试机(192.168.1.7)部署zabbix agent

[root@nginx ~]# tar zxf zabbix-3.2.1.tar.gz  && cd zabbix-3.2.1/[root@nginx zabbix-3.2.1]#  ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install[root@nginx zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/[root@nginx zabbix-3.2.1]# useradd zabbix[root@nginx zabbix-3.2.1]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd [root@nginx zabbix-3.2.1]# chmod +x /etc/init.d/zabbix_agentd [root@nginx zabbix-3.2.1]# cd /usr/local/zabbix/etc/[root@nginx etc]#  sed -i '/PidFile=/s/^#//'  zabbix_agentd.conf[root@nginx etc]# sed -i 's/Server=127.0.0.1/Server=192.168.1.10/g' zabbix_agentd.conf[root@nginx etc]# sed -i '/ListenPort=/s/^#//'  zabbix_agentd.conf[root@nginx etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.10/g' zabbix_agentd.conf[root@nginx etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.1.7/g' zabbix_agentd.conf[root@nginx etc]# echo -e "Timeout=15" >> zabbix_agentd.conf[root@nginx etc]# echo -e "Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/" >> zabbix_agentd.conf[root@nginx etc]# egrep -v '^$|^#' zabbix_agentd.conf PidFile=/tmp/zabbix_agentd.pidLogFile=/tmp/zabbix_agentd.logServer=192.168.1.10 ListenPort=10050ServerActive=192.168.1.10Hostname=192.168.1.7Timeout=15Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/[root@nginx etc]#  /etc/init.d/zabbix_agentd start  [root@nginx etc]# ss -lnt | grep 10050

(2)测试机(192.168.1.7)部署nginx服务

[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel[root@nginx ~]# wget http://nginx.org/download/nginx-1.14.0.tar.gz[root@nginx ~]# tar zxf nginx-1.14.0.tar.gz [root@nginx ~]# cd nginx-1.14.0/[root@nginx nginx-1.14.0]#  ./configure --with-http_stub_status_module && make && make install[root@nginx nginx-1.14.0]# /usr/local/nginx/sbin/nginx [root@nginx ~]#  mkdir /usr/local/zabbix/scripts/[root@nginx ~]# vim /usr/local/zabbix/scripts/nginx.sh#!/bin/bashcase $1 inindex)    RS=`curl -s -I 192.168.1.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.1.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[root@nginx ~]# chmod +s /usr/bin/netstat[root@nginx ~]# chmod +x /usr/local/zabbix/scripts/nginx.sh [root@nginx ~]# cd /usr/local/zabbix/etc/[root@nginx etc]# echo -e 'UnsafeUserParameters=1' >> zabbix_agentd.conf[root@nginx etc]# echo -e 'UserParameter=nginx.info[*],/usr/local/zabbix/scripts/nginx.sh  $1' >> zabbix_agentd.conf[root@nginx etc]# echo -e 'UserParameter=nginx.ping[*],netstat -anput | grep -w 80 | grep -w LISTEN | wc -l' >> zabbix_agentd.conf[root@nginx etc]# /etc/init.d/zabbix_agentd restart

(3)zabbix server进行测试

[root@zabbix ~]# zabbix_get -s 192.168.1.7 -p 10050 -k nginx.info[index]200//有返回值则表示连接成功

(4)配置web页面


1)配置应用集



2)配置监控项

检测nginx是否存活

监控Nginx总访问量

独立IP数

Nginx主页的状态

Nginx当前并发数

根据MD5值来监控nginx配置文件是否被更改

nginx当前吞吐量bps

监控nginx工作进程的个数

监控nginx虚拟主机的个数

3)创建触发器

nginx服务意外停止工作触发器

表达式编写规范:

{Template App Nginx Service:nginx.ping.last(0)} = 0Template App Nginx Service  模板名nginx.ping    键名last(0)       方法:表示当前的。。  last(1)表示上一个。。

创建Nginx主页不可访问的触发器

创建Nginx配置文件被修改触发器

4)添加被监控主机



5)查看zabbix监控的数据

6)给监控nginx状态添加映射




7)关联到监控项



[root@zabbix ~]# yum -y install httpd-tools[root@zabbix ~]# ab -n 100 -c 100 http://192.168.1.7/index.html//模拟并发


也可自定义图表,如下:




监控nginx成功!

--------------本文到此结束,感谢阅读------------------

0