开源IT服务管理工具iTOP安装实践

知是行的主意,行是知的功夫。这篇文章主要讲述开源IT服务管理工具iTOP安装实践相关的知识,希望能为你提供帮助。
一、背景
在itop中文网(http://www.itop.net.cn/)对iTOP的说明为“基于WEB的遵循ITIL的开源IT运维管理软件“,其具有免费开源、支持中文、支持基于WEB的访问、基于ITIL最佳实践、安装配置简单、使用简单的特点,而其主要的功能包括服务管理、变更管理、问题管理、服务台、配置管理、事件管理等。因此对于一般公司而言这是一个非常不错的选择,笔者计划在CENTOS7.6上安装iTOP软件,测试无问题后将虚拟机导出为OVF格式,再导入到其他的环境中使用,本文主要分享笔者在安装iTOP的过程及在虚拟机导出导入的过程中遇到的相关问题。
 
二、准备工作及相关说明
1、 操作系统,我选用的是CENTOS7.6 64位,最小安装即可;
2、 Apache httpd的版本使用2.4;
3、 数据库,iTOP对数据库的版本要求为5.6-5.7或者10.1-10.4,不能低于5.6.0,建议使用Mariadb,而CENTOS源提供的是5.5.68版本的Mariadb,因此需要重新下载Mariadb,具体参见后面操作步骤;
4、 php,iTOP对PHP版本的版本要求为5.6-7.4,CENTOS7的YUM源提供的是php5.4,我们计划采用72w,因此需要重新安装符合我们需求的PHP版本,具体参见后面的操作步骤;
5、 iTOP软件,从sourceforge下载最新版本 iTOP,我下载的版本为:iTop-2.7.5-1-7770,地址 :
??https://sourceforge.net/projects/itop/??
6、 软硬件关系参考iTop Hub网站说明:
??https://www.itophub.io/wiki/page?id=3_0_0%3Ainstall%3Arequirements??

三、基础环境准备
1、为了便于后续安装,先关闭firewalld防火墙以及selinux,在后续可以根据实际情况开启防火墙的特定端口即可。

2、安装基础组件
  [root@localhost ~]# yum install -y unzipgraphviz unzip mod_ssl
四、安装LAMP
(一)    安装Apache 服务
1、查看YUM源提供的httpd的版本:
[root@localhost~]# yum list all httpd
……
Available Packages
httpd.x86_64              2.4.6-97.el7.centos.2                                                  updates
            是我们需要的版本
2、直接使用YUM安装,安装后启动httpd服务
[root@localhost~]# yum install -y httpd
[root@localhost~]# systemctl start httpd
3、检查httpd服务是否正常
[root@localhosthtml]# systemctl status httpd
使用浏览器直接访问IP地址,显示如下信息表示安装成功:

(二)    安装数据库服务
1、查看CENTOS7默认YUM源提供的Mariadb版本:
[root@localhost~]# yum list all mariadb
……
Available Packages
mariadb.x86_64                    1:5.5.68-1.el7                                                          base
这不是我们需要的版本,安装新的YUM源。
2、找到Mariadb官网,根据我们的需求选择版本,然后网站会生成相应的YUM源,我们只需要将该YUM源配置在/etc/yum.repos.d/目录下即可:
Mriadb官网:
??https://mariadb.org/download/?t=repo-config& d=CentOS+7+%28x86_64%29& v=10.3& r_m=bkns??

如下:

3、安装我们需要的MariaDB-server
[root@localhost ~]# yum install -y MariaDB-server.x86_64 
4、启动数据库及进行初始化配置
[root@localhost~]# systemctl start mariadb
[root@localhost~]# mysql_secure_installation              //初始化数据库,设置root账户及Password root123
[root@localhost~]# mysql -uroot -proot123
MariaDB[(none)]> create database itop DEFAULT CHARACTER SET utf8;
Query OK, 1 rowaffected (0.001 sec)
MariaDB[(none)]> create user itop@localhost identified by itop;
Query OK, 0 rowsaffected (0.000 sec)
MariaDB[(none)]> grant all privileges on *.* to itop@localhost identified by itop;
Query OK, 0 rowsaffected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rowsaffected (0.000 sec)
MariaDB[(none)]>
MariaDB[(none)]> exit
Bye
 
(三)安装PHP
1、查看CENTOS默认YUM源提供的PHP版本:
[root@localhost~]# yum list all php
Available Packages
php.x86_64                          5.4.16-48.el7                                                                base
不是我们需要的版本
2、增加PHP7的YUM源:
yum -y installepel-release
rpm -Uvh  ??https://mirror.webtatic.com/yum/el7/webtatic-release.rpm??
3、安装PHP及相关的组件
[root@localhost~]# yum -y install php72w php72w-gd php72w-mysqlnd php72w-imap php72w-soap php72w-ldap php72w-mbstring php72w-pecl-zendopcache php72w-xml php72w-cli
注意:需要的组件可以在??https://www.itophub.io??查看,如果组件安装不全,在安装iTOP的时候会进行提示。
4、检查PHP安装结果
            查看PHP的版本信息:

            在apache的根目录/var/www/html目录中创建PHP测试文件:

浏览器访问测试文件,如下表示正常:
 
 
五、安装iTOP
1、 在apache的根目录/var/www/html目录中创建itop目录
2、 将准备好的iTOP安装包解压后放到itop目录中,赋予apache用户及用户组的权限
[root@localhosthtml]# chown -R apache:apache itop/*

3、 浏览器访问:??http://192.168.238.135/itop/web/setup??,进入安装配置页面:
这一步会对所有的环境信息进行检查,如果前面安装的组件不正确,这里也会给出提示信息:
 
  ??
 
这里配置的数据库连接信息:

这里配置iTOP管理员账户:
 
注意看这里应用访问的URL,这里固定了IP地址:

4、 其他说明
(1)直到这里可以进入到iTOP的页面表示整个安装过程结束,这里看一下相关日志文件的目录有助于故障排除:

(2)配置HTTPD、Mariadb自动启动,开启防火墙,通过配置文件关闭selinux配置
[root@localhost html]# systemctl enable httpd
Created symlink from/etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost html]# systemctl enable mariadb
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.             
[root@localhost html]# vi /etc/selinux/config

