zabbix 監控mysql指標,支持variables、STATUS下全部變量

最近在處理zabbix 監控mysql的時候碰到一些問題,現作記錄;
默認的腳本里面沒有用戶名密碼信息,若是設置了root不容許使用空密碼本地登陸時會出錯,就接受不到數據;
具體能夠在zabbix server或proxy用agent_get測試一下mysql

zabbix_get -s mysql_server -k mysql.ping
若是返回0,可是mysql服務是正常啓動的則是有問題的

獲取不到數據還有多是在mysql5.6版本後,直接用命令行中攜帶密碼是會有警告web

clipboard.png
解決辦法是在原命令後面加入sql

2>/dev/null

下面提供sh腳本和configshell

check_mysql.shbash

#!/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是否已配置腳本目錄spa

相關文章
相關標籤/搜索