Zabbix自定义脚本监控MySQL数据库

一、MySQL数据库配置

1.1 创建Mysql数据库用户

root@mysql \~\]# mysql -uroot -p create user zabbix@'127.0.0.1' identified by '123456'; flush privileges;

1.2 添加用户密码到mysql client的配置文件中

root@mysql \~\]# vim /etc/my.cnf.d/client.cnf \[client

host='127.0.0.1'

user='zabbix'

password='123456'

二、创建自定义监控脚本

root@mysql \~\]# vim /etc/zabbix/script/check_mysql.sh

bash 复制代码
#!/bin/bash
#Mysql主机地址
MYSQL_HOST='127.0.0.1'
#Mysql端口
MYSQL_PORT='3306'
#数据连接
MYSQL_CONN="/usr/bin/mysqladmin  -h${MYSQL_HOST} -P${MYSQL_PORT}"

#参数是否正确
if [ $# -ne "1" ];then
    echo "arg error!" 
fi

#获取数据
case $1 in
    Uptime)
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
        echo $result 
        ;;
    Com_update)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
        echo $result 
        ;;
    Slow_queries)
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
        echo $result 
        ;;
    Com_select)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
        echo $result 
                ;;
    Com_rollback)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
                echo $result 
                ;;
    Questions)
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
                echo $result 
                ;;
    Com_insert)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
                echo $result 
                ;;
    Com_delete)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
                echo $result 
                ;;
    Com_commit)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
                echo $result 
                ;;
    Bytes_sent)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
                echo $result 
                ;;
    Bytes_received)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
                echo $result 
                ;;
    Com_begin)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
                echo $result 
                ;;
        *)
        echo "Unknown options." 
        ;;
esac

三、zabbix agent添加自定义键值

root@mysql \~\]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf UserParameter=mysql.status\[\*\],bash /etc/zabbix/script/check_mysql.sh $1 UserParameter=mysql.ping,/usr/bin/mysqladmin ping 2\>/dev/null \| grep -c alive UserParameter=mysql.version,/usr/bin/mysql -V \[root@mysql \~\]# systemctl restart zabbix-agent

四、链接Mysql模板

配置-->主机-->添加模板-->选择"Template DB MySQL"

五、数据查看

相关推荐
直有两条腿7 分钟前
【数据迁移】HBase Bulkload批量加载原理
大数据·数据库·hbase
言之。29 分钟前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
m0_64880493_江哥43 分钟前
用正则方法从中英文本提取英文的python示例
python·mysql·正则表达式
白衣鸽子2 小时前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
九皇叔叔2 小时前
Linux Shell 正则表达式:从入门到实战,玩转文本匹配与处理
linux·mysql·正则表达式
DokiDoki之父3 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
Wang's Blog3 小时前
MySQL: 高并发电商场景下的数据库架构演进与性能优化实践
mysql·性能优化·数据库架构
TDengine (老段)4 小时前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
机灵猫4 小时前
Redis 在订单系统中的实战应用:防重、限流与库存扣减
数据库·redis·缓存
木易2.04 小时前
从零构建RAG知识库管理系统(二)
数据库·oracle