zabbix数据库迁移
目录
zabbix数据库迁移
前言
zabbix安装时我们把lamp环境都安装在了一台服务器上,但是mysql的容量关系zabbix的命脉,要是容量不够用的话,再多的检测数据也没法存储,严重限制了zabbix性能,就像是相当于给zabbix带上了“紧箍咒”。针对这种情况,需要把mysql数据库分离出去就解决了。
环境:
设备 | 描述 |
---|---|
192.168.10.7(zabbix服务器) | lamp集于一身的zabbix |
192.168.10.4(msyql数据库) | 分离到的数据库 |
192.168.10.8(agent端) | 监控的agent端 |
1>//自行准备mysql数据库。可参考:
2>//开启数据库,创建同名数据库和用户
创建数据库,添加支持中文字符集:
mysql> create database zabbix character set utf8 collate utf8_bin;
给zabbix赋权:
mysql> grant all on zabbix.* to zabbix@'%' identified by '123.com';
3 >//在zabbix服务器上备份导出zabbix数据库
在zabbix服务器上备份数据库文件:
mysqldump -uroot -p123.com --databases zabbix > `date +%F%H`_zabbix.sql
在192.168.10.4上scp拷贝过来数据库文件
[root@192.168.10.4 ~]# scp root@192.168.10.7:/root/2020-04-2115_zabbix.sql ./
4>// 在192.168.10.4mysql数据库上把备份的数据库文件导入
mysql -uroot -p < 2020-04-2115_zabbix.sql
Enter password: #密码123.com
还没有完,数据库只是转移过去了,但是原来的数据库连接信息还在zabbix-server上面,
zabbix_server.conf
,
/web/zabbix.conf.php
都是需要改的,web/zabbix.conf.php是安装完成的时候生成的与mysql有关的文件。、
注意最下面一行
5>//修改zabbix-server上的数据库连接信息
[root@localhost ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.10.4
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
DBPort=3306
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
6>//修改/etc/zabbix/web/zabbix.conf.php
[root@localhost ~]# grep -Ev '^$|#' /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '192.168.10.4';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = '123.com';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'lzj_zabbix';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
7>//在server端重启zabbix和httpd,关闭mysql,验证
systemctl restart zabbix-server httpd
systemctl stop mariadb.service
没有问题,依然可以访问,到这里,数据库就转移成功了。