CentOS 7版本zabbix监控平台(5.0)自定义监控项

监控内容

# 1、 主从复制状态
# 2、 mysql增删改查次数
# 21、mysql的insert次数
# 22、mysql的delect次数
# 23、mysql的update次数
# 24、mysql的select次数
# 3、 mysql启动时间
# 4、 mysql的qps 每秒查询速率
# 45 mysql的tps 每秒事务速率
# 5、 主从同步延迟
# 6、 磁盘剩余空间 /分区 /data分区
# 7、 内存使用百分比
# 8、 swap使用百分比
# 9、 网卡下载流量速率
# 95、网卡上传流量速率
# 10、mysql的当前连接数

监控内容获取脚本

#! /usr/bin/bash
# echo "
# ============================================
#           工具箱说明
# 1、 主从复制状态
# 2、 mysql增删改查次数
# 21、mysql的insert次数
# 22、mysql的delect次数
# 23、mysql的update次数
# 24、mysql的select次数
# 3、 mysql启动时间
# 4、 mysql的qps 每秒查询速率
# 45 mysql的tps 每秒事务速率
# 5、 主从同步延迟
# 6、 磁盘剩余空间 /分区 /data分区
# 7、 内存使用百分比
# 8、 swap使用百分比
# 9、 网卡下载流量速率
# 95、网卡上传流量速率
# 10、mysql的当前连接数
# q、 退出程序
# =============================================
# "
 
## mysql 数据库用户、密码   
user=root               # 数据库用户
passwd=Xxxx@123        # 数据库密码
untime=`mysql -u$user -p$passwd -e "show global status like 'uptime';" 2> /dev/null | tail -1 | awk '{print $2}'`
mysql_master(){
   mysql -u$user -p$passwd -e "show slave status\G" 2> /dev/null  > mysql_sele.txt
    IO=`grep "Slave_IO_Running:" mysql_sele.txt | awk '{print $NF}'`
    SQL=`grep "Slave_SQL_Running:" mysql_sele.txt | awk '{print $NF}'`
    rm -rf mysql_sele.txt
      if [ -z "$IO" ];then
        echo "Slave_IO_Running:" 0
      else
	if [ $SQL == "Yes" ];then 
		if [ $IO == "Yes" ];then
		echo 主从状态 1
		fi
	else
		echo 主从状态 0
	fi 
      fi
}

# mysql增删改查次数获取
mysql_zsgc(){
    select=`mysql -u$user -p$passwd -e "show global status like 'Com_select';" 2> /dev/null | tail -1 | awk '{print $2}'`
    delete=`mysql -u$user -p$passwd -e "show global status like 'Com_delete';" 2> /dev/null | tail -1 | awk '{print $2}'`
    insert=`mysql -u$user -p$passwd -e "show global status like 'Com_insert';" 2> /dev/null | tail -1 | awk '{print $2}'`
    update=`mysql -u$user -p$passwd -e "show global status like 'Com_update';" 2> /dev/null | tail -1 | awk '{print $2}'`
#    echo "insert次数:"$insert
#    echo "delete次数:"$delete
#    echo "update次数:"$update
#    echo "select次数:"$select
#    echo  "增删改查次数:" $[ $select + $delete + $insert + $update ]
}
# 2、 mysql增删改查总次数
mysql_all(){
    mysql_zsgc
    echo  "增删改查次数:" $[ $select + $delete + $insert + $update ]
}

# 21、mysql的insert次数
mysql_insert(){
    mysql_zsgc
    echo "insert次数:" $insert
}

# 22、mysql的delect次数
mysql_delect(){
    mysql_zsgc
    echo "delete次数:" $delete
}

# 23、mysql的update次数
mysql_update(){
    mysql_zsgc
    echo "update次数:" $update
}
# 24、mysql的select次数
mysql_select(){
    mysql_zsgc
    echo "select次数:" $select
}
 
# 3、mysql启动时间
mysql_time(){
    echo "uptime:" $untime
}
 
# 4、mysql的qps 每秒查询速率
mysql_qps(){
    QPS1=`mysql -u$user -p$passwd -e "show global status like 'Questions';" 2> /dev/null | tail -1 | awk '{print $2}'`
    echo "mysql的qps(每秒查询速率):" $[ $QPS1 / $untime ]
}
# 45、mysql的tps每秒事务速率
mysql_tps(){
    commit=`mysql -u$user -p$passwd -e "show global status like 'Com_commit';" 2> /dev/null | tail -1 | awk '{print $2}'`
    rollback=`mysql -u$user -p$passwd -e "show global status like 'Com_rollback';" 2> /dev/null | tail -1 | awk '{print $2}'`
    echo "mysql的tps(每秒事务速率):"  $[ ( $commit + $rollback) / $untime ] 
}
 
# 5、主从同步延迟
mysql_mastertime(){
    mysql -u$user -p$passwd -e "show slave status\G" 2> /dev/null > mysql_sele.txt
    Master_time=`grep "Seconds_Behind_Master" mysql_sele.txt | awk '{print $NF}'`
    rm -rf mysql_sele.txt
    echo "主从同步延迟时间:"  $Master_time
}
 
