概 要
这篇文档所讲述的迁移方案仅在满足文档第一二三章里面所讲的准备工作中,所提的条件的情况下,才能完成。第一章第一节主要讲述的是centreon最简单也是最常用的架构,这是我们实际实验使用成功的centreon架构,然后也说明了实际实验中centreon需要的一些组件版本。这也是操作不出问题的前提条件。
整个文档主要内容是基于centreon官网提供的“centreon2.5升级至centreon2.8”和“centreon2.8迁移至centreon18.10”这两篇官方文档来进行实践操作,最终结果是成功的,我们将实践过程写在第二章和第三章。centreon的这两篇官方文档讲的略显简单,文档所写,仅是在官方文档的基础上做了一些补充。主要是提了以下几点:
在进行导数据库操作前一定要先命令行中卸载所有旧centreon web上能用,但是新监控中不能使用的所有module和widget
当克隆旧监控的主机来导数据库时,一定要先down掉MySQL服务才开始dump数据出来,不然会破坏数据库索引,以至于无法dump出数据。
当新监控的web如果有任何显示错误请注意是否导出旧监控主机中/usr/share/centreon/www/img/media/中的图到新监控的主机中的该文件夹下,并且请注意新监控的web界面里的administration>parameters>monitoring中的images Directory是否是/usr/share/centreon/www/img/media/
当装好了一个待迁移数据的新监控后,若发现中央服务器的poller是no runing状态只需要多执行下文中的提到的初始化操作就好。
一定要注意当centreon主机重启后,一定要输systemctl start centcore,手动重启这个服务,这个重要服务即使enable了也还是不能开机自启动,centreon官方团队也承认这是个尚待解决的bug
目 录
概 要...................................................................................................... I
第1章 前提.......................................................................................... 1
1.1 架构............................................................................................. 1
1.2 组件版本..................................................................................... 2
第2章 旧版centreon的升级............................................................ 4
2.1 升级旧版centreon前的准备工作................................................. 4
2.2 升级步骤........................................................................................... 4
第3章 centreon迁移......................................................................... 7
3.1 安装新版本centreon..................................................................... 7
3.2 数据迁移......................................................................................... 12
3.2.1在旧监控克隆机上的操作.................................................... 12
3.2.2在新监控中央主机上的操作................................................ 13
第4章 监控服务器及插件配置.......................................................... 14
4.1监控主机的安装和配置.................................................................. 14
4.2插件配置......................................................................................... 17
第1章 前提
由于本篇文档仅对某一类版本和某一类架构的旧centreon和新centreon做过实际的测试迁移和实际使用,所以只有在满足本章前提所讲的centeon架构和版本的情况下,才不会出现一些意料之外的错误。
1.1 架构
本篇文档讲述的迁移方法仅适用于如图一所示的架构,是centreon最简单也是最常用的架构,其它类型的监控架构暂未进行过测试。
如图所示的架构是由一个中央服务器(centreon central server)加上一个或多个监控客户端(poller)组成,中央服务器是centreon的web服务器也是centreon的数据库服务器,用于接收由poller传来的所有被监控机器的监控数据。Poller可以是一个或多个,多个poller能负担更多机器的监控,每个poller之间无任何联系。中央服务器与poller通过centreon broker服务及SSH来进行数据通信,另外中央服务器也能作为一个poller来监控设备(测试过的centreon监控体系没将中央服务器作为监控主机)。图中中央服务器及监控客户端的组件功能如下:
(1) Central SQL : 所有从poller接收到的被监控机器的监控数据都会通过该组件插入到centreon_storage数据库中。
(2) Central RRD : 该组件是一个集成于cenreon中央服务器中的rrdtool,一个开源的能对数据进行图形化显示的工具,centreon数据库中的所有监控数据都能通过此组件形成可视化的图表。
(3) Centcore : 在对poller进行任何配置时起作用。使用者在centreon web上对poller进行的任何设置操作,都会通过该服务生成一个包含命令及配置信息的.cmd文件,然后通过ssh传递到poller中执行。.cmd可执行文件也被称为extercmd即外部命令。在中央服务器中通systemctl start/stop centcore来开启关闭该服务。
(4) Centreon engine : 是一个经centreon开发人员对nagios进行二次开发的监控引擎。
(5) Cbmod : 即centreon broker是一个将监控机器的监控数据发送给MySQL数据库的一个插件,在centreon中被集成到每个centreon engine一起。
(6) Centreon plugin : 在图中的这个位置也可以是nagios plugin,实际上每个plugin是对应的每个监控命令,在每个监控服务器的命令行中在执行每个监控命令的时候附上合适的参数和IP,就能对某台服务器的CPU或内存或某功能进行监控。
1.2 组件版本
此篇技术文档只对如下表格中的软件和centreon组件版本做过实际测试,被迁移的就监控版本是2.5.4及相关版本的组件,新centreon的版本则是18.10.4和对应的相关组件的版本,具体如下。
- 首先是被迁移的旧监控centreon的软件版本:
Centreon central server:
组件 | 版本 |
---|---|
Centreon web | 2.5.4 |
Centreon engine | 1.4.9 |
Centreon broker | 2.7.0 |
MariaDB | 5.5.35 |
rrdtool | 1.4.7 |
Poller:
组件 | 版本 |
---|---|
Centreon engine | 1.4.13或1.4.15 |
Centreon broker | 2.6.1 |
2.其次是被迁移数据的新版centreon需要的软件版本:
Centreon central server:
组件 | 版本 |
---|---|
Centreon web | 18.10.4 |
Centreon engine | 18.10.0 |
Centreon broker | 18.10.1 |
MariaDB | 10.1.36 |
rrdtool | 1.4.8 |
Poller:
组件 | 版本 |
---|---|
Centreon engine | 18.10.0 |
Centreon broker | 18.10.0 |
*18.10版本的监控服务器中的centreon engine和centreon broker是集成在一起的,版本一致
第2章 旧版centreon的升级
本篇文档介绍的迁移过程是,先将旧监控版本升级至2.8.27,然后再迁移到最新版本18.10,这么做的主要原因是因为,2.8.X之前的版本只能运行在centos6上面,而新版18.10.4只能运行在centos7上面。由于centreon官方只提供了旧版本升级至2.8.27的官方文档和2.8.27迁移至18.10.4的文档,所以本篇文档所介绍的已测试成功了的迁移过程,主要是centreon2.5.4升级至2.8.27,然后再由2.8.27迁移至18.10.4
2.1 升级旧版centreon前的准备工作
整个准备过程如下:
命令行中输入shutdown -h now,关闭旧版的中央服务器,或者关闭数据库服务(不在关闭数据库的情况下克隆服务器会损坏克隆版服务器中的数据库索引。)
克隆中央服务器并暂时关闭虚拟网卡。
在旧版本的中央服务器的克隆版上面换掉网卡文件中的IP地址,然后重新开启虚拟网卡。
在centreon提供的下载网站https://download.centreon.com/中,下载文件名为centreon-web-2.8.27.tar.gz的压缩包,并放入到克隆好了的旧版中央服务器中。
2.2 升级步骤
-
提取已放入系统的压缩包
tar xvfz centreon-web-2.8.x.tar.gz
进入解压缩的文件夹中,运行脚本
cd centreon-web-2.8.x
./install -u /etc/centreon-
运行脚本后会出现如下选项,首先是基本组件检查,只有当centreon2.8版本所需的组件全部安装后才会运行之后的步骤,如果没有安装则会报警提示,退出脚本安装界面安装就好。
image.png -
加载以前的安装参数
image.png -
选择需要进行更新的centreon组件,我们只需要更新自己需要的组件就行,比如centreon snmp traps 在实际使用centreon的时候,我们并没有使用可以选择不更新。
image.png 之后的安装选项,需要指定一些目录,比如monitoring plugin所在目录在/usr/lib/centreon/plugins,在安装的时候根据提示,输入目录就好,更详细的解释请看centreon官方文档,基本上也就是只需要按默认回车就好。
https://documentation.centreon.com/docs/centreon/en/2.8.x/upgrade/from_sources.html-
最后就是web界面有个安装更新过程。基本上也是只需要一路点next就好。
image.png
8.最后当出现如下界面的时候说明升级成功。
image.png
第3章 centreon迁移
3.1 安装新版本centreon
首先我们肯定需要安装一台新的18.10版本的新centreon中央服务器用来接收所有从旧版centreon迁移过来的所有数据,最终完成centreon新旧版本的数据迁移。
根据旧监控的硬件配置来安装一台最小化安装的centos7服务器,实际操作中配置的是至少4核8G,200G硬盘(更具体的硬件配置需要根据实际需求决定,centreon官方文档中对有详细的规划https://documentation.centreon.com/docs/centreon/en/18.10/installation/prerequisites.html)。安装好一台新的centos7主机后,我们通过rpm包的方式在上面安装18.10版本的新centreon中央服务器具体操作如下:
- 禁掉selinux
vi /etc/selinux/config
SELINUX=disabled
- 使用如下安装集成软件包,里面含php7等centreon依赖组件
yum install centos-release-scl
- 安装centreon yum源
Wget http://yum.centreon.com/standard/18.10/el7/stable/noarch/RPMS/centreon-release-18.10-2.el7.centos.noarch.rpm -O /tmp/centreon-release-18.10-2.el7.centos.noarch.rpm
yum install --nogpgcheck /tmp/centreon-release-18.10-2.el7.centos.noarch.rpm
- Yum安装centreon及开启数据库
yum install centreon
systemctl restart mysql
- 进行数据库设置以修正LimitNOFILE limitation
mkdir -p /etc/systemd/system/mariadb.service.d/
echo -ne "[Service]\nLimitNOFILE=32000\n" | tee /etc/systemd/system/mariadb.service.d/limits.conf
systemctl daemon-reload
systemctl restart mysql
- 设置php时区后重启php fpm server
echo "date.timezone = Asia/Shanghai" > /etc/opt/rh/rh-php71/php.d/php-timezone.ini
- 禁掉防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
- Enable必要服务
systemctl enable httpd
systemctl enable snmpd
systemctl enable snmptrapd
systemctl enable rh-php71-php-fpm
systemctl enable centcore
systemctl enable centreontrapd
systemctl enable cbd
systemctl enable centengine
systemctl enable centreon
systemctl enable mysql
- 最后开启所有必要服务
systemctl start rh-php71-php-fpm
systemctl start httpd
systemctl start mysqld
systemctl start cbd
systemctl start snmpd
systemctl start snmptrapd
-
通过登录URL: http://[SERVER_IP]/centreon,我们进行centreon web界面的安装,基本上也是next到底。只有当出现数据库账号密码的时候,我们需要甚至一个安全的centreon_storage的数据库账号密码。
image.png -
然后出现如下询问组件是否需要安装的界面的时候,全部勾选然后点install,最后当出现如下第二张图所示界面的时候,点击finish,安装成功。
image.png
image.png -
然后登录到centroen web上,我们再进行如下操作,
image.png
image.png 然后在主机命令行中我们开启如下服务,并enable一些重要服务:
systemctl start cbd
systemctl start centengine
systemctl start centcore
systemctl restart httpd
systemctl enable centcore
systemctl enable cbd
systemctl enable centengine
systemctl enable centreon-
当看到中央服务器的poller正常运行的话,说明安装成功以及centreon初始化成功(如果is runing那一栏是No,说明初始化还未成功,只要再重复执行12和13步的开启服务操作就好):
image.png
数据迁移
当做完旧版centreon的克隆虚拟机上的centreon版本升级以及准备好新版18.10版本的centreon后,开始进行数据迁移,总共分为两步,第一步是配置文件的迁移,第二步是数据库的迁移。
3.2.1在旧监控克隆机上的操作
centreon web上能看得到的一切东西都是存在centreon_storage数据库中的,所以在做数据库的迁移的时候,一定要将那些在新监控中已不支持使用,但是旧监控中任然存在的插件和module,从旧版centreon的克隆虚拟机中卸载后再做数据迁移操作。
- 卸载插件和module
在旧监控中的Administration->extensions中可以看到所有module和widge
先在web中点选卸载按钮卸载所有组件和插件,再在主机命令行中yum search或通过rpm来搜索这些已安装的组件和插件的名字,然后yum remove卸载掉。
- 同步旧监控主机的数据到新监控主机中
rsync -avz /etc/centreon root@IP_New_Centreon:/etc
rsync -avz /etc/centreon-broker root@IP_New_Centreon:/etc
rsync -avz /var/log/centreon-engine/archives/ root@IP_New_Centreon:/var/log/centreon-engine
rsync -avz --exclude centcore/ --exclude log/ /var/lib/centreon root@IP_New_Centreon:/var/lib
rsync -avz /var/spool/centreon/.ssh root@IP_New_Centreon:/var/spool/centreon
(*IP_New_Centreon指新版监控中央服务器的IP) - Dump出数据库文件并停止数据库
mysqldump -u root -p centreon > /tmp/export/centreon.sql
mysqldump -u root -p centreon_storage > /tmp/export/centreon_storage.sql
service mysql stop - 将导出的数据库文件同步到新监控的中央主机中
rsync -avz /tmp/centreon.sql root@IP_New_Centreon:/tmp/
rsync -avz /tmp/centreon_storage.sql root@IP_New_Centreon:/tmp/
3.2.2在新监控中央主机上的操作
- 删除新监控中央服务器中的centreon相关数据库
mysql -u root -p
drop database centreon;
drop database centreon_storage;
create database centreon;
create database centreon_storage;
- 导入3.2.1节中写的,已传输完的旧监控数据库文件,在命令行中输入如下命令
mysql -u root centreon -p
mysql -u root centreon_storage -p
- 最后升级表
mysql_upgrade
- 最后通过centreon web更新脚本更新整个新版centreon,这一脚本的使用跟第二章所讲的旧监控升级2.8.27基本一致,更具体的请查看官方文档(https://documentation.centreon.com/docs/centreon/en/18.10/upgrade/from_sources.html)
cd /usr/share/centreon/installDir/
mv install-18.10.0-YYYYMMDD_HHMMSS/ ../www/install/
到这节为止,旧版centreon往新版centreon的数据迁移就到此为止,剩下的就是监控主机即poller的插件迁移。
第4章 监控服务器及插件配置
4.1监控主机的安装和配置
到第3章为止所有旧监控往新监控的数据迁移已全部完成,剩下的就是监控主机,即poller的配置安装,poller的配置安装非常简单,具体请看如下截图
- Centreon repository installation:
wget http://yum.centreon.com/standard/18.10/el7/stable/noarch/RPMS/centreon-release-18.10-2.el7.centos.noarch.rpm -O /tmp/centreon-release-18.10-2.el7.centos.noarch.rpm
yum install --nogpgcheck /tmp/centreon-release-18.10-2.el7.centos.noarch.rpm
最后,当在centreon web中添加完poller后需要初始化poller,操作与第3.1节中的第12、13和14步所讲一致。
4.2插件配置
当配置好poller后,需要将以前旧poller上的nagios plugin复制过来,有一些nagios plugin可能需要某些脚本来重新安装一次(这个百度就能弄清楚怎么做),但大部分是只需要在命令行中执行以下命令安装上一些perl组件就能使用:
yum install perl-*
yum install perl-lib.i6.86
yum install openssl-libs.i6.86
yum install openssl
关于nagios插件有些可以选择更新,最新版的插件大部分能在如下网址中找到,其中还附有插件的安装方法(https://exchange.nagios.org/)
而关于centreon web界面的配置请看《 海量运维监控系统规划与部署》(百度能搜到资源),虽然该本书讲的是centreon2.5.1的安装配置,但是18.10 web界面的大部分操作和书上一致。