首页 > 数据库 >ZABBIX6.0监控MySQL

ZABBIX6.0监控MySQL

时间:2023-09-11 12:22:44浏览次数:47  
标签:status 监控 lib ZABBIX6.0 MySQL zabbix conf mysql var

官方文档:https://www.zabbix.com/cn/integrations/mysql

部署过程:

1. 在MySQL数据库中创建监控账号并授权

CREATE USER 'zabbix'@'%'IDENTIFIED BY 'Likun@123';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';
flush privileges;
2. 找到自己MySQL的mysql.sock文件位置

find / -name mysql.sock
3. 创建.my.cnf文件并写入相关信息

#创建目录
mkdir -p /var/lib/zabbix
#写入用户名和密码
vi /var/lib/zabbix/.my.cnf

[client]
user=zabbix
password=Likun@123
socket=/var/lib/mysql/mysql.sock

[mysql]
user=zabbix
password=Likun@123
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
user=zabbix
password=Likun@123
socket=/var/lib/mysql/mysql.sock
官方说明 Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. The file must have three strings:

4. 修改zabbix目录权限

chown zabbix:zabbix /var/lib/zabbix -R
5. 找到userparameter_mysql.conf文件(一般在zabbix_agentd目录中)

find / -name userparameter_mysql.conf


6. 修改 userparameter_mysql.conf内容(其实每行只多了一个 HOME=/var/lib/zabbix )

#原配置文件
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"

#修改为
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/var/lib/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
7. 修改zabbix_agentd.cof,打开一个Include

vim /usr/local/zabbix/conf/zabbix_agentd.conf
#原内容:
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
#改为userparameter_mysql.conf所在位置
Include=/usr/local/zabbix/conf/zabbix_agentd/*.conf


8. 重启zabbix_agent

systemctl restart zabbix-agent
注意:重启过程中可能会报错:Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.

使用journalctl -xe 查看错误信息

systemd[1]: PID file /tmp/zabbix_agentd.pid not readable (yet?) after start.

 

原因:在zabbix_agentd.conf中打开了一个Include位置,在那个位置中除了userparameter_mysql.conf文件外,还有一个userparameter_examples.conf文件,移走或者删除这个文件即可

 

rm /usr/local/zabbix/conf/zabbix_agentd/userparameter_examples.conf
9. 在zabbix web页面关联MySQL模板

 

10. 等待几分钟,zabbix6.0 自带模板监控MySQL有数据,监测成功 !

 

可能出现的问题:Failed: cannot extract XML value with xpath "/resultset/row[field/text()='Uptime']/field[@name='Value']/text()": Zabbix was compiled without libxml2 support

原因:可能在编译zabbix-server是没有指定libxml2模块。从新编译即可

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --enable-java && make && make install

标签:status,监控,lib,ZABBIX6.0,MySQL,zabbix,conf,mysql,var
From: https://www.cnblogs.com/A121/p/17693200.html

相关文章

  • ClickHouse使用之二 ——整合mysql,实现数据库创建查询导出
    1.mysql创建一个用于clickhouse的账号mysql_clickhouse并且授权CREATEUSER'mysql_clickhouse'@'%'IDENTIFIEDBY'Password123!';GRANTALLPRIVILEGESON*.*TO‘mysql_clickhouse’@‘%';2. 使用mysql引擎创建一个clickhouse的外部表存在一个mysql的数据库:host:......
  • RTSP/Onvif安防视频云平台EasyNVR视频监控汇聚平台显示视频流却无法播放,是什么原因?
    EasyNVR是基于RTSP/Onvif协议的视频平台,拥有视频监控直播、录像、云存储、检索与回看、国标级联等视频能力,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。 有用户反馈,在EasyNVR平台播放时,有视频流但却一直......
  • Mysql数据库系列之:深入理解tinyint(n)
    Mysql数据库系列之:深入理解tinyintn一、深入理解tinyint(n)二、创建包含tinyint类型字段的表三、扩展一、深入理解tinyint(n)对于MySQL中的tinyint列,"(n)"没有任何实际意义。在MySQL中,tinyint的宽度始终为1字节,所以在定义表时指定tinyint(n)与tinyint相同。在MySQL中,tinyint字段......
  • Debezium系列之:监控 Debezium 实例
    Debezium系列之:监控Debezium实例一、概述二、实现步骤三、执行四、打开GrafanaUI五、关闭集群DebeziumJMX相关的技术博客:Debezium系列之:安装jmx导出器监控debezium指标Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集......
  • 探索GreatADM:如何快速定义监控
    引文在数据库运维过程中,所使用的运维管理平台是否存在这样的问题:1、默认监控粒度不够,业务需要更细颗粒度的监控数据。2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固化,难以应对多样化的监控需求......
  • mysql查看最近执行的sql语句
    mysql查看最近执行的sql语句,默认情况下mysql是不会记录最近执行sql语句的,需要手动开启才能记录。另外最近执行sql语句有两种方式输出,要么是table,要么是文件。查看mysql是否开启sql记录以及输出方式的脚本如下:showvariableslike'%log_output%';--查看输出方式showvariables......
  • MySQL基础篇:掌握MySQL数据排序,让你的数据分析事半功倍
    单一字段排序排序采用orderby子句,orderby后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,orderby默认采用升序,如果存在where子句那么orderby必须放到where语句的后面按照薪水由小到大排序(系统默认由小到大)mysql>select*fromEMPorderbySAL;+-------+--------+---......
  • MySQL入门系列7-多表查询
    在我们日常开发中,表与表之间的关系通常分为以下几种:一对多(多对一)、’多对多、一对一。一、一对多(多对一)我们之前的部门和员工表就是一个一对多的关系,一个部门有多个员工,部门就是一方,员工就是多方。员工表的外键关联了部门表二、多对多学生和课程的关系可以理解为多对多的关系,......
  • MYSQL基础上
    MYSQL基础确保MySQL已经安装完成启动windows下进入cmd的管理运行模式启动netstartmysql80停止netstopmysql80连接客户端连接注意这里使用的命令行既然在所有目录下都可行,那么必然要改环境变量数据模型SQLDDLDDL-数据库操作查询查询所有数据库SHOWDATAB......
  • MySQL数据库进阶 自定义函数
    自定义函数在MySQL中,您可以使用自定义函数来扩展数据库管理系统的功能。自定义函数允许您封装一段可重用的代码,并在查询和其他操作中调用它。以下是在MySQL中创建和使用自定义函数的一般步骤:1、创建自定义函数语法:CREATEFUNCTIONfunction_name(parameters)RETURNSreturn_t......