zabbix4.3版本监控mysql_Zabbix3.4使用Template监控mysql

本文详细介绍了如何在Zabbix 4.3版本中配置监控MySQL,包括在Zabbix web页面为主机添加MySQL模板、检查监控项状态和数据获取。同时,文章还涉及Zabbix agent的配置,如创建专用MySQL账户、检测脚本的编写,并提供了监控项检测配置的修改方法。在配置过程中,文章还提到了可能出现的问题及其解决方案,如警告信息和监控MySQL时的错误反馈。
摘要由CSDN通过智能技术生成

一、Zabbix web页面操作

1.1 为主机增加mysql template

8b4086b70b72a6ded3b57f5d28f931a9.png

1.2 查看主机监控项状态

点击主机 - 应用集 - 监控项

c906eaf3163683cc122a2823183668c8.png

查看信息,如果有报错需要解决

6e5832e6dfa0549da5125f7edc672d6a.png

把该模板Template App MySQL Link到相关的主机上面,发现Item的Status是不可用的,

因为key的值是通过Mysql用户查看"showglobal status"信息或者用mysqladmin命令查看status或extended-status的信息而取的值。

注:这里我是已经设置好了的

1.3 查看是否获取到数据

检测中 - 最新数据

ed8efc84eeeb664eb22ce427b10aadc7.png

二、Zabbix agent配置

2.1 在被监控的MySQL里面建立一个帐户,用于Zabbix Agent登录获取MySQL状态

GRANT USAGE ON *.* TO 'zabbix'@'123456' IDENTIFIED BY '密码';

FLUSH PRIVILEGES;

2.2 创建检测脚本

打开zabbix agent配置目录 /etc/zabbix

chk_mysql.sh

[root@test161 ~]# cat /etc/zabbix/chk_mysql.sh

#!/bin/bash

#-------------------------------------------------------------------------------# FileName: check_mysql.sh

# Revision:1.0# Date:2018/02/28# Author: jiangzuxing

# 用户名

MYSQL_USER='zabbix'# 密码

MYSQL_PWD='123456'# 主机地址/IP

MYSQL_HOST='127.0.0.1'# 端口

MYSQL_PORT='3306'# 数据连接

#MYSQL_CONN="mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"MYSQL_CONN="mysqladmin"# 参数是否正确if [ $# -ne "1"];then

echo"arg error!"fi

# 获取数据case $1 inUptime)

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用户运行权限

[root@test161 ~]# chmod +x /etc/zabbix/chk_mysql.sh

[root@test161~]# ll /etc/zabbix/chk_mysql.sh-rwxrwxr-x 1 zabbix zabbix 2693 3月 5 15:10 /etc/zabbix/chk_mysql.sh

2.2 修改监控项检测配置

将原先的注释了,添加新的配置

[root@test161 etc]# vim zabbix_agentd.conf

......

# UserParameter=mysql.ping,mysqladmin -uzabbix ping|grep -c alive

UserParameter=mysql.status[*],/etc/zabbix/chk_mysql.sh $1#UserParameter=mysql.ping,mysqladmin -uroot -p123456 -P3306 -h127.0.0.1 ping | grep -c alive

UserParameter=mysql.ping,mysqladmin ping | grep -c alive

UserParameter=mysql.version,mysql -V

.....

2.3 关闭SELinux和firewall

2.4 重启agent

[root@test161 etc]# pkill zabbix

[root@test161 etc]# ps-ef|grep zabbix

root13625 12393 0 15:10 pts/1 00:00:00 vim /etc/zabbix/chk_mysql.sh

root13713 15623 0 15:11 pts/3 00:00:00grep zabbix

[root@test161 etc]#/usr/local/zabbix/sbin/zabbix_agentd

2.5 如果还有问题,创建mysql连接文件

vim /etc/zabbix/zabbix_agentd.d/.my.cnf

[client]

user=zabbix

password= 123456

三、zabbix测试mysql

在服务端连上客户端设置的键值,测试是否生效

[zabbix@test160 bin]$ /usr/local/zabbix/bin/zabbix_get -s 192.168.1.161 -k mysql.status[Uptime]1516

配置过程出现的问题

1、在WEB监控项状态报错:

Value "mysqladmin: [Warning] Using a password on the command line interface can be insecure.

1" of type "string" is not suitable for value type "Numeric (unsigned)"

因为在zabbix_agentd.conf使用mysql密码会提示明文密码

解决:

# vi /etc/my.cnf

[client]

user = zabbix

host = localhost

password = 123456

或者 [mysqladmin]

host=localhost

user=zabbix

password=123456

socket=/data/mysql_data/mysql.sock

改 UserParameter=mysql.ping,mysqladmin ping | grep -c alive

2、zabbix 监控mysql down的时候 不报警

使用zabbix模板Template App MySQL 的监控项mysql.ping监控MySQL是否挂了

UserParameter=mysql.ping,mysqladmin ping | grep -c alive

实际上呢?能返回1但是返回不了0,因为mysqladmin命令会先报错信息出来,这样zabbix-server调用的时候返回的不是纯粹数字,而是字符串+数字,zabbix-server的触发器里面识别不。

解决:

UserParameter=mysql.ping,mysqladmin ping 2> /dev/null | grep -c alive

或者sudo netstat -tunlp|grep 3306|wc -l

多种方式实现,总之把mysqladmin 这玩意儿报错信息忽略掉就可以了

参考:http://www.bubuko.com/infodetail-1870346.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值