OTRS - 迁

OTRS基础

安装

环境准备

RHEL6.8

Apache/2.2.15 (Unix)

perl
v5.10.1

otrs 5.0.x 
下载最新的源代码 git clone https://github.com/OTRS/otrs

<VirtualHost *:8222>
ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlModule Apache2::RequestRec
ErrorLog logs/otrs-error.log
<Location /otrs>
#   ErrorDocument 403 /otrs/customer.pl
    ErrorDocument 403 /otrs/index.pl
    SetHandler  perl-script
    PerlResponseHandler ModPerl::Registry
    Options +ExecCGI
    PerlOptions +ParseHeaders
    PerlOptions +SetupEnv
    Order allow,deny
    Allow from all
</Location>
</VirtualHost>
apache http.conf 配置

 

perl 模块安装

检查缺失的模块

perl /opt/otrs/bin/otrs.CheckModules.pl

使用 cpan 安装

# cpan
cpan[1]> install GD
CPAN: Storable loaded ok (v2.20)
Going to read '/root/.cpan/Metadata'
  Database was generated on Tue, 18 Apr 2017 05:17:02 GMT
CPAN: LWP::UserAgent loaded ok (v5.833)
CPAN: Time::HiRes loaded ok (v1.9721)

最后需要安装的模块

# perl /opt/otrs/bin/otrs.CheckModules.pl
  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v1.58)
  o Archive::Zip.....................ok (v1.59)
  o Crypt::Eksblowfish::Bcrypt.......Not installed! Use: 'yum install 

"perl(Crypt::Eksblowfish::Bcrypt)"' (optional - For strong password hashing.)

  o Crypt::SSLeay....................ok (v0.57)
  o Date::Format.....................ok (v2.24)
  o DBI..............................ok (v1.636)
  o DBD::mysql.......................ok (v4.013)
  o DBD::ODBC........................Not installed! (optional - Required to connect to a MS-SQL database.)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................Not installed! Use: 'yum install "perl(DBD::Pg)"' (optional - Required to connect to a PostgreSQL database.)
  o Digest::SHA......................ok (v5.96)
  o Encode::HanExtra.................ok (v0.23)
  o IO::Socket::SSL..................ok (v2.048)
  o JSON::XS.........................ok (v3.03)
  o List::Util::XS...................ok (v1.47)
  o LWP::UserAgent...................ok (v6.13)
  o Mail::IMAPClient.................ok (v3.39)
    o IO::Socket::SSL................ok (v2.048)
  o ModPerl::Util....................ok (v2.000004)
  o Net::DNS.........................ok (v0.65)
  o Net::LDAP........................ok (v0.40)
  o Template.........................ok (v2.27)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.28)
  o Time::HiRes......................ok (v1.9721)
  o Time::Piece......................ok (v1.15)
  o XML::LibXML......................ok (v1.70)
  o XML::LibXSLT.....................Not installed! Use: 'yum install "perl(XML::LibXSLT)"' (optional - Required for Generic Interface XSLT mapping module.)
  o XML::Parser......................ok (v2.44)
  o YAML::XS.........................ok (v0.64)
View Code