[root@localhost html]# systemctl start firewalld
[root@localhost html]# firewall-cmd --permanent --add-port=80/tcp
success
[root@localhost html]# firewall-cmd --reload
success
六、遇到的问题
1、 安装之前对版本的依赖关系没有搞清楚,安装过程中遇到Mariadb版本不正确、PHP版本不正确的相关问题,卸载后再重新安装又遇到版本依赖性问题,整个过程比较麻烦;
2、 安装过程遵循Linux-Apache-MariaDB-PHP-iTOP的思路,每安装完成一步就验证一步,避免安装过程中出现问题后不知道是哪里的问题。第一遍安装的时候比较混乱,解压iTOP安装包后,通过浏览器访问发现浏览器只展示文件目录,不解析PHP文件,其中遇到selinux未关闭、Mariadb、PHP扩展版本不正确的问题;
3、 在本地虚拟机安装后,打包成OVF文件,然后迁移至另外的VMWARE环境,浏览器访问时发现报错,提示iTOP服务出现问题,浏览器报错具体信息未记录,观察日志中的信息提示[Mon Nov22 06:52:50.972193 2021] [php7:error] [pid 7230] [client 192.168.238.1:62779] PHP Fatal error:  Uncaught Error: Call to undefined function mysqli_report() in /var/www/html/itop/web/core/cmdbsource.class.inc.php:250\\nStacktrace:\\n#0/var/www/html/itop/web/core/cmdbsource.class.inc.php(223):CMDBSource::GetMysqliInstance(localhost, itop, itop, itop, false, NULL, true)\\n#1 /var/www/html/itop/web/core/cmdbsource.class.inc.php(195):CMDBSource::Init(localhost, itop, itop, itop, false, NULL)\\n#2 /var/www/html/itop/web/core/metamodel.class.php(6486):CMDBSource::InitFromConfig(Object(Config))\\n#3/var/www/html/itop/web/core/metamodel.class.php(6292): MetaModel::LoadConfig(Object(Config), true)\\n#4 /var/www/html/itop/web/application/startup.inc.php(98): MetaModel::Startup(/var/www/html/i..., false, true, false, production)\\n#5 /var/www/html/itop/web/pages/UI.php(343): require_once(/var/www/html/i...)\\n#6 {main}\\n  thrown in /var/www/html/itop/web/core/cmdbsource.class.inc.php on line 250。分析日志感觉是iTOP连接不上数据库了,但是检查数据库端口、服务均正常。通过百度搜索有的说法是PHP72w中使用mysqli替代mysql,有的说是要修改php.ini中的extension、有的说是要修改nd_mysql文件等等,均未解决问题。最后多处搜索资料,仔细查看日志,日志中提示“undefined function”,结合前面说的nd_mysql,我想是不是这个文件有异常了,于是使用rpm -qa 查看这个包,一直查询不到,重新安装这个包后,再次刷新页面不再报错。

为什么打包虚拟机OVF文件前是正常的,可能是因为第一次安装的时候遇到各种问题,安装了各种版本,然后有的时候冲突又卸载了,但是未重启,所以应用是正常的,打包虚拟机会关机再次重新启动,因此就报错了。
4、 解决了上一个问题后,发现在访问URL的时候非常的慢,几乎展示不出来页面,或者展示出来的页面中是完全混乱的,而且点击子页面会卡死,查看日志中又没有错误提示,在偶然测试中发现将迁移前的虚拟机也同时打开时,如果访问迁移后的URL会非常的流畅。经过对前端浏览器的请求分析,发现访问迁移后的虚拟机会自动的重定向到迁移前的虚拟机,向迁移前的地址发起请求,猜测是在安装的过程中Application URL那里已经将原来的URL或者IP地址写入到了安装配置文件,虚拟机迁移后,并没有改变配置文件,因此存在此问题。解决方法为删除/var/www/html/下的itop目录,重新进行安装即可。
【开源IT服务管理工具iTOP安装实践】


    推荐阅读