zabbix mon监控mysql_zabbix监控mysql存活及性能

本文介绍了如何在Zabbix环境中配置并监控MySQL的性能。首先,通过开放端口、关闭SELinux和编辑配置文件实现了Zabbix_agentd的安装。接着,创建了一个名为check_mysql.sh的脚本来收集MySQL的性能指标,包括Uptime、Com_update等。然后,通过zabbix_agentd和zabbix_get进行了测试,并调整了日志级别进行调试。在遇到问题时,通过查看日志和调试解决了问题,确保Zabbix能够正确监控MySQL的状态。

Zabbix环境已经部署完成:

Zabbix_aget: 安装在/etc/zabbix

1.开放端口10050

firewall-cmd --zone=public --add-port=10050/tcp --permanent

firewall-cmd--reload

2.关闭setenforce

setenforce 0

3.vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

写上:

####监控mysql性能的脚本

UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_ mysql.sh $1

#####监控mysql是否存活

UserParameter=mysql.ping,systemctl status mysqld | grep -c "active"

#####mysql版本

UserParameter=mysql.version,mysql -V

4.

cat /etc/zabbix/zabbix_agentd.d/check_mysql.sh

```#!/bin/sh

# ----------------------------------------------------------------------------------------

# FileName: check_mysql.sh

# Revision: 1.0

# Date: 2019/05/15

# Author: salarh

# Email: [email protected]

用户名

MYSQL_USER=‘zabbix‘

密码

MYSQL_PWD=‘[email protected]‘

主机地址/IP

MYSQL_HOST=‘ip‘

端口

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 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"`

echo $result

;;

Com_update)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3`

echo $result

;;

Slow_queries)

result=`${MYSQL_CONN} status 2>/dev/null |cut -f5 -d":"|cut -f1 -d"O"`

echo $result

;;

Com_select)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3`

echo $result

;;

Com_rollback)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3`

echo $result

;;

Questions)

result=`${MYSQL_CONN} status 2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"`

echo $result

;;

Com_insert)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3`

echo $result

;;

Com_delete)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3`

echo $result

;;

Com_commit)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3`

echo $result

;;

Bytes_sent)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_sent" |cut -d"|" -f3`

echo $result

;;

Bytes_received)

result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_received" |cut -d"|" -f3`

echo $result

;;

Com_begin)

result=`${MYSQL_CONN} 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

授权:

chmod +x /etc/zabbix/zabbix_agentd.d/check_mysql.sh

chown zabbix.zabbix /etc/zabbix/zabbix_agentd.d/check_mysql.sh

5.zabbix_agent上测试:

zabbix_agentd -t mysql.ping

a9f1a4329a88151aadf0f743cb810a21.png

6.Zabbix_server测试

zabbix_get -s ip -P 端口 -k mysql.ping

4dee39ccff00da2f37df36e258112ebc.png

7.Zabbix界面上选择:

9100473205ad96895da91deb659e297d.png

加上就可以了

关于调试:主要看日志

在server端测用zabbix_get测试该值发现,返回的是0和agent端执行的脚本的结果不一样。

出现这个问题,开始还是摸不到头绪的,走了很多弯路,后来发现可以调试日志:

将zabbix agent的日志级别跳到最高4,重启zabbix agent

DebugLevel=4

zabbix的所有日志级别如下:

no debug 无日志

critical information 灾难日志

error information 错误级别

warnings 告警级别

for debugging (produces lots of information)调试级别

如:发现没有关闭selinux,关闭就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值