用不到的模块
DBD::ODBC ------sql server 的接口
DBD::Oracle ------oracle 的接口
DBD::Pg ------PostgreSQL 的接口 `

otrs 安装

1. 首先创建一个用来运行 OTRS cron 计划任务的帐号 otrs,以 / opt/otrs 作为主目录。

useradd -d /opt/otrs/ -c 'OTRS user' otrs

2. 将 OTRS 安装在 /opt 目录里。

cd /opt
使用git clone就可以

3. 用户将被加入 apache 用户组中,

usermod -G apache otrs

4 配置文件

     shell> cd /opt/otrs/
     shell> cp Kernel/Config.pm.dist Kernel/Config.pm
     shell> cp Kernel/Config/GenericAgent.pm.dist Kernel/Config/GenericAgent.pm

5 检查所有必需的模块是否被安装:

shell> perl -cw /opt/otrs/bin/cgi-bin/index.
      /opt/otrs/bin/cgi-bin/index.pl syntax OK
shell> perl -cw /opt/otrs/bin/cgi-bin/customer.pl
      /opt/otrs/bin/cgi-bin/customer.pl syntax OK
shell> perl -cw /opt/otrs/bin/otrs.PostMaster.pl
      /opt/otrs/bin/otrs.PostMaster.pl syntax OK
"syntax OK" 
tells you all mandatory perl modules are installed.

6 配置目录的权限,使 web 服务器用户和 OTRS 用户对目录都有权限。

cd /opt/otrs
bin/otrs.SetPermissions.pl --otrs-user=otrs --web-user=apache --otrs-group=apache --web-group=apache /opt/otrs

 

7 启动 http
然后进入安装页面 http://ip/otrs/install.pl

8 由于 otrs 需要用到邮件,所以先要配置 sendmail

# yum install sendmail
# yum install sendmail-cf
# chkconfig sendmail on

# cd /etc/mail

#vi sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=**0.0.0.0**, Name=MTA')dnl

#m4 sendmail.mc sendmail.cf
# service sendmail restart

测试
 # mail -s 54678 a30402104@126.com
Fdaffadfdfa
Ctrl+D

安装完毕后,在 系统管理 - 系统配置 - 选择 FRAMEWORK- core sendmail 

 

9 安装过程的问题和优化

  mysql 限制上传文件大小,修改 / etc/my.cnf 配置文件后解决。

 

[mysqld]
max_allowed_packet = 32M

 

 

mysql.sock 的路径不正确,在 http://ip/otrs/installer.pl 执行安装过程当中 otrs 默认读取 mysql.sock 的路径是 / var/lib/mysql/mysql.sock,但是 my.cnf 配置文件指定的 mysql.sock 路径是 / tmp/mysql.sock

    • 守护进程
      5 版本的 otrs 有自己的守护进程,并且要求不能以 root 用户启动

    • 利用 nginx 做一次转发
      使用 apache 设置虚拟主机不太友好,并且此服务器有多个用途,所以利用 nginx rewrite 一次

server {
    listen       80;
    server_name  otrs.ops.net; 
    root /opt/otrs; # 根目录为web
    index index.php;

    # allow 192.168.0.0/24;
    # deny all;

    location ~ / {
         if ( $request_uri = "/" ) {
            rewrite "/" $uri/otrs/index.pl break;
                }
         proxy_pass http://127.0.0.1:8222;
        }

}

 

 

CMDB

安装

ITSM-5.0.19.opm
5.0.1 使用 chrome 可能有个坑:无法提交表单

 

使用 "软件包管理" 选择 "安装软件包" 就可以自动安装了

出现 ITSM 则安装成功

配置

cmdb 最重要的就是 CI 功能,在 "工单设置" 中最常用的是 "目录","配置项"

    • 配置项
      用来区分设备类型,可以在 ITSM::CONFIGITEM::CLASS 中配置

 

目录
用来管理配置项中的字段 type 类型

 

 

更多配置请参考 CMDB 在线学习

 

 

FAQ

开启 FAQ 功能

在 系统管理 - 服务人员 <-> 组 设置 FAQ 权限,用以 FAQ 的操作权限

设置类别

业务 - 运维 - 数据库

创建

 

修改 faq 的 view 字段名称

编辑FAQ → Core::Item中的配置设置

根据不通需求来改显示的名称,替代之前的 solution 等等,效果如下:

 

 

故障处理

[Wed Jun 21 17:34:03 2017] [error] Attempt to reload /opt/otrs/Kernel/Config/Files/ZZZAAuto.pm aborted.\nCompilation failed in require at /opt/otrs//Kernel/Config/Defaults.pm line 1940.\n

可能是由于数据库不能写入造成(磁盘100%)
处理方法就是,注销 /opt/otrs//Kernel/Config/Defaults.pm 中的部分代码
当然,还会继续报错,再把它取消注释就可以了

:1940           ## no critic
                #if ( $Require ) {
                #    if (! require $File ) {
                #        die "ERROR: $!\n";
                #    }
                #}
                #else {
                #    if (! do $File ) {
                #        die "ERROR: $!\n";
                #    }
                #}
                ## use critic
posted @ 2017-11-08 14:34  richardzgt  阅读(1976)  评论(0编辑  收藏  举报