ちょっと話題の記事

【OTRS】オープンソース ヘルプデスクシステム「OTRS」を試す

2014.05.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは植木和樹です。本日はオープンソースのヘルプデスクシステムOTRS(Open Ticket Request System)のご紹介と、Amazon Linuxへのインストール手順です。

ヘルプデスクシステムという言葉は聞きなれないかもしれません。しかし保守・運用業務をする上でかかせないシステムとなります。

例えばお客様からの問い合わせや作業依頼などをメールやExcel(!)でやりとりしているとします。顧客数や保守運用担当者の人数が少ないのであれば、それでもまわるのですが数が増えてくると早々に破綻します。メールの見落とし、ステータス管理(未回答、対応中、回答待ち等)、場合によっては運用担当者ではどうにもならずバックエンドのエンジニアへエスカレーション(救援要請)する必要もあり、そちらのステータス管理も必要になります。

RedmineやBacklogのようなチケット管理システムを使ってもできるのですが、これらはプロジェクト単位での管理がメインであり、複数のお客様を横断的にチケット管理する(複数のお客様へ単一窓口を提供する)のが少々難しいです。そういう時にこそヘルプデスクシステムというのが役に立ちます。

なおOTRSにはITILでいうインシデント管理や問題管理、変更管理を含めた「OTRS ITSM」というパッケージがあるのですが、ここではインシデント受付業務(サービスデスク)とインシデント管理(発生〜解決)に機能をしぼった「OTRS Help Desk」を取り上げています。

環境

  • Amazon Linux AMI 2014.03.1 - ami-c9562fc8 (64-bit)
  • インスタンスタイプ m1.small
  • セキュリティグループ ssh(tcp/22)と http(tcp/80)を許可
  • OTRS Help Desk 3.3.7
  • Apache 2.2.27 (非mod_perl)
  • MySQL 5.5.37 (character-set utf8)
  • Perl v5.16.3

今回はRDSを使わずEC2ローカルにMySQLをインストールしています。また今回はOTRSをRPMからではなくソース(tar+gz)をダウンロードして手作業でセットアップしています。

OTRSが必要とするパッケージのインストール

OTRSが動くのに必要なパッケージ(Perl、Apache、MySQL)をインストールします。

$ sudo yum install -y perl-ExtUtils-MakeMaker perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-YAML perl-Net-DNS perl-TimeDate perl-YAML-LibYAML perl-version perl-Sys-Syslog perl-Time-Piece perl-IO-Socket-SSL
$ sudo yum install -y httpd 
$ sudo yum install -y mysql mysql-server

OTRS用OSユーザー作成

OTRS用のユーザーを作成します。cronなどのバックグラウンドジョブはこのユーザーで実行されます。

# groupadd otrs
# useradd -M -d /opt/otrs -g otrs otrs
# id otrs
uid=501(otrs) gid=501(otrs) groups=501(otrs)

OTRSのダウンロードとファイルの展開

必要なミドルウェアと、OSユーザーができたのでOTRSをインストールしていきましょう。

OTRSのダウンロードURLはTry OTRSで確認可能です。前述した通り、ソースからインストールしますのでOTRS Help Desk 3.3.7.tar.gzをダウンロードします。

$ wget http://ftp.otrs.org/pub/otrs/otrs-3.3.7.tar.gz
$ sudo -s
# cd /opt
# tar xzf ~ec2-user/otrs-3.3.7.tar.gz
# mv otrs-3.3.7 otrs
# cp -p otrs/Kernel/Config.pm.dist otrs/Kernel/Config.pm

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

MySQL設定

MySQLをローカルホストで起動します。

# vi /etc/my.cnf
[mysqld]
character-set-server=utf8 (← 追加)

# chkconfig mysqld on
# service mysqld start

OTRS用のデータベースを作成します。DBの初期設定は後述のWebインストーラーを使います。DBの作成もWebインストーラーでできるのですが、キャラクタセットを明示的にutf8で作成したいため手作業でcreate dbしています。 otrsデータベースを作成したら接続用ユーザーを作成しパスワードを設定します。

# mysqladmin create --default-character-set=utf8 otrs
# mysql
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> grant all on otrs.* to 'otrs'@'localhost' identified by 'YOURPASSWORD';

crontab設定

パッケージに含まれているテンプレート(*.dist)をコピーして使用します。

# cd /opt/otrs/var/cron
# for foo in *.dist; do cp $foo `basename $foo .dist`; done

otrsユーザーでcrontab設定用シェルを実行しcronのジョブを登録します。

su - otrs
/opt/otrs/bin/Cron.sh start
crontab -l

(crontabが設定されていることを確認します)

Apache設定

OTRSに同梱されている設定ファイルを、Apacheの設定ファイルディレクトリ(/etc/httpd/conf.d)にコピーします。コピーしたらApacheを起動します。

# cp -p /opt/otrs/scripts/apache2-httpd.include.conf /etc/httpd/conf.d/otrs.conf
# chkconfig httpd on
# service httpd start

初期設定

Apacheを起動したらWebインストーラーのページ(サーバーの /otrs/installer.pl)にアクセスします。

  • http://otrs.example.com/otrs/installer.pl

画面の指示に従って初期設定をしていきましょう。

ライセンス条項に同意します。

20140523_otrs_001

データベースタイプは"MySQL"を選択します。データベースは先ほど"otrs"データベースを作成済みなので"Use an existing database for OTRS"を選択します。

20140523_otrs_002

otrsデータベースに作成したDBユーザーとパスワードを入力します。今回はローカルホストで動いている"otrs"データベースを利用するのでホストとDatabase nameはそのままでOKです。入力したら「データベース設定をチェック」をクリックします。

20140523_otrs_003

DBユーザーとパスワードで"otrs"データベースに接続できると成功メッセージが表示されます。表示されたら「次へ」をクリックするとデータベースの初期設定が開始されます(m1.smallだと30秒ほどかかります)。

20140523_otrs_004

データベースの初期設定が完了したメッセージが表示されたら「次へ」。

20140523_otrs_005

システムのホスト名(FQDN)、管理者メールアドレス、組織名を入力します。それ以外はデフォルトでOKです。後からも変更可能です。

20140523_otrs_006

送信/受信メール設定はひとまず空にしてスキップしておきます。

20140523_otrs_007

セットアップが完了すると画面に管理者パスワード(ランダムな文字列)が表示されるのでメモしておきましょう。"スタートページ"のリンクをクリックするとログイン画面が表示されます。

20140523_otrs_008

"ユーザー名"は"root@localhost"、パスワードは前の画面で表示されたランダム文字列を入力しログインします。

20140523_otrs_010

ダッシュボードが表示されれば、ひとまずインストールは完了です。

20140523_otrs_009

初期設定後の作業

ひとまずこれでAmazon LinuxへOTRSはインストールできました。しかし画面をみてもらうと分かる通り赤く警告がでています。"root@localhost"のスーパーユーザーは使わず「担当者」を作成して作業するように注意していますね。

またOTRSはPerlで記述されており、Apacheのmod_perlを使うことで高速化できます。またスケジューラーやメール設定など、実際に利用する上でもう少し設定作業が必要になります。

これらを書くと長くなるので、それぞれ設定作業ごとに別エントリにしたいと思います。