# 6、磁盘剩余空间 /分区 /data分区
data_a(){
    echo "/分区剩余空间:" `df -Th | awk '/\/$/{print $(NF -2)}' | tr -d 'G'`
#    echo "data分区剩余空间:" `df -Th | awk '/\/data$/{print $(NF -2)}'`
}
 
# 7、内存使用百分比
mem(){
    all_Mem=`free | tail -2 | head -1 |awk '{print $2}'`
    user_sMem=`free | tail -2 | head -1 | awk '{print $3}'`
    echo "内存使用率:"  $[ $user_sMem * 100 /$all_Mem ]
}
 
# 8、swap使用百分比
swap(){
    all_swap=`free | tail -1 | awk '{print $2}'`
    user_swap=`free | tail -1 | awk '{print $3}'`
    echo "swap使用率:"  $[ $user_swap * 100 /$all_swap ]
}
# 9、网卡下载流量速率
ens33(){
        loadin=`cat /proc/net/dev | awk '/ens33/{print $2}'`
        sleep 1
        loadin2=`cat /proc/net/dev | awk '/ens33/{print $2}'`
        echo "网络状态" 下载: $[ ($loadin2 - $loadin) / 1024 ]
}

# 95、网卡上传流量速率
ens34(){
	userin=`cat /proc/net/dev | awk '/ens33/{print $10}'`
	sleep 1
	userin2=`cat /proc/net/dev | awk '/ens33/{print $10}'`
	echo "网络状态" 上传: $[ ($userin2 - $userin) / 1024 ]
}

# 10、mysql的当前连接数
mysql_link(){
    linka_mysql=`mysql -u$user -p$passwd -e "SHOW STATUS LIKE 'Threads_connected'" 2> /dev/null | tail -1 | awk '{print $2}'`
    echo "mysql的当前连接数:" $linka_mysql 
}
 
 
# read -p "请输入序号:" numb
case $1 in
1)   mysql_master      ;;
2)   mysql_all         ;;
21)  mysql_insert      ;;
22)  mysql_delect      ;;
23)  mysql_update      ;;
24)  mysql_select      ;;
3)   mysql_time        ;;
4)   mysql_qps	       ;;
45)  mysql_tps         ;;
5)   mysql_mastertime  ;;
6)   data_a            ;;
7)   mem               ;;
8)   swap              ;;
9)   ens33             ;;
95)  ens34  	       ;;
10)  mysql_link        ;;
q)   exit              ;;
*)   echo "输入有误,请重新输入"
                      ;;
esac


1、mysql-slave从设备添加到zabbix主机中,可参考

CentOS 7安装5.0版本zabbix监控平台(nginx版),zabbix-agent端icon-default.png?t=N7T8https://blog.csdn.net/weixin_60250117/article/details/138723110?spm=1001.2014.3001.5501

2、mysql-slave从设备配置上文脚本内容,用于获取信息

mkdir /etc/zabbix/zabbix_sh

vim /etc/zabbix/zabbix_sh/shell_tools.sh

监控内容获取脚本粘贴导入

:wq   # 保存退出

chmod a+x /etc/zabbix/zabbix_sh/shell_tools.sh  # 授权

3、mysql-slave从设备配置zabbix配置文件

cd /etc/zabbix/zabbix_agentd.d
vim mysql_status.conf     # 文件名已.conf结尾就行

UserParameter=mysql_master.status[*],sudo sh /etc/zabbix/zabbix_sh/shell_tools.sh $1 | awk '{print $$NF}'       

#UserParameter=固定格式,mysql_master.status[*] 键名称,[*] 传递后边的 $1 变量,$1 为 脚本中 case 的选项数字,$$是为了区别前边的$1

3.5、mysql-slave从设备重启zabbix-agent服务

systemctl restart zabbix-agent

4、mysql-slave从设备配置sudo文件,给zabbix用户提权

visudo

zabbix  ALL=(ALL)       NOPASSWD: ALL    # 添加进去并保存退出

5、zabbix-server端web网页添加监控项

5.1,可先创建模板,用于多台设备批量使用

5.2、填写模板名称,添加主机群组

5.3、模板列表里找到刚才创建的模板名称,点击进去,创建监控项

5.4、填写名称,可中文,填写键值,步骤3种的蓝色字体文字,[*]中的*替换为脚本中要监控的内容的case选项

5.5、添加完想要的监控项后,点配置-主机,选择对应的主机,添加模板

5.6、查看监控数据,点检测-最新数据

5.7、也可以图形模板,将监控项展示。点 配置-模板,选择刚才的模板

5.8、填写图形名称,添加监控项,可添加多个

5.9、添加完成后,监测-主机,点击对应的主机,会出现展开栏,就会有图形,点击进去就可以查看到,但是不便于观看,这里将其做成聚合图形

5.10、选择所有者,填写名称,因为此处创建了6个图形,所以设置三行,两列

5.11、选择对应的图形,全部添加后的样子

5.12、后续查看,点检测-聚合图形-选择对应的名称,点击即可查看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值