记录一次zabbix server迁移事件

  • A+
所属分类:服务器架构 监控

一、说明

1.1、为什么迁移

服务器到期不用了,需要将监控迁移到在用的服务器上。
本来以为会很难的,在网上查了查其实还是比较简单的,所以这里记录下。

zabbix的前端所有的操作都存在zabbix数据库里。所以zabbix迁移只需对zabbix库中相应的表进行导出导进即可。

zabbix迁移可以针对是否迁移历史数据而分开进行,假如要求历史数据不丢失,那么需要对zabbix整个库迁移,若是对历史数据不要求,那么只迁移配置信息即可,毕竟历史数据占据了大量的空间。

本次操作是整库迁移的。

二、开始操作

2.1、导出数据库

# mysqldump -uroot -p$password -B --single-transaction zabbix|gzip >>/data/backup/mysql/all/zabbix_`date +%F`.sql.gz

2.2、将本分文件传到新zabbix服务器

# cd /data/backup/mysql/all
# scp zabbix_`date +%F`.sql.gz root@192.168.x.x:/tmp

2.3、新zabbix server服务器搭建MySQL数据库并导入数据

搭建MySQL请参考:https://www.zhuimengren.co/suiji/872.html

# cd /tmp
# zcat zabbix_`date +%F`.sql.gz >>zabbix_`date +%F`.sql     #获取数据文件
# mysql -uroot -p$Password </tmp/zabbix_`date +%F`.sql         #导入数据

说明:zabbix库可以是一个新建的库,也可以是已经存在的库,因为sql文件再导入时,会先看表是否存在,假如表存在会先删除再导入

2.4、Nginx、PHP、zabbix server安装

1.nginx安装请参考:https://www.zhuimengren.co/suiji/788.html
2.php安装请参考:https://www.zhuimengren.co/suiji/943.html
3.zabbix server安装:

# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.11/zabbix-3.4.11.tar.gz         #下载包
# yum -y install fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel java-devel       #安装依赖包
# tar xf zabbix-3.4.11.tar.gz      #解压
# cd zabbix-3.4.11
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --enable-ipv6 \
--with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl --with-mysql=mysqlnd

执行到这里时会有报错,下面是报错信息及解决办法:

错误:configure: error: LIBXML2 library not found
解决办法:yum install libxml2-devel
错误:configure: error: Unable to use libevent (libevent check failed)
解决办法:yum install -y libevent libevent-devel
错误:configure: error: Curl library not found
解决办法:yum install libcurl-devel

向下执行:

# make && make install

2.5、配置Nginx、及zabbix的web代码

1.创建web目录并上传代码:

# mkdir /usr/local/nginx/html/zabbix
# cp -a /usr/local/src/zabbix-3.4.11/frontends/php/* /usr/local/nginx/html/zabbix
# chown -R zabbix.zabbix /usr/local/nginx/html/zabbix

2.nginx的配置文件如下:

server {
listen    80;
server_name    zabbix.yourdomain.com;
root   html/zabbix;
location / {
root    html/zabbix;
index   index.php  index.html  index.htm;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
access_log logs/zabbix-access.log;
}

2.6、修改php.ini参数

# vim /usr/local/php/lib/php.ini

660 post_max_size = 8M      #改为16M
372 max_execution_time = 30      #改为300
382 max_input_time = 60           #改为300
704 ;always_populate_raw_post_data = -1              #取消注释
926 ;date.timezone =     #时区设置为上海  date.timezone = Asia/Shanghai

2.7、添加php模块

1、gettext模块
# cd /usr/local/src/php.5.6.16/ext/gettext/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# echo "extension = gettext.so" >>/usr/local/php/lib/php.ini
2、ldap模块
# cd /usr/local/src/php.5.6.16/ext/ldap/
# /usr/local/php/bin/phpize
# ./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap
# make && make install
# echo "extension = ldap.so" >>/usr/local/php/lib/php.ini
报错:configure: error: Cannot find ldap libraries in /usr/lib.
解决:cp -a /usr/lib64/libldap* /usr/lib/

增加完模块后重启php进程

2.8、配置zabbix server

# egrep -v "^#|^$" zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=¥database-passwd
DBSocket=/tmp/mysql.sock
Timeout=4
LogSlowQueries=3000
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf

2.9、修改zabbix server的数据库连接文件

# vim /usr/local/nginx/html/zabbix/conf/zabbix.conf.php 
<?php 
// Zabbix GUI configuration file
global $DB; 
$DB['TYPE']    = 'MYSQL'; 
$DB['SERVER']  = 'localhost';     #数据库的ip地址
$DB['PORT']    = '0';       #数据库端口号 
$DB['DATABASE'] = 'zabbix';     #数据库名
$DB['USER']    = 'root';     #连接zabbix数据库的用户 
$DB['PASSWORD'] = '123456';     #连接zabbix数据库的用户的密码 
// SCHEMA is relevant only for IBM_DB2 database 
$DB['SCHEMA'] = ''; 
$ZBX_SERVER      = 'localhost'; 
$ZBX_SERVER_PORT = '10051'; 
$ZBX_SERVER_NAME = ''; 
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; 
?> 

2.10、启动lnmp与zabbix server

确保:MySQL、php、zabbix server、Nginx是启动的状态。

# /etc/init.d/mysqld status     #确定MySQL是否启动
# /usr/local/php/sbin/php-fpm      #启动php
# /usr/local/zabbix/sbin/zabbix_server            #启动zabbix-server
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx                     #启动nginx

接下来访问不你的zabbix域名或者ip地址就可以了!!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: