温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

zabbix监控redis、tomcat、Nginx

发布时间:2020-02-26 04:07:37 来源:网络 阅读:340 作者:筱振 栏目:系统运维

本次博文需基于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界面配置如下:
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

(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监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
需在zabbix agent端进行配置,如下:

[root@zabbix ~]# cd /usr/local//zabbix/etc/zabbix_agentd.conf.d/
[root@zabbix zabbix_agentd.conf.d]# vim zbx_redis.conf
UserParameter=redis.status[*],/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 info|grep $1|grep -v _human|cut -d : -f2
UserParameter=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监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

验证成功!

二、配置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 10052
LISTEN     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 8080
LISTEN     0      100         :::8080                    :::*                  
[root@tomcat ~]# ss -lnt | grep 8888
LISTEN     0      50          :::8888                    :::*   

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

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
可以看到已经监控到数据了!

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.pid
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.10
 ListenPort=10050
ServerActive=192.168.1.10
Hostname=192.168.1.7
Timeout=15
Include=/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/bash
case $1 in
index)
    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页面

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

1)配置应用集

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

2)配置监控项

检测nginx是否存活
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

监控Nginx总访问量
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

独立IP数
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

Nginx主页的状态
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

Nginx当前并发数
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

根据MD5值来监控nginx配置文件是否被更改
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

nginx当前吞吐量bps
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

监控nginx工作进程的个数
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

监控nginx虚拟主机的个数
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

3)创建触发器

nginx服务意外停止工作触发器
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

表达式编写规范:

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

创建Nginx主页不可访问的触发器
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

创建Nginx配置文件被修改触发器
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

4)添加被监控主机

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

5)查看zabbix监控的数据

zabbix监控redis、tomcat、Nginx

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

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

7)关联到监控项

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

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

zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx

也可自定义图表,如下:
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
zabbix监控redis、tomcat、Nginx
监控nginx成功!

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI