zabbix3.4数据库迁移,将server和database分到不同的两台server

zabbix目前已经是很多公司采用的比较常见的一种系统监控工具,单从个人经验来讲,安装zabbix应该将数据库和zabbix-server分开安装到不同两台机器,然后通过网络(最好是内网)连接访问数据库是一种比较好的方式。

将数据库和zabbix-server分开安装的好处是:降低zabbix-server的系统性能,不需要单独的消耗机器资源来安装databse。

系统环境:

zabbix-server:192.168.31.1

database: 192.168.31.2

database:postgresql

1、先备份数据库:

在zabbix-server上,先停止zabbix-server服务,这样停止主机对数据库的写入操作:

sudo service zabbix-server stop

通过sudo service zabbix-server status命令确认zabbix-server服务已经处于停止状态。

2、备份数据库:切换到postgres用户,用pg_dump工具来对全库进行一个备份。

pg_dump zabbix  -f  /home/ubuntu/pg_back

其中zabbix是数据库名称,pg_back是备份好的文件,备份到ubuntu用户的家目录下。

备份好数据库后,可以将zabbix-server服务启动,这样又可以保存一部分数据到192.168.31.1这台原来的主机上。

3、将备份好的数据库文件拷贝到192.168.31.2这台主机上

sudo scp /home/ubuntu/pg_back ubuntu@192.168.31.2:/home/ubuntu

4、登陆192.168.31.2这台主机,安装postgres数据库:

注意安装数据库的条件,在这里我没有安装不同版本的数据库,安装了zabbix-server一模一样的数据库:postgres9.5

sudo apt-get update
sudo apt-get install postgresql-9.5

5、创建数据库角色,赋值权限相关

pg_dump命令只会备份数据库的数据内容,但是不会备份数据库角色和权限相干的内容,包括数据表索引。如果要全量备份这些内容,可以使用pg_dumpall命令,但是此命令会比较耗时。

create user zabbix;
\password zabbix
grant all privileges on database zabbix to zabbix;

6、在192.168.31.2主机上恢复备份的数据库文件:

su postgres
psql -u zabbix -d zabbix -f  /home/ubuntu/pg_back

7、数据库性能设置

调节数据库连接数&监听的地址类型:

# - Connection Settings -

listen_addresses = '*'                        # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
                                                  # (change requires restart)
port = 5432                                        # (change requires restart)
max_connections = 600                               # (change requires restart)
#superuser_reserved_connections = 3                # (change requires restart)
unix_socket_directories = '/var/run/postgresql'    # comma-separated list of directories
                                                      # (change requires restart)
#unix_socket_group = ''                                # (change requires restart)
#unix_socket_permissions = 0777                        # begin with 0 to use octal notation
                                                           # (change requires restart)
#bonjour = off                                         # advertise server via Bonjour
                                                      # (change requires restart)
#bonjour_name = ''                                   # defaults to the computer name

修改完成后,重启postgresql服务

sudo service postgresql restart

----------------------------------------------------------------------------------------------------------------------------------------------------

至此,数据库的迁移基本上已经完成,接下来将zabbix-server的数据库配置指向新安装的数据库端

8、修改zabbix-server的配置文件,将数据库指向新的database

### Option: DBHost
#    Database host name.
#    If set to localhost, socket is used for MySQL.
#    If set to empty string, socket is used for PostgreSQL.
#
# Mandatory: no
# Default:
DBHost=192.168.31.2

### Option: DBName
#    Database name.
#    For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.

#
# Mandatory: yes
# Default:
# DBName=
DBName=zabbix

### Option: DBSchema
#    Schema name. Used for IBM DB2 and PostgreSQL.
#
# Mandatory: no
# Default:
# DBSchema=

### Option: DBUser
#    Database user. Ignored for SQLite.
#
# Mandatory: no
# Default:
# DBUser=
DBUser=zabbix

### Option: DBPassword
#    Database password. Ignored for SQLite.
#    Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=1qaz2wsx

### Option: DBSocket
#    Path to MySQL socket.
#
# Mandatory: no
# Default:
# DBSocket=/tmp/mysql.sock

### Option: DBPort
#    Database port when not using local socket. Ignored for SQLite.
#
# Mandatory: no
# Range: 1024-65535
# Default (for MySQL):
DBPort=5432

修改完成之后,重启zabbix-server,重启完成后,发现zabbix界面提示database is down,可是又发现192.168.31.2这台新的server中的database确实有数据进来,并且已经192.168.31.1这台机器已经连接到新的database中了。

到底是为什么?所以,此处有坑。

后来查了一些资料,发现zabbix-server显示的database数据是通过web来配置定义,配置文件在如下位置。

sudo vim /etc/zabbix/web/zabbix.conf.php

配置以下内容:

// Zabbix GUI configuration file.

global $DB;

$DB['TYPE']     = 'POSTGRESQL';
$DB['SERVER']   = '192.168.31.2';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = '1qaz2wsx';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

基于以上配置完成,重启zabbix-server服务

sudo service zabbix-server restart

重启完成后,发现zabbix界面已经指向新的database,此时将192.168.31.1这台server上的database数据库停止,也不会影响zabbix的界面显示。

至此,zabbix数据库和server分开到两台server上,数据库迁移完成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值