Zabbix自定义监控MySQL性能状态

环境是CentOS 6.5 x86_64系统

Zabbix版本:3.0.4

MySQL Server 版本:5.6.29 二进制安装

zabbix_agentd.conf的配置文件如下:

[[email protected] alertscripts]# cat  /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v ‘^#‘ | grep -v ‘^$‘
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1
Server=10.18.3.193
ListenPort=10050
ServerActive=10.18.3.193
Hostname=10.18.3.191
AllowRoot=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
#下面两行是自定义的key
UserParameter=mysql.slave,/usr/local/zabbix/share/zabbix/alertscripts/check_mysql_slave.sh | grep -c ‘ok‘
UserParameter=mysql.status[*],/usr/local/zabbix/share/zabbix/alertscripts/mysql_server_status.sh $1

查看mysql授权:

mysql授权需要密码才能访问,但是使用密码mysql会提示明文密码,就会有下面的提示:

[[email protected] alertscripts]# sh check_mysql_slave.sh 
Warning: Using a password on the command line interface can be insecure.
ok -slave is running

解决办法如下:

[[email protected] alertscripts]# cat /etc/my.cnf | tail -4
[client]
user = root
host = localhost
password = [email protected]

再次运行脚本:

[[email protected] alertscripts]# sh check_mysql_slave.sh 
ok -slave is running

mysql主从监控脚本,脚本中去掉用户,密码直接使用命令。

[[email protected] alertscripts]# cat check_mysql_slave.sh 
#!/bin/bash
declare -a slave_is
slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk ‘{print $2}‘))
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ];then
    echo "ok -slave is running"
    exit 0
else
    echo "down -slave is not running"
    exit 2
fi

mysql_server_status脚本,这块上面my.cnf填写以后,使用mysqladmin也就不提示了:

[[email protected] alertscripts]# cat mysql_server_status.sh 
#!/bin/bash
source /etc/profile
mysqladmin=`which mysqladmin`
case $1 in 
    Uptime) 
        result=`${mysqladmin} status|cut -f2 -d":"|cut -f1 -d"T"` 
        echo $result 
        ;; 
    Com_update) 
        result=`${mysqladmin} extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Slow_queries) 
        result=`${mysqladmin} status |cut -f5 -d":"|cut -f1 -d"O"` 
        echo $result 
        ;; 
    Com_select) 
        result=`${mysqladmin} extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
                ;; 
    Com_rollback) 
        result=`${mysqladmin} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${mysqladmin} status|cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${mysqladmin} extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${mysqladmin} extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${mysqladmin} extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${mysqladmin} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${mysqladmin} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${mysqladmin} extended-status |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

在zabbix_server获取key值,或是查看zabbix_server.log文件都可以排错。

[[email protected] bin]# ./zabbix_get -s 10.18.3.191 -k mysql.status[Uptime]
ZBX_NOTSUPPORTED: Unsupported item key.
[[email protected] bin]# ./zabbix_get -s 10.18.3.191 -k mysql.status[Uptime]
/usr/local/zabbix/share/zabbix/alertscripts/mysql_server_status.sh: line 4: mysqladmin: command not found
[[email protected] bin]# ./zabbix_get -s 10.18.3.191 -k mysql.status[Uptime]
414242

zabbix_agent.log可以看到已经获取到自定义的key

添加自定义模板,模板名称随意给个和mysql相关的

创建应用集

添加监控项,一个key一个key添加,把脚本的key都添加进去

mysql 状态这块只做了图形查看,并没有做触发器,只做了主从的触发器,需要的可以自己添加

添加完成后可以添加一台mysql数据库查看下最新数据,是否成功了

更多内容:http://www.wangzhanjianshegs.com/网站建设

时间: 2024-08-24 20:15:59

Zabbix自定义监控MySQL性能状态的相关文章

zabbix自定义监控mysql主从状态,并做邮件告警

 通过zabbix自定义监控mysql主从状态,并做邮件告警 分析: mysql主要是通过主从来提供安全性,一个完整的主从体系,就应该包括数据同步.开启二进制日志.全备.还有对Slave_IO_Running和Slave_SQL_Running两个线程的实时监测,并做告警,而zabbix监控软件就提供了很好的方法:对于zabbix这个监控软件,个人来说也是比较熟悉,现在的企业们都基本用的是zabbix软件来做系统的资源的监控,zabbix的强大不仅仅体现于,它自身自带的监控模板比较全面,而是通过

zabbix mpm 监控 mysql性能

一.环境说明 zabbix 2.2 in Centos 6.4 64bit 二.MPM(MySQL Performance Monitor)安装 1.依赖模块 yum install perl-File-Which perl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay 2. MPM安装部署 wget -c http://www.shinguz.ch/download/mysql_per

zabbix监控mysql性能

今天来看看zabbix如何监控mysql性能,这边使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_mysql.sh脚本 用于获取mysql性能指标数据,你需要修改相应的数据库信息 # vim /usr/local/zabbix-2.4.4/scripts/chk_mysql.sh #脚本如下: #!/bin/bash # -----------------------------------

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

LR如何利用siteScope监控MySQL性能

本次实验,是在自己的电脑上使用APMServ5.2.6部署Discuz2.X论坛下,对该论坛的数据库MySQL5.1进行性能测试的,下面讲述LoadRunner在设计场景时,如何利用siteScope工具监控MySQL数据库性能: 一.在网上下载siteScope 我在网上搜了很久,发现siteScope软件的下载资源很少,毕竟它是收费的,想找个破解版,不过还是有的,哈哈...但是版本旧了点siteScope7.9.5 下载地址:http://download.csdn.net/detail/y

zabbix自定义监控实现思路以及自定义监控某个端口的连接数

一 zabbix自定义监控实现思路 我在前面有写到: zabbix3.x服务端安装和配置 zabbix3.x客户端安装和配置 zabbix监控memcached 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是: 写一个脚本用于获取待监控服务的一些状态信息 在zabbix客户端的配置文件zabbix_agentd.conf中添加上自定义的"UserParameter",目的是方便zabbix调用我们上面写的那个脚本去获取待监控服务的信息 在zabbix服务端使用za

shell编程之【zabbix自定义监控网卡流量脚本】

之前写了一篇文章主要介绍zabbix的搭建使用http://msiyuetian.blog.51cto.com/8637744/1705396 下面这篇文章主要介绍zabbix自定义监控网卡流量的脚本实现 前期准备 1.说明 server ip :192.168.0.115 client ip :192.168.0.114 2.开启服务 因为之前搭建过zabbix环境,这里就不重复了,直接开启服务端的所需服务: [[email protected] ~]# /etc/init.d/httpd s

check_mk自定义监控增加性能数据图形展示

在nagios中可以实现性能图形展示,利用的是PNP4Nagios,check_mk当然也可以,而且很简单. 这篇文章在前一篇文章<check_mk自定义监控实践之powershell>的基础之前,脚本稍作修改 1.客户端process_top5.ps1 $dp = (Get-Process) | select -First 5 $ops = Get-WmiObject -Class Win32_OperatingSystem echo `<`<`<process_top5`

zabbix自定义监控脚本配置

实验环境 环境 IP 服务端 192.168.24.168 客户端 192.168.24.188 实验条件: zabbix监控服务器.客户端都已经部署完成,被监控主机已添加完成,zabbix监控运行正常.zabbix服务器设置邮箱报警运行正常. 实现目的: zabbix自定义监控客户端用户量,当用户量大于三个以上,会自动发送报警邮件到指定的邮箱. 实验步骤 1.修改客户端配置文件 [[email protected] ~]# vim /usr/local/etc/zabbix_agentd.co