zabbix自定义监控---实践训练

一. 使用脚本监控 nginx访问状态

  1. 查看nginx访问状态脚本
#!/bin/sh
nginx_status_fun(){
	NGINX_PORT=$2
	NGINX_COMMAND=$1
	nginx_active(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
        }
	nginx_reading(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
       }
	nginx_writing(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
       }
	nginx_waiting(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
       }
	nginx_accepts(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
       }
	nginx_handled(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
       }
	nginx_requests(){
        /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
       }
case $NGINX_COMMAND in
                active)
                        nginx_active;
                        ;;
                reading)
                        nginx_reading;
                        ;;
                writing)
                        nginx_writing;
                        ;;
                waiting)
                        nginx_waiting;
                        ;;
                accepts)
                        nginx_accepts;
                        ;;
                requests)
                        nginx_requests;
                        ;;
                handled)
                        nginx_handled;
                esac
}
nginx_status_fun $1 $2
  • 给文件执行权限
[root@zabbix-agent ~]# chmod +x zabbix_nginx.sh 
  • 测试
[root@zabbix-agent ~]# sh zabbix_nginx.sh active 80
1
[root@zabbix-agent ~]# sh zabbix_nginx.sh reading 80
0
[root@zabbix-agent ~]# sh zabbix_nginx.sh writing 80
1
[root@zabbix-agent ~]# sh zabbix_nginx.sh accepts 80
1558
[root@zabbix-agent ~]# sh zabbix_nginx.sh requests 80
1559
  1. 创建监控项配置文件
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
[root@zabbix-agent ~]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/etc/zabbix/zabbix_agentd.d/.sh "$1" "$2" 
  1. 重启zabbix-agent
[root@zabbix-agent ~]# systemctl restart zabbix-agent.service 
  1. 在zabbix_server上测试
[root@zabbix-server /]# zabbix_get -s 192.168.126.130 -k nginx_status[active,80]
1
[root@zabbix-server /]# zabbix_get -s 192.168.126.130 -k nginx_status[accepts,80]
104
  1. web界面创建模板,添加监控项
  • 创建模板

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

  • 添加监控项

在这里插入图片描述

进入后点击创建监控项

在这里插入图片描述

填好之后点击添加

  • 按照上一步方法将剩余6项添加到同一个模板下,可以克隆后修改数据

点击创建好的监控项----》点击最下方的克隆

在这里插入图片描述

  • 全部添加

在这里插入图片描述

  • 将监控项绘制成图像

点击配置 —》找到模板nginx_status---->找到图像-----》点击创建图像

在这里插入图片描述

  1. 将模板连接到nginx的机器

在这里插入图片描述

  1. 查看检测到的数据
  • 检查数据
    在这里插入图片描述

  • 检查图像

在这里插入图片描述

因此不建议将多个数据值差异大的数据放在一起。

  1. 导出模板,方便下次使用,避免都是,方便传递。

在这里插入图片描述


二. 使用模板监控 MySQL

使用percona插件监控mysql

percona 官网: www.percona.com

percona插件组成:

  • php脚本:用来采集数据
  • shell脚本:用来调用采集信息
  • zabbix配置文件
  • zabbix模板文件
  1. 安装percona插件
[root@zabbix-agent ~]# wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm   #下载rpm包

[root@zabbix-agent ~]# yum install percona-zabbix-templates-1.1.7-2.noarch.rpm -y 
[root@zabbix-agent ~]# yum install percona-zabbix-templates php php-mysql -y   #安装依赖工具

percona 插件是通过 php 去获取 mysql 的参数,所以我们要安装 php 和 php-mysql

  1. 查看安装包位置
[root@zabbix-agent ~]# rpm -ql percona-zabbix-templates
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh  #shell脚本 
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php      #php文件,获取mysql信息
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf   #zabbix监控项配置文件
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.7.xml           #zabbix模板文件
  1. 将模板文件导入zabbix
  • 将模板文件下载到本地后上传到zabbix。

在这里插入图片描述

  • 导入

在这里插入图片描述

  • 这个时候是会出现错误的

在这里插入图片描述

解决方法有两个

将模板导入到2.4环境中,然后再导出到3的环境中,不会报错。

百度上下载一个模板。(我是下载的)

  • 使用下载好的模板成功导入
  1. 将脚本文件和php文件中数据库用户名和密码修改
[root@zabbix-agent ]# cd /var/lib/zabbix/percona/scripts
[root@zabbix-agent scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php
  • 修改脚本件
[root@zabbix-agent scripts]# vim get_mysql_stats_wrapper.sh 
#找到第19行,加上 -uroot -p123456
 19     RES=`HOME=~zabbix mysql -uroot -p123456 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' |     awk -F: '{print $2}' | tr '\n' ','`
  • 修改php文件
[root@zabbix-agent scripts]# vim ss_get_mysql_stats.php
#找到以下几项
  30 $mysql_user = 'root';
  31 $mysql_pass = '116902';
  1. 将监控项配置文件放在指定位置:/etc/zabbix/zabbix_agentd.d/。并测试
[root@zabbix-agent ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/   #userparameter_percona_mysql.conf 就是一个自定义监控项,其中有许多监控项
  • 在zabbix-server测试监控项:MySQL.Sort-scan就是userparameter_percona_mysql.conf 中一个监控项。
[root@zabbix-server ~]# zabbix_get -s 192.168.126.130 -k MySQL.Sort-scan 
0

测试成功,取到了数据。

  1. 页面配置监控
  • 将上传的模板连接到需要监控的主机上

在这里插入图片描述

  • 检查是否收集到数据

此时已经陆续收集到了数据

在这里插入图片描述

也可以看到图形

在这里插入图片描述
mysql监控配置完成


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值