登录
首页 >  数据库 >  MySQL

zabbix 监控mysql指标,支持variables、STATUS下所有变量

来源:SegmentFault

时间:2023-01-20 20:18:33 118浏览 收藏

哈喽!今天心血来潮给大家带来了《zabbix 监控mysql指标,支持variables、STATUS下所有变量》,想必大家应该对数据库都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到MySQL、Zabbix,若是你正在学习数据库,千万别错过这篇文章~希望能帮助到你!

最近在处理zabbix 监控mysql的时候碰到一些问题,现做记录;
默认的脚本里面没有用户名密码信息,如果设置了root不允许使用空密码本地登录时会出错,就接受不到数据;
具体可以在zabbix server或proxy用agent_get测试一下

zabbix_get -s mysql_server -k mysql.ping
如果返回0,但是mysql服务是正常启动的则是有问题的

获取不到数据还有可能是在mysql5.6版本后,直接用命令行中携带密码是会有警告

clipboard.png

解决办法是在原命令后面加入
2>/dev/null

下面提供sh脚本和config

check_mysql.sh

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_mysql.sh
# Revision:    1.0
# Date:        2019-3-21
# Author:      xsj
# Email:       soft_xiang@qq.com
# Description: 
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2019 (c) xsj
# License:     GPL
 
# 用户名
MYSQL_USER='root'
 
# 密码
MYSQL_PWD='xxx'
 
# 主机地址/IP
MYSQL_HOST='127.0.0.1'
 
# 端口
MYSQL_PORT='3306'

MYSQL_PATH='/usr/local/gwall/mysql/bin/mysql'

MYSQLADMIN_PATH='/usr/local/gwall/mysql/bin/mysqladmin'

# 数据连接
MYSQL_CONN="${MYSQL_PATH} -u${MYSQL_USER} -h${MYSQL_HOST} -P${MYSQL_PORT}"
MYSQLADMIN_CONN="${MYSQLADMIN_PATH} -u${MYSQL_USER} -h${MYSQL_HOST} -P${MYSQL_PORT}"
 
# 参数是否正确
if [ $# -ne "1" ];then 
    echo "arg error!" 
fi 

# variables 对应的key类似 mysql.status[Var_max_connections]
# status 对应的key类似 mysql.status[Uptime]
case $1 in
  Var_*)
    $MYSQL_CONN -e "show global variables" 2>/dev/null | awk '$1 ~ /'"${1#*Var_}"'$/ {print $2}' ;;
  Version)
    $MYSQLADMIN_PATH -V | awk -F '[ ,]' '{print $6}' ;;
  Ping)
    $MYSQLADMIN_CONN ping 2>/dev/null | wc -l ;;
  Status_*)
    $MYSQL_CONN -e "show global status" 2>/dev/null | awk '$1 ~ /'"${1#*Status_}"'$/ {print $2}' ;;
  *)
    echo "Usage:$0(Status_Uptime|Var_max_connections);其中 Status_ 后支持所有GLOBAL STATUS中的key;Var_ 后支持所有GLOBAL variables中的key。" ;;
esac

status_mysql.conf

# 获取mysql版本
UserParameter=mysql.version,/etc/zabbix/shell/check_mysql.sh Version
# 获取mysql GLOBAL STATUS中性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/etc/zabbix/shell/check_mysql.sh 'Status_'$1
# 获取mysql GLOBAL variables中的参数
UserParameter=mysql.var[*],/etc/zabbix/shell/check_mysql.sh 'Var_'$1
# 获取mysql运行状态
UserParameter=mysql.ping,/etc/zabbix/shell/check_mysql.sh Ping

zabbix web管理端设置参数

clipboard.png

注意事项:
配置的mysql用户名权限是否允许
zabbix_agent.conf是否已配置脚本目录

今天带大家了解了MySQL、Zabbix的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表