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"

五、数据查看

相关推荐
Yeats_Liao8 分钟前
Navicat 导出表结构后运行查询失败ERROR 1064 (42000): You have an error in your SQL syntax;
数据库·sql
明月看潮生1 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原
数据库·青少年编程·postgresql·编程与数学
明月看潮生1 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 14课题、触发器的编写
数据库·青少年编程·postgresql·编程与数学
加酶洗衣粉6 小时前
MongoDB部署模式
数据库·mongodb
Suyuoa6 小时前
mongoDB常见指令
数据库·mongodb
添砖,加瓦6 小时前
MongoDB详细讲解
数据库·mongodb
Zda天天爱打卡6 小时前
【趣学SQL】第二章:高级查询技巧 2.2 子查询的高级用法——SQL世界的“俄罗斯套娃“艺术
数据库·sql
我的运维人生6 小时前
MongoDB深度解析与实践案例
数据库·mongodb·运维开发·技术共享
步、步、为营6 小时前
解锁.NET配置魔法:打造强大的配置体系结构
数据库·oracle·.net
张3蜂6 小时前
docker Ubuntu实战
数据库·ubuntu·docker