zabbix监控mysql数据

zabbix-agent端监控mysql数据
保证zabbix先安装成功
1.在zabbix-agent端安装mysql数据库

yum -y install mariadb mariadb-server

2.开启mysql数据库

systemctl start mariadb

3.mysql数据库监控的内容有:

  • mysql的吞吐量
  • mysql的常规操作(增删改查)
  • QPS(Questions Per second:)每秒能处理多少次请求数
  • TPS(Transactions Per Second)每秒查询处理的事务数
  • mysql库大小和表大小
  • 监控innodb缓冲池的read命中率
mkdir /etc/zabbix/scripts/
cd /etc/zabbix/scripts/
vim mysql.sh
#!/bin/bash
case $1 in
        #mysql吞吐量
        #流量发送
        Bytes_sent)
        mysqladmin extended-status|grep "Bytes_sent"|awk '{print $4}'
        ;;
        #流量接收
        Bytes_received)
        mysqladmin extended-status|grep "Bytes_received"|awk '{print $4}'
        ;;
        #mysql数据库增删改查
        #增
        Com_insert)
        mysqladmin extended-status|grep -w "Com_insert"|awk '{print $4}'
        ;;
        #删
        Com_delete)
        mysqladmin extended-status|grep -w "Com_delete"|awk '{print $4}'
        ;;
        #改
        Com_update)
        mysqladmin extended-status|grep -w "Com_update"|awk '{print $4}'
        ;;
        #查
        Com_select)
        mysqladmin extended-status|grep -w "Com_select"|awk '{print $4}'
        ;;
        #mysql的性能指标        
        qps)
        q1=`mysql -s -e "show global status like 'Question%'"|awk '{print $NF}'`
        t1=`uptime |awk '{print $3}'|sed "s/,//"|awk  -F ":" '{print $1*3600+$2*60}'`
        n=`echo "scale=4;$q1/$t1"|bc`
        echo $n
        ;;
        tps)
        c1=`mysql -s -e "show global status like 'Com_commit'"|awk '{print $NF}'`
        r1=`mysql -s -e "show global status like 'Com_rollback'"|awk '{print $NF}'`
        t1=`uptime |awk '{print $3}'|sed "s/,//"|awk  -F ":" '{print $1*3600+$2*60}'`
        n1=$((c1+r1))
        n=`echo "scale=4;$n1/$t1"|bc`
        echo $n
        ;;
        #mysql的库大小、表大小
        #mysql库大小
        db_size)
        mysql -e "select sum(data_length)from information_schema.tables where table_schema='mysql';"|sed '1d'
        ;;
        tb_size)
        mysql -e "select sum(data_length)from information_schema.tables where table_schema='mysql'and table_name='user';"|sed '1d'
        ;;
        #监控innodb缓冲池的read命中率
        innodb_read)
        mysql -e "show global status like 'innodb%read%';" | grep Innodb_buffer_pool_read_requests | awk '{print $2}'
        ;;
esac

4.增加监控项(自定义key)

[root@localhost scripts]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim mysql.conf
UserParameter=mysql[*],/etc/zabbix/scripts/mysql.sh $1

4.1.赋予脚本权限

[root@localhost zabbix_agentd.d]# chmod +x /etc/zabbix/scripts/mysql.sh

5.重启agent服务!!!

[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent

6.zabbix-server服务端安装zabbix-get命令

[root@localhost ~]# yum -y install zabbix-get

测试自定义key: mysql[*]是否能获取数据

[root@localhost ~]# zabbix_get -s 192.168.232.136 -k mysql[Bytes_sent]
154749
[root@localhost ~]# zabbix_get -s 192.168.232.136 -k mysql[Bytes_received]
3001
[root@localhost ~]# zabbix_get -s 192.168.232.136 -k mysql[Com_insert]
0

7.zabbix页面添加监控项
创建主机
在这里插入图片描述
创建监控项
在这里插入图片描述
添加图形
在这里插入图片描述
监测图形
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xuetengbo111/article/details/109228737