环境说明 :
操作系统centos 7、itop版本 iTop-2.5.0-3935、数据库:mariadb
iTop 2.5只支持PHP5.6以上版本,本例安装的是php72w版本
1、下载链接:
2.5.1版本:https://jaist.dl.sourceforge.net/project/itop/itop/2.5.1/iTop-2.5.1-4123.zip 这里找到一个汉化比较全的包:https://pan.baidu.com/s/1u-UEJC84Xm2svKdNcSf0iQ 安装完成后替换掉/env-production/dictionaries/zh-cn.dict.php
2.6.0版本:https://nchc.dl.sourceforge.net/project/itop/itop/2.6.0/iTop-2.6.0-4294.zip 中文比较全,不需要换字典
2.6.1版本:https://jaist.dl.sourceforge.net/project/itop/itop/2.6.1/iTop-2.6.1-4463.zip 中文比较全,不需要换字典
2、安装lamp及相关软件
yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install httpd graphviz unzip mod_ssl mariadb-server php72w php72w-gd php72w-mysql php72w-imap php72w-soap php72w-ldap php72w-mbstring php72w-pecl-zendopcache php72w-xml php72w-cli
3、开启防火墙、关闭SELinux
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
vi /etc/selinux/config
#修改为SELINUX=disabled,重启后生效
SELINUX=disabled
4、创建PHP会话目录,配置目录权限。
mkdir -p /var/lib/php/session
chown apache:apache -R /var/lib/php/session/
5、启动httpd、mariadb服务
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb
6、创建数据库、创建库用户、用户授权、修改数据配置(密码请根据需求自行修改)
create database itop DEFAULT CHARACTER SET utf8;
create user itop@localhost identified by 'itop';
grant all privileges on *.* to itop@'localhost' identified by 'itop';
flush privileges;
exit
vi /etc/my.conf
max_allowed_packet=1048576
7、上传iTop网站程序 /var/www/iTop目录(可以通过xftp或者直接在此目录wget)
mkdir -p /var/www/html/{conf,data,log,env-production}
chown -R apache:apache /var/www/html
cd /var/www/html
unzip iTop-2.5.1-4123.zip
mv /var/www/html/web/* /var/www/html
8、WEB安装过程:
浏览器打开 http://IP/setup/
环境检查,警告可以忽略,但如何处理这个警告还有等研究,因为安装的时候没有找到php72w-mcrypt模块
点击安装模式,全新安装还是升级安装
接受Licenses
配置数据库
设置管理员密码
设置URL和安装模式
安装就绪,点击install!
安装完成
自动登录到欢迎界面
9、配置ldap集成:
vi /etc/hosts
#添加ladp Server的解析
172.17.10.143 2012r2core.mct.com
#修改配置文件
vi /var/www/html/conf/production/config-itop.php
#user和pwd是经先在AD里面建立的,用于服务器之间的验证
'authent-ldap' => array ( 'host' => '服务器IP', 'port' => 389, 'default_user' => 'CN=Administrator,CN=Users,DC=rongtai,DC=local', 'default_pwd' => 'user的密码', 'base_dn' => '查询的根组织', 'user_query' => '(&(samaccountname=%1$s))', // 与AD域集成,这里改成samaccountname=%1$s,也就是用户名与samaccountname对应 'options' => array ( 17 => 3, 8 => 0, ), 'start_tls' => false, 'debug' => false, ),
配置完成的事例
#导入AD用户
参考链接:https://blog.51cto.com/purplegrape/1893014
#由于microsoft Active director默认最大同步用户为1000个,如果你的用户总数超过了这个限制,请在域控制器上面做哪下配置:
在DC上运行ntdsutil
ldap policies
connections
connect to domain xxx.com.hk
quit
show values #确认maxpagesize默认值为1000
set maxpagesize to 10000
show values #确认当前显示:1000(10000)
commit changes
show values #确认当前值为10000
两次quit
10、启用HTTPS
#建立证书存放目录,并上传经申请的公网证书
mkdir -p /etc/httpd/cert
chown apache:apache -R /etc/httpd/cert
chmod 700 /etc/httpd/cert
chmod 600 /etc/httpd/cert/*
#修改ssl.conf配置文件,修改第60、100、107行,修改为域名和正确的证书文件路径即可
vi /etc/httpd/conf.d/ssl.conf
vi /var/www/html/conf/production/config-itop.php
# 如果安装的时候写的IP地址,后面要变更为域名,请在此修改
vi /etc/httpd/conf/httpd.conf
#配置http强制跳转至https,完成以以上步骤如果不强制跳转,则HTTP和HTTPS都可以访问
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
配置完成需要重启httpd服务:
systemctl restart httpd
11、去掉左下角的combodo广告logo
vi /var/www/html/application/itopwebpage.class.inc.php
#注释掉1083和1084行,即可
vi /var/www/html/core/config.class.inc.php
# 修改第113和349行,添加自己想要的链接,或者直接注释掉
vi /var/www/html/conf/production/config-itop.php
#修改第172和173行,添加在线帮助的链接,默认的https://www.combodo/itop网页无法打开
12、性能优化:
12.1、修改php文件大小限制
vi /etc/php.ini
;找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为:
max_execution_time = 1200
;找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为:
max_input_time = 2400
;找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为:
memory_limit = 512M
;找到:post_max_size = 8M,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范 围包括表单 提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为:
post_max_size = 100M
;找到:upload_max_filesize = 2M,上载文件的最大许可大小 ,请根据业务需要自行修改,我这里修改为:
upload_max_filesize = 25M
12.2.修改apache上传文件大小限制
vi /etc/httpd/conf.d/php.conf
# LimitRequestBody 524288将524288(=512x1024)改大,比如30M(=30x1024x1024)(如果没有,可以添加到配置文件末尾)
LimitRequestBody 31457280
13、常用维护处理:
13.1 清空缓存 rm -rf /var/www/html/data/cache-production/*
13.2 汉化包文件路径:/var/www/html/env-production/dictionaries/zh-cn.dict.php
13.3 角色用户描述翻译 :修改数据库的priv_urp_profiles表:
14、与zabbix集成,实现接入zabbix的报警邮件,自动创建服务单:
14.1 插件安装:
方法1:离线安装:
cd /var/www/html/extensions
wget https://store.itophub.io/serve-uploaded-file/120 /v
http://ip/setup #根据向导一路下一步,到插件选择界面,选择插件再一路点一步即可。
方法2:在线安装(需要有itop hub账号):
https://store.itophub.io/en_US/
14.2. 插件配置:
这是设置好的,按照这个设置即可,
需要特别说明的地方:
(1)这里的邮件password是163邮箱申请的POP/IMAP的授权码,不能填你登录网页邮箱的密码。
(2)这里的邮箱地址要和admin的用户的邮箱地址一致。
(3)用户发邮件过来的邮箱地址,必须要是在ITOP用户配置里面存在的邮箱,我这里设置的不存在就丢掉,你也可以设置成创建账号,但不建议这么做。
在此界面收到邮件说明插件链接配置成功
如果邮件收不下来,登录网页邮箱查看你的邮箱里面是否收到了下面这封邮件:
解决办法是:http://config.mail.163.com/settings/imap/[email protected] 把UID=后面的邮件地址修改为你自己的邮箱地址,根据页面提示解除禁止即可。
14.3 脚本及定时任务的创建:
14.3.1 创建运行脚本:
vi /var/www/html/webservices/exce_mail_import.sh
#下面的用户名和密码是在itop系统里面具有管理员权限的账号和密码
php /var/www/html/webservices/cron.php --auth_user=admin --auth_pwd=admin --verbose=1
14.3.2 为脚本添加执行权限(建议此脚本不要用root运行,用apache运行即可。):
chmod +x /var/www/html/webservices/exce_mail_import.sh
chown -R apache:apache /var/www/html/webservices/exce_mail_import.sh
14.3.3 创建计划任务,我这里是每5分钟执行一次收邮件的运作,如果你对crontab不熟,请参考:https://www.cnblogs.com/aminxu/p/5993769.html
crontab -e
*/5 * * * * /var/www/html/webservices/exce_mail_import.sh
14.3.4配置成功后,你将会看到debug信息和已经创建的工单情况:
15、配置邮件通知:
15.1 修改配置文件
vi /var/www/html/conf/production/config-itop.php 添加如下内容:
'email_default_sender_address' => '[email protected]',
'email_transport' => 'SMTP',
'email_transport_smtp.host' => 'smtp.163.com',
'email_transport_smtp.password' => 'XXXXX',
'email_transport_smtp.username' => '[email protected]',
'forgot_password_from' => [email protected]',
15.2 测试邮件配置是否正常:http://IP/setup/email.test.php
15.3 新建操作(这里可以理解为动作,即做什么事情)
这里的发件人地址必须要是 /conf/production/config-itop.php配置文件里面的邮件通知的邮件地址
下面几个参数描述
邮件通知主题:$this->ref$ 这里是在UserRequest表里面的工单号过来,
工单发起人: $this->html(caller_id_friendlyname)$
工单标题: $this->html(title)$
服务请求描述: $this->html(description)$
15.4 新建触发器(这里可以理解为满足什么条件触发动作):
工单状态可以在数据模型里去查询:
发送自动审批邮件的URL字段名称:$approval_link$
发达工单号的URL链接:$this->hyperlink()$
16、修改解决方案代码:
16.1 修改/var/www/html/datamodels/2.x/itop-request-mgmtg下的两个文件:
16.2 第一个文件插入自己想的解决方案代码,
16.3 第二个文件是汉化包,插入第一个文件对应的中文代码(请注意对应关系),如果你的环境还有用到其它语言,也要一并修改。
16.4 toolkit的安装 :
mkdir /var/www/html/env-toolkit
mkdir /var/www/html/toolkit
压缩文件解压后,直接上传至/var/www/html/toolkit
安装完成访问方式:http://172.17.10.233/toolkit/index.php
16.5 修改完成后,要使用 toolkit更新代码、否则不会生效。
17、时间控件不能选择时间:
需要修改网站根目录下application目录下的itopwebpage.class.inc和portalwebpage.class.inc两个文件
搜索
if ($sJSLangShort != '"en"')
改为
if ($sJSLangShort == 'NULL')
修改完成后,清空一下缓存。
18、自动关闭工单:
18.1安装Autoclose Ticket 插件:
18.2 查看配置文件是否有以下配置(默认是7天):前提是工单已标记为已解决
18.3 创建任务和支持脚本,请参考14.3
18.4 检查此服务是否正常,请运行
php /var/www/html/webservices/cron.php --auth_user=admin --auth_pwd=admin --verbose=1