zabbix 监控 mysql

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

Zabbix 3.0中已经有Mysql监控模板了,所以我们只要引用ZabbixServer自带的模版即可。

一、在Zabbix_Agentd中添加Include目录,这里面存放Zabbix的Item监控项-Key.
vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

二、创建监控Mysql的Key
该Key的目录为上面Include指定的路径

  • check_mysql_performance_key
监控Mysql性能
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/check_mysql_performance_key
UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V
UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin -uzabbix -pzabbix -S /usr/local/mysql/data/mysql.sock ping 2> /dev/null | grep -c alive
UserParameter=mysql.status[*],/usr/local/zabbix/shell/check_mysql_performance.sh $1 $2
  • check_mysql_slave_key
监控Mysql主从是否同步
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/check_mysql_slave_key
UserParameter=mysql.slave[*],/usr/local/zabbix/shell/check_mysql_slave.sh $1 $2

三、创建监控Mysql的脚本
其实在上面Key步骤中已经知名了Mysql监控脚本名称及路径,脚本记得加权限哦~~

脚本内容贴在文章尾部,这里内容繁多,所以不再赘述,下面是脚本路径
/usr/local/zabbix/shell/check_mysql_performance.sh
/usr/local/zabbix/shell/check_mysql_slave.sh

四、启动Zabbix_Agentd

/usr/local/zabbix/sbin/zabbix_agentd

五、Zabbix_Agentd脚本及监控item已经设置好,下面我们在Zabbix_Web界面为需要监控的主机设置模板
点击-Configuration-Hosts
这里写图片描述


选择需要监控的主机,我们来链接Mysql的监控模板
在Templates页面中选择Select,然后添加Templates App MySQL模板
这里写图片描述


接着点击主页中的Screen,创建一个Mysql的Screen
创建一个Mysql_Monitoring的screen,然后添加两个图像

Mysql_bandwidth
Mysql_operations

看到这个图片,OK,你的Mysql监控就此完成啦~~
这里写图片描述


这里写图片描述








下面是Mysql性能监控脚本

#!/bin/sh 
#Create by zijin 2014.09.28
##Need "grant select on mysql.* to zabbix@localhost identified by 'zabbix_agent'"
MYSQL_SOCK="/tmp/mysql.sock" 
MYSQL_PWD="zabbix"
MYSQL_ADMIN="/usr/local/mysql/bin/mysqladmin"
ARGS=1 
if [ $# -ne "$ARGS" ];then 
    echo "Please input one arguement:" 
fi 
case $1 in 
    Uptime) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK status 2> /dev/null |cut -f2 -d":"|cut -f1 -d"T"`
            echo $result
            ;; 
        Com_update) 
            result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_update"|cut -d"|" -f3` 
            echo $result 
            ;; 
        Slow_queries) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK status 2> /dev/null |cut -f5 -d":"|cut -f1 -d"O"` 
                echo $result 
                ;; 
    Com_select) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_select"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_rollback) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK status 2> /dev/null |cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${MYSQL_ADMIN} -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK extended-status 2> /dev/null |grep -w "Com_begin"|cut -d"|" -f3` 
                echo $result 
                ;; 

        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)
"
        ;; 
esac

Mysql_Slave监控脚本

#!/bin/bash
MYSQL_SOCK="/usr/local/mysql/data/mysql.sock"
MYSQL_PWD="zabbix"
MYSQL="/usr/local/mysql/bin/mysql"
MYSQL_ADMIN="/usr/local/mysql/bin/mysqladmin"
ARGS=1
if [ $# -ne "$ARGS" ];then
    echo "Please input one arguement:"
fi
case $1 in
        Slave_Running)
                slave_is=($($MYSQL -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK -e "show slave status\G"|egrep "\bSlave_.*_Running\b"|awk '{print $2}'))
                if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ];then
                     result="1"
                else
                     result="0"
                fi
                echo $result
        ;;
        Slave_Seconds)
                result=$($MYSQL -uzabbix -p${MYSQL_PWD} -S $MYSQL_SOCK -e "show slave status\G"|egrep "\bSeconds_Behind_Master\b"|awk '{print $2}')
                echo $result
        ;;
        *)
                echo "Usage:$0(Slave_Running|Slave_Seconds)"
        ;;
esac
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
19天前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
58 7
|
19天前
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
57 1
|
19天前
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
38 1
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
59 2
|
2月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
59 2
zabbix agent集成percona监控MySQL的插件实战案例
|
6月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
6月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
269 4
|
11月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
268 0
|
3月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
103 0

推荐镜像

更多
下一篇
无影云桌面