Zabbix自定义监控项-实现对nginx,tomcat,Mysql性能的监控

Zabbix监控Nginx
  1. 首先在一台主机安装Nginx
[root@server3 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module #编译nginx的可监控模块
[root@server3 nginx-1.15.8]# make && make install 
  1. 编辑配置文件:nginx.conf
   location /status {
                stub_status on;
                access_log off;
                allow 127.0.0.1;
                deny all;
        }
  1. 我们可以通过curl命令来获取相关参数
[root@server3 nginx]# curl  -s http://localhost/status 
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0
accepts:允许多少次请求数
handled:多少次TCP握手
requests:可以处理请求

得到这些数据后我们就可以通过shell命令去获取指定的参数,从而去创建监控项。例如:

[root@server3 nginx]# curl -s http://localhost/status | grep Active | awk '{print $3}'
1 actice
[root@server3 nginx]# curl -s http://localhost/status |awk NR==3 |  awk '{print $1}'
4 accept
[root@server3 nginx]# curl -s http://localhost/status | awk NR==3 | awk '{print $3}'
5 requests
  1. 在zabbix-server端安装zabbix-get
    [root@server1 include]# yum install zabbix-get -y

  2. agent端编写相关配置:

[root@server1 zabbix]# cd zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf 
##编辑一个nginx
[root@server1 zabbix_agentd.d]# vim userparameter_nginx.conf 
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://localhost/status |awk NR==3 |  awk '{print $1}'
UserParameter=nginx.request,curl -s http://localhost/status | awk NR==3 | awk '{print $3}'

zabbix-server将会采集配置文件处理的信息,并通过web页面来展示出来

  1. server可以获取到nginx数据,表明采集成功,下面就是web页面配置
    [root@server1 zabbix_agentd.d]# zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.active" 1
  2. 选择nginx主机,创建监控项,这里的键值一定要与配置文件中的一致
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击图形,创建图形,添加新监控项
    在这里插入图片描述

测试:通过ab压测工具去多次测试

[root@foundation55 sbin]# ab -c1 -n2000 http://172.25.254.3/status 

在这里插入图片描述
zabbix-server已经采集到数据,并且我们可以发现,当连接10个并发,20000次请求时,nginx依然没有出现失败请求,nginx性能还是相当好的

Zabbix监控java应用,以tomcat为例
  1. zabbix-agent主机安装jdk,tomcat
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz  -C /usr/local/
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm 
  1. 编辑tomcat的配置脚本
[root@server2 bin]# vim catalina.sh 
	CATALINA_OPTS='-Dcom.sun.management.jmxremote
	  -Dcom.sun.management.jmxremote.port=8888
	  -Dcom.sun.management.jmxremote.ssl=false
	  -Dcom.sun.management.jmxremote.authenticate=false'
  1. 启动toncat
[root@server2 bin]# ./startup.sh 
  1. zabbix-server安装java-gateway
[root@server1 zabbix_agentd.d]# yum install zabbix-java-gateway -y
[root@server1 zabbix]# systemctl start zabbix-java-gateway
  1. 修改zabbix-server.conf
	JavaGateway=172.25.254.1
	JavaGatewayPort=10052
	StrtJavaPollers=5
  1. 重启服务,在server2添加JMX接口

在这里插入图片描述
添加模板:
在这里插入图片描述
主机server2已经打开JMX
在这里插入图片描述

Zabbix监控MySQL

Zabbix自带的监控模板中其实是带有监控项的,但是可以监控的内容是在过于太少,只有14个,所以接下来,我们通过percona模板实现对mysql数据库的监控

在这里插入图片描述
在这里插入图片描述

  1. 需要自己去下载percona-zabbix-templates-1.1.8-1.noarch.rpm安装包
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 
warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:percona-zabbix-templates-1.1.8-1 ################################# [100%]

Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
  1. 将模板放到zabbix配置文件目录下
[root@server1 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf  /etc/zabbix/zabbix_agentd.d/
  1. 添加数据库配置文件
[root@server1 zabbix]# pwd
/var/lib/zabbix
[root@server1 zabbix]# vim .my.cnf

[mysql]
user = zabbix
password = ql202897..
socket = /var/lib/mysql/mysql.sock
        
[mysqladmin]
user = zabbix   
password = ql20897..
socket = /var/lib/mysql/mysql.sock
  1. 修改php脚本
[root@server1 scripts]#  vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'ql202897..';
~                                

测试:没有报错

[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
19
  1. 导入模板,选择聚合图形
    在这里插入图片描述

  2. server主机添加导入的模板

在这里插入图片描述
此时发现监控项已经279个,比以前多了177个
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值