zabbix_appliance的数据库扩容方案

问题: zabbix_appliance直接加载虚拟机来部署zabbix是很方便的办法, 下载配置好后, 监控一段时间会提示mysql存储空间不足, 进去系统df一看才4G多, 只好自已手动扩容.

思路:虚拟机上添加一块硬盘,创建新分区并挂载到扩容目录,迁移mysql的数据库目录到扩容目录,修改mysql\php\zabbix的配置文件,恢复正常运行。
原zabbix数据库(容量:4G): /var/lib/mysql/zabbix  (/dev/sda5 <--  /var/lib/mysql)
扩容目录的zabbix数据库位置(容量:126G): /data/mysql_data/mysql/zabbix (/dev/sdb1 <-- /data/mysql_data)

1、hyper-v添加一块ide硬盘
      zabbix虚拟机-右键-设置-IDE控制器-添加-选择126G容量-虚拟硬盘位置-选择目录-文件名-确定-启动虚拟机

2、对新添加的硬盘进行分区
     fdisk -l
     fdisk /dev/sdb
     n-p-回车-回车-回车

3、安装mkfs.ext4命令和格式化新磁盘
     yum install e4fsprogs -y
     mkfs -t ext4 /dev/sdb   #也可以格式化成新文件系统mkfs.xfs /dev/sdb

4、创建扩容目录(即迁移后的目录)并挂载新磁盘
     mkdir /data
     mount /dev/sdb /data
     mkdir /data/mysql_data
     lsblk -f  #查看新磁盘UUID号码“ls -l /dev/disk/by-uuid/”也可
     vi /etc/fstab   #配置挂载信息,如果用mount挂载,重启后可能失效
      添加  UUID=b0fab428-92a9-46b5-8032-772c628d98dd /data/mysql_data        ext4    defaults        0 0
     reboot now
     df -hT
     lsblk   #查看一下分区和挂载目录信息

5、迁移mysql数据库目录
     systemctl stop mysqld
     cp -a /var/lib/mysql /data/mysql_data/   #若权限不对可使用cp -rf /var/lib/mysql /data/mysql_data/
     cd /etc/my.cnf.d/
     chmod u+w zabbix.cnf
     vi zabbix.cnf           
          修改目录:datadir = /data/mysql_data/mysql/
     vi client.cnf
          增加:[client]
                     socket = /data/mysql_data/mysql/mysql.sock
     vi mysql-server.cnf
          修改目录:[mysqld]
                            datadir=/data/mysql_data/mysql
                            socket=/data/mysql_data/mysql/mysql.sock
      chown -R mysql:mysql /data/mysql_data/mysql/  #迁移后目录的属组和属主权限若正确,不需要执行此行命令
      systemctl start mysqld

6、进入mysql查看迁移是否成功
     mysql -uroot -p
     select @@datadir;

7、修改php和zabbix_web配置文件指定mysql.sock迁移后的位置
    find / -name php.ini  #查找php.ini位置
    vi /etc/php.ini 
      修改:mysqli.default_socket = /data/mysql_data/mysql/mysql.sock
    systemctl restart php-fpm
    vi /etc/zabbix/zabbix_server.conf 
      修改:DBSocket=/data/mysql_data/mysql/mysql.sock
    systemctl restart zabbix-server
    注:如果不指定迁移后的mysql.sock文件位置的话,zabbix会自动从默认位置“/var/lib/mysql/mysql.sock”读取。

posted @ 2024-07-22 11:07  天海沙  阅读(37)  评论(0编辑  收藏  举报