zabbix官方支持监控MySQL,但直接使用默认的模板是不可用的,需要经过额外的设置才可以使用。如果只需要对mysql数据库做简单的监控,zabbix自带的模板完全能够满足要求

  下面是用zabbix自带的模板监控mysql的步骤。

  环境:zabbix4.0 ubuntu16.04 LTS mysql 5.5

  1、在相关主机中添加mysql监控模板。模板名称:Template DB MySQL。

  2、配置mysql的客户端,创建一个用户来获取mysql的相关数据

# 设置数据库编码
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

# 创建一个新的MySQL数据库zabbix,将存储收集的数据
# 用户名zabbix,密码123456
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY '123456'; # 刷新权限
FLUSH PRIVILEGES;

  3、设置完帐户之后在被监控端新建/etc/zabbix/.my.cnf文件,以提供Zabbix Agent访问数据库,内容类似如下:

# vim /etc/zabbix/ .my.cnf

[mysql]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=123456
socket=/data/mysql/mysql.sock # mysql.sock文件通过find / -name mysql.sock找出路径

  4.修改agent配置文件

# vi /etc/zabbix/zabbix_agentd.conf

# 修改 server为服务器ip

# 修改hostname为服务器设置的hostname

# 修改serveractive 为服务器ip:port

5、修改/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf(没有的话就创建),这个文件用于制定Zabbix Agent如何获取MySQL数据,我们需要将所有的/var/lib/zabbix修改为当前.my.cnf文件的路径/etc/zabbix。设置完 成之后保存并重启Zabbix Agent

# 新建userparameter_mysql.conf文件
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

#修改文件后内容如下
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.version,mysql -V # 重启agent服务
systemctl restart zabbix-agent

  6、配置完成

   主机配置界面

   

   最新数据展示界面

  

  

第二版

今天重新配置了下,发现上面路子走不通了,换了一种方法亲测可行,本次针对的是zabbix 监控自身的mysql数据库

1.修改/etc/zabbix/zabbix_agentd.conf文件

[root@localhost ]#  /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

2.在/etc/zabbix/alertscripts文件下创建check_mysql.sh脚本文件,内容如下:

#!/bin/bash
# 主机地址/IP
MYSQL_HOST='127.0.0.1'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"
#MYSQL_CONN="HOME=/etc/zabbix/ mysqladmin -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
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|C
om_begin)"
;;
esac

3.配置登陆验证密码

#通过mysqladmin获取mysql运行状态参数,这里可以将密码写在/etc/my.conf配置文件中
[client]
host=localhost
user= 'zabbix'
password='123456'

4.将脚本赋予执行权限,并检查脚本

[root@localhost alertscripts]# chmod +x check_mysql.sh
# -n 用来查看开脚本的语法是否有问题
[root@localhost alertscripts]# ./check_mysql.sh -n
Usage:./check_mysql.sh(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|C
om_begin)
# -x 一般用于拍错,查看脚本执行过程
[root@localhost alertscripts]# ./check_mysql.sh -x
Usage:./check_mysql.sh(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|C
om_begin)

5.[root@localhost zabbix_agentd.d]#  在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 里将监控项key值以及脚本添加进去  

UserParameter=mysql.status[*],/etc/zabbix/alertscripts/check_mysql.sh $1
UserParameter=mysql.ping,HOME=/usr/bin/mysqladmin ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V

6.zabbix web端引入模板

zabbix自带了mysql监控模板,因此只需要添加到主机即可

转自:https://www.cnblogs.com/bixiaoyu/p/9984008.html

https://blog.csdn.net/qq_34355232/article/details/82658687

zabbix 4.0 监控 mysql的更多相关文章

  1. zabbix自动发现监控mysql

    一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...

  2. zabbix入门之监控MySQL

    zabbix入门之监控MySQL 这里使用的是zabbix官方自带的MySQL监控模板. 首先确保在被监控主机安装zabbix-agent.zabbix-sender,并且将主机加入监控节点.具体操作 ...

  3. Zabbix通过percona监控MySQL

    因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式 Percona介绍 P ...

  4. zabbix4.0监控Mysql数据库

    #wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.11-1.el7.x86_64.rpm #rpm -ivh ...

  5. zabbix 邮件报警 监控mysql主从

    1)设置邮件模板及邮件服务器 邮箱密码记得写授权密码 2)配置接受报警的邮箱 3)添加报警触发器 配置邮箱服务器 yum -y install mailx yum -y install sendmai ...

  6. Ubuntu下Zabbix结合percona监控mysql数据

    按道理来说zabbix就自带的MySQL插件来监控mysql数据库,但是你会发现,自带的mysql监控项是很少的,根本满足不了公司的需求.由于它本身自带的模板太过简单了,所以需要做更详细的监控,而pe ...

  7. zabbix low-level discovery 监控mysql

    当一台服务器上MySQL有多个实例的时候,MySQL占用多个不同端口.利用zabbix的low-level discovery可以轻松监控. 思路参考:http://dl528888.blog.51c ...

  8. zabbix5.0监控mysql

    最近开发让对mysql数据库进行监控,由于公司的开发大部分都是以WINDOWS环境下运行的,只有少部分是在LINUX下.我自己先在linux做了一个测试.按照网上教程折腾了三天.最后看着官方教程很轻松 ...

  9. 使用 zabbix 自动发现监控 MySQL

    介绍 使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过 ...

  10. zabbix自定义key监控mysql主从同步超简单!

    原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...

随机推荐

  1. .NET项目中使用HtmlSanitizer防止XSS攻击

    .NET项目中使用HtmlSanitizer防止XSS攻击 前言 最近博客也是上线了留言板功能,但是没有做审核(太懒了),然后在留言的时候可以输入<script>alert('xss')& ...

  2. Jetpack Compose(7)——触摸反馈

    目录 一.点按手势 1.1 Modifier.clickable 1.2 Modifier.combinedClickable 二.滚动手势 2.1 滚动修饰符 Modifier.verticalSc ...

  3. python_8 拆包、内置函数和高阶函数

    一.查缺补漏 1. \t 子表符,用于对其二.拆包 1. 拆包:顾名思义就是将可迭代的对象如元组,列表,字符串,集合,字典,拆分出相对应的元素 2. 形式:拆包一般分两种方式,一种是以变量的方式来接收 ...

  4. Dotnet算法与数据结构:Hashset, List对比

    哈希集A 是存储唯一元素的集合.它通过在内部使用哈希表来实现这一点,该哈希表为基本操作(如添加.删除和包含)提供恒定时间平均复杂度 (O(1)).此外,不允许重复元素,使其成为唯一性至关重要的场景的理 ...

  5. 8行JS代码实现Vue穿梭框

    实现效果 完整 demo 参考 <template> <div class="contain"> <ul class=""> ...

  6. 重写Save()的两种方法

    # 重新Save()def save(self, force_insert=False, force_update=False, using=None, update_fields=None): su ...

  7. Django 处理http请求之中间件

    Django处理http请求之中间件 by:授客 QQ:1033553122 欢迎加入全国软件测试交流QQ群:7156436 测试环境 Win7 Django 1.11 自定义中间件 中间件" ...

  8. 【VMware VCF】VMware Cloud Foundation Part 04:准备 ESXi 主机。

    VMware Cloud Foundation 管理域部署要求至少准备 4 台 ESXi 主机作为最小计算单元,如果采用整合部署(管理域和 VI 工作负载域合并),还需要根据实际情况适量增加 ESXi ...

  9. C#中使用 record 的好处 因为好用所以推荐~

    一晃距C# 9发布已经4年了,对于record关键字想必大家都不陌生了,不过呢发现还是有很多同学不屑于使用这个语法糖,确实,本质上record就是class的封装,能用 record 书写的类,那10 ...

  10. SEO初学者指南之什么是SEO

    前言 Hi,大家好,我是听风.欢迎来到SEO基础入门指南.在这个博客中主要教大家SEO的基础知识,以谷歌SEO为主,重点放在实操方面. 虽然是基础入门教程,但我希望朋友们不要对"初学者&qu ...