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. P2467 [SDOI2010] 地精部落 学习笔记

    DP 显然我固定第一个是峰,然后再乘以2就是答案,因为一个合法的反转之后也是合法的而且谷峰颠倒了 发现如果设\(dp[i][j]\)表示前\(i\)个山脉,第\(i\)个山脉是高度\(j\)的答案,然 ...

  2. git连接到https服务器时出现“gnutls_handshake() failed”

    git连接到https服务器时出现"错误: gnutls_handshake()失败" 问题描述 当我尝试使用git连接到任何HTTPS服务器时(例如git clone),它会出现 ...

  3. Android 7.0 开机时间优化

    原文参考(有删改):https://www.jianshu.com/p/6dba42c022a9 问题描述 开机时间相对参考机过慢,大约慢15s左右.Android 系统7.0. 问题分析 开机问题涉 ...

  4. 开发板测试手册——SPI FLASH 读写、USB WIFI 模块(2)

    目录 1.8 SPI FLASH 读写测试 20 1.9 USB 接口读写测试 21 1.10 网络接口测试 23 1.10.1 网络连通测试 23 1.10.2 网络速度测试 25 2 网络静态 I ...

  5. 韦东山IMX6ULL Linux开发板基于Buildroot系统QT应用环境配置开发运行

    @ 目录 一. 编译系统 1.设置交叉编译工具链 2.编译系统 二. QT下载 1.安装 Qtcreator 2.创建第一个程序 3.配置 QtCreator 开发环境 4.移植QT程序到开发板 一. ...

  6. ERP中内部批号和外部批号分别指的是什么

    在企业资源计划(ERP)系统中,内部批号和外部批号是两个用于标识和跟踪产品的关键概念.它们通常用于管理和追踪生产.库存和供应链中的物料. 内部批号(Internal Batch Number): 定义 ...

  7. oeasy教您玩转vim - 13 - # 大词小词

    大词小词 回忆上节课内容 我们上次学习了 e e 代表 end 词尾 自有跳跃 还可以成倍次数的跳跃 但其实我是想以一个一个属性地跳跃,有没有方法呢? 查询帮助 没思路的话我们还是得继续查询 :h w ...

  8. oeasy教您玩转linux 010216 随机诗词 fortunezh

    我们来回顾一下 上一部分我们都讲了什么? 下载fortune 输出重定向到cowsay 多重输出重定向 fortune的细节 有没有中️文的fortune呢 # 搜索一下fortune apt sea ...

  9. C# 实现Eval(字符串表达式)的三种方法

    一.背景 假如给定一个字符串表达式"-12 * ( - 2.2 + 7.7 ) - 44 * 2",让你计算结果,熟悉JavaScript的都知道有个Eval函数可以直接进行计算, ...

  10. 修改 /etc/resolv.conf

    修改 /etc/resolv.conf /etc/resolv.conf 是 Linux 系统中用于配置 DNS 解析器的文件.确认 systemd-resolved 或 NetworkManager ...