官方下载的zabbix_appliance镜像空间不足,无法扩展分区,添加硬盘,迁移数据库进行扩容

原因:直接从官方下载的zabbix_appliance镜像搭建的监控平台运行一段时间后,发现经常性的mysql崩溃,经排查发现是它的zabbix数据库分区只有4G。
由于监控的数据量太大导致分区爆满,引发mysql崩溃无法启动的故障,只好想办法扩容zabbix数据库所在的空间。
经过各种尝试后使用如下方法成功解决问题。

思路:虚拟机上添加一块硬盘,创建新分区并挂载到扩容目录,迁移mysql的数据库目录到扩容目录,修改mysql、php和zabbix的配置文件,恢复正常运行。

  • 原zabbix数据库(容量:4G):
    /var/lib/mysql/zabbix (/dev/sda5 <-- /var/lib/mysql)
  • 扩容目录的zabbix数据库位置(容量:100G):
    /data/mysql_data/mysql/zabbix (/dev/sdb1 <-- /data/mysql_data)

1、加一块硬盘

  • 在虚拟机上面加一个100G的硬盘。
    在这里插入图片描述

2、对新添加的硬盘进行分区

fdisk -l

在这里插入图片描述

  • 创建分区,按m可查看帮助
fdisk /dev/sdb
输入:n
Enter
选择:p
Enter
Enter
Enter
Enter
输入:w
Enter

创建分区

3、安装mkfs.ext4命令和格式化新磁盘

yum install e4fsprogs -y
mkfs -t ext4 /dev/sdb1

4、创建扩容目录(即迁移后的目录)并挂载新磁盘

mkdir mysql_data
# 创建扩容目录
ls -l /dev/disk/by-uuid/
# 查看新磁盘UUID号码

在这里插入图片描述

  • 配置挂载信息,如果用mount挂载,重启后可能失效

vi /etc/fstab

UUID=a8058c20-37e5-44dd-a192-3394505d7c16 /data/mysql_data        ext4    defaults        0 0

# 添加,UUID 就是刚刚查询到的那个sdb1的UUID,画红框的那个
:wq
# 保存

在这里插入图片描述

reboot now
# 重启系统
df -hT
# 重启后看一下磁盘信息

磁盘信息

5、迁移mysql数据库目录

  • 停止MySQL服务、拷贝目录、给zabbix.cnf增加写权限
systemctl stop mysqld
cp -rf /var/lib/mysql /data/mysql_data/
cd /etc/my.cnf.d/
chmod u+w zabbix.cnf
  • 修改zabbix.cnf路径:

vi zabbix.cnf

datadir = /data/mysql_data/mysql/
  • 增加client.cnf路径:

vi client.cnf

[client]
socket = /data/mysql_data/mysql/mysql.sock
  • 修改mysql-server.cnf路径:

vi mysql-server.cnf

[mysqld]
datadir=/data/mysql_data/mysql
socket=/data/mysql_data/mysql/mysql.sock
  • 目录下的所有文件和子目录的所有者和所属组都设置为 mysql:mysql;启动MySQL
chown -R mysql:mysql /data/mysql_data/mysql/
systemctl start mysql
# 如果启动报错,就重启下系统

6、进入mysql查看迁移是否成功

mysql -uroot -p
# 提示输入密码,直接Enter

select @@datadir;
# 查看路径是否迁移成功

在这里插入图片描述

7、修改php和zabbix_web配置文件指定mysql.sock迁移后的位置

  • 查找php.ini位置

find / -name php.ini

  • 修改:php.ini

vi /etc/php.ini

mysqli.default_socket = /data/mysql_data/mysql/mysql.sock

# 大概在1123行
  • 重启php-fpm

systemctl restart php-fpm

  • 修改zabbix_server.conf:

vi /etc/zabbix/zabbix_server.conf

DBSocket=/data/mysql_data/mysql/mysql.sock
CacheSize=2048M

# 前面#号要去掉。
  • 重启zabbix服务

systemctl restart zabbix-server

注:如果不指定迁移后的mysql.sock文件位置的话,zabbix会自动从默认位置/var/lib/mysql/mysql.sock读取。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
课程目标     全面理解和掌握 Zabbix 监控系统的架构及运行原理,搭建和管理各种规模的Zabbix监控系统 课程简介         Zabbix是一个开源的企业级的监控解决方案。通过Zabbix可以监控IT基础设施的方方面面,包括硬件、操作系统、网络、虚拟化层、中间件和各种业务应用系统。用Zabbix几乎可以监控你想监控的任意数据。              本课程从Zabbix的介绍、安装开始,一步步带你深入Zabbix,通过学习你会:         1、掌握Zabbix各个组件的配置和管理。         2、掌握不同监控项的类型和配置方法,根据监控需求灵活配置监控项。         3、掌握网络发现、低级发现和主动式agent自动注册,实现自动化监控。         4、掌握模版、宏变量、触发器和告警通知的配置和高级的应用方法。         5、掌握图形、屏幕、拓扑图和仪表盘等数据可视化的方法,利用大屏可以实时的展示监控数据。         6、掌握Zabbix系统自身的维护、备份、升级、排障以及性能优化。         7、掌握Zabbix内部运行机制和Zabbix使用技巧,让zabbix更好的帮助你实现监控目标。                  本课程中还包含很多操作演示,比如像创建主机,创建监控项、触发器、图形、全局事件关联等,也介绍了微信和钉钉告警的配置方法。当你对Zabbix深入了解之后,面对层出不穷的新业务、新应用,你都能轻松自如的制定和提供相应的监控解决方案。 特别提示:官网的中文文档有些地方翻译的有问题,一定要以英文文档为准。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hadesls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值