微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

zabbix系列zabbix3.4监控mysql5.7

本来想用python脚本监控一下mysql的,没有找到相关资料,懒得折腾了,使用官方自带的监控模板进行监控MysqL

添加zabbix-agent配置文件

认的userparameter_MysqL.conf 文件进行替换为一下内容
[root@test-mq01 zabbix_agentd.d]# cat userparameter_MysqL.conf

#UserParameter=MysqL.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix MysqL -N | awk '{print $$2}'
UserParameter=MysqL.status[*],/etc/zabbix/script/MysqL/chk_MysqL.sh $1

#UserParameter=MysqL.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix MysqL -N'

#UserParameter=MysqL.ping,HOME=/var/lib/zabbix MysqLadmin ping | grep -c alive
UserParameter=MysqL.ping,MysqLadmin -u root -pRoo -P3306 -h292.168.2.252  ping | grep -c alive
UserParameter=MysqL.version,MysqL -V

添加chk_MysqL.sh脚本文件

/etc/zabbix/script/MysqL/chk_MysqL.sh

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_MysqL.sh
# Revision:    1.0
# Date:        2018/01/31
# Author:      chunk
# Email:       
# Website:     
# Description: 
# Notes:       ~
# -------------------------------------------------------------------------------
# copyright:   
# License:     GPL

# 用户名
MysqL_USER='root'

# 密码
MysqL_PWD='Root'

# 主机地址/IP
MysqL_HOST='192.168.2.252'

# 端口
MysqL_PORT='3306'

# 数据连接
MysqL_CONN="/usr/bin/MysqLadmin -u${MysqL_USER} -p${MysqL_PWD} -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 "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-web端主机添加模板链接

zabbix系列zabbix3.4监控mysql5.7

重启监控端agent

service zabbix-agent restart

zabbix server端测试是否有数据

[root@tools-jenkins ~]# zabbix_get -s 192.168.2.41 -k MysqL.status[Questions]
3533479678

zabbix系列zabbix3.4监控mysql5.7


zabbix系列zabbix3.4监控mysql5.7

[Warning] Using a password on the command line interface can be insecure.

这个其实很简单,脚本中导入export MysqL_PWD=<password>,或者/etc/bashrc导入export MysqL_PWD=<password>
最后脚本少-p,大概格式是这样:

#原数据连接
# 数据连接
MysqL_CONN="/usr/bin/MysqLadmin -u${MysqL_USER}  -p${MysqL_PWD} -h${MysqL_HOST} -P${MysqL_PORT}"
# 新数据连接
MysqL_CONN="/usr/bin/MysqLadmin -u${MysqL_USER}  -h${MysqL_HOST} -P${MysqL_PORT}"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