개요
OTRS(Open-source Trouble Ticket System)는 고객 지원, 헬프데스크, 콜센터 운영을 개선하기 위해 널리 사용되는 오픈소스 티켓 관리 시스템입니다. OTRS는 Perl로 작성되었고 다음과 같은 주요 기능을 제공합니다:
- 고객은 포털, 이메일, 전화, 팩스 등을 통해 티켓을 생성하고 상호작용할 수 있습니다. 큐별로 담당자(Attendants/Technicians)에게 할당됩니다.
- 티켓은 우선순위, 할당, 전송, 후속조치로 관리됩니다. 티켓 분할, 병합, 일괄 처리, 상호 연결 및 알림 설정이 가능합니다. 서비스 카탈로그를 통해 서비스 구성도 가능합니다.
- 자동 회신 이메일, 텍스트 템플릿, 서명 설정으로 팀의 생산성을 높일 수 있습니다. 티켓에 노트와 첨부파일을 지원합니다.
- 통계 및 보고(CSV/PDF), SLA 등 운영에 필요한 다양한 기능을 제공합니다.
중요 용어 한 줄 정의:
- 티켓: 고객 요청을 추적하는 단위입니다.
- 큐: 비슷한 유형의 티켓을 모아 처리하는 논리적 그룹입니다.
사전 준비 및 환경
이 문서는 다음 환경을 기준으로 작성되었습니다:
- 가상 머신: VirtualBox
- 운영체제: CentOS 7 Minimal
- 메모리: 2GB
- 디스크: 8GB
- 네트워크: host-only 및 NAT 2개 인터페이스
사전 요구사항 요약:
- 루트 또는 sudo 권한
- 인터넷 연결 (패키지 다운로드 및 저장소 접근)
- 적절한 호스트명 및 DNS/호스트 파일 설정
중요: 운영 환경에서는 SELinux를 완전히 비활성화하는 대신, 정책을 조정하여 최소 권한으로 운영하는 것을 권장합니다. 이 가이드는 설치 편의를 위해 비활성화를 안내합니다.
준비 단계: 시스템 업데이트 및 기본 패키지
새로운 CentOS 7 Minimal 설치라면 먼저 시스템을 업데이트하고 필요한 패키지를 설치하세요.
yum update
업데이트 예시 출력(대화형 확인 필요):
Transaction Summary ================================================================================
Install 1 Package Upgrade 39 Packages Total download size: 91 M Is this ok [y/d/N]: y
편집기 설치(VIM 예시):
yum install -y vim
wget 설치:
yum install -y wget
네트워크 설정 편집(NMTUI):
nmtui
네트워크 변경 적용:
service networks restart
네트워크 정보 확인:
ip addr
예시 출력(개인 시스템에 따라 다름):
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:67:bc:73 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 84631sec preferred_lft 84631sec
inet6 fe80::9e25:c982:1091:90eb/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:68:88:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s8
valid_lft 1044sec preferred_lft 1044sec
inet6 fe80::a00:27ff:fe68:88f3/64 scope link
valid_lft forever preferred_lft forever
SELinux 설정
설치 편의를 위해 SELinux를 비활성화하려면 다음 파일을 편집합니다:
vim /etc/selinux/config
파일 내용 중 SELINUX 값을 “disabled”로 변경한 뒤 서버를 재부팅하세요.
SELinux 상태 확인:
getenforce
출력 예시:
Disabled
중요: 운영 환경에서는 SELinux 비활성화 대신 필요한 포트와 정책을 허용하는 것을 권장합니다.
MariaDB 설치 및 초기 보안 설정
MariaDB 설치:
yum -y install mariadb-server
MySQL 설정 파일 추가: /etc/my.cnf.d/zotrs.cnf 를 생성하고 다음을 입력합니다:
max_allowed_packet = 20M
query_cache_size = 32M
innodb_log_file_size = 256M
서비스 시작:
systemctl start mariadb
초기 보안 스크립트 실행:
/usr/bin/mysql_secure_installation
프롬프트에 따라 루트 암호 설정, 익명 계정 제거, 원격 root 비허용, 테스트 DB 제거, 권한 재로딩 등을 수행하세요.
부팅 시 자동 시작 설정:
systemctl enable mariadb.service
데이터베이스 및 계정 생성(설치 중 웹 인스톨러가 자동으로 생성하지만 수동으로 생성하려면):
CREATE DATABASE otrs CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'otrs'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON otrs.* TO 'otrs'@'localhost';
FLUSH PRIVILEGES;
보안 팁: 비밀번호는 운영 환경에 맞는 강력한 값으로 대체하세요. 외부 접근이 필요한 경우 방화벽 규칙과 SSL/TLS를 적용하세요.
OTRS 다운로드 및 EPEL 저장소 설치
OTRS 패키지 다운로드(예시):
wget http://ftp.otrs.org/pub/otrs/RPMS/rhel/7/otrs-5.0.15-01.noarch.rpm
EPEL 설치(예시 미러 사용):
yum -y install http://mirror.globo.com/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
OTRS 설치
OTRS 설치 명령:
yum install -nogpgcheck otrs-5.0.15-01.noarch.rpm
의존성 패키지(예: Apache 등)가 자동으로 설치됩니다. 설치 중 Y를 눌러 진행하세요.
Apache 시작 및 부팅 시 활성화:
systemctl start httpd.service
systemctl enable httpd.service
Apache SSL 설정(자체 서명 인증서)
mod_ssl 설치:
yum -y install mod_ssl
인증서 작업 디렉터리로 이동:
cd /etc/pki/tls/certs/
개인키 생성(예시 파일명 centos7.key):
make centos7.key
개인키 암호 제거 및 PEM 변환:
openssl rsa -in centos7.key -out centos7.key
CSR 생성:
make centos7.csr
질문에 따라 주체(Subject) 정보를 입력하세요. 테스트용이며, 운영에서는 CA에서 발급받은 인증서를 사용하는 것이 권장됩니다.
자체 서명 인증서 생성:
openssl x509 -in centos7.csr -out centos7.crt -req -signkey centos7.key
원본 ssl.conf 백업 및 편집:
cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.old
vim /etc/httpd/conf.d/ssl.conf
다음 항목을 적절히 변경합니다:
SSLCertificateKeyFile /etc/pki/tls/certs/centos7.key
SSLCertificateFile /etc/pki/tls/certs/centos7.csr
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
ServerName centos7.local:443
참고: 운영에서는 TLS 1.2 이상을 권장합니다. TLSv1 및 TLSv1.1은 취약점이 알려져 있으므로 가능하면 비활성화하세요.
Apache 재시작:
systemctl restart httpd
HTTP 요청을 HTTPS로 강제 리다이렉트하려면 zzz_otrs.conf에 Rewrite 규칙을 추가합니다:
vim /etc/httpd/conf.d/zzz_otrs.conf
추가할 내용:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
그리고 Apache 재시작:
systemctl restart httpd
필수 Perl 모듈 설치 및 확인
OTRS의 확장 기능을 사용하려면 여러 Perl 모듈이 필요합니다. 예시 설치 명령:
yum -y install "perl(Text::CSV_XS)" "perl(Crypt::Eksblowfish::Bcrypt)" "perl(YAML::XS)" "perl(JSON::XS)" "perl(Encode::HanExtra)" "perl(Mail::IMAPClient)" "perl(ModPerl::Util)"
OTRS 제공 모듈 검사 도구 실행:
cd /opt/otrs/bin
./otrs.CheckModules.pl
출력 예시(설치된 모듈 목록과 상태 표시). 필요한 모듈이 빠져 있으면 yum으로 추가 설치하세요.
OTRS 데몬 시작 및 크론 설정
OTRS 데몬을 otrs 사용자로 시작:
su -c "/opt/otrs/bin/otrs.Daemon.pl start" -s /bin/bash otrs
CentOS 방화벽 비활성화(테스트용):
systemctl stop firewalld
systemctl disable firewalld.service
운영 환경에서는 특정 포트(80, 443, 3306 등)만 허용하는 방화벽 규칙을 구성하세요.
OTRS 크론잡 시작 예시:
su -c "/opt/otrs/bin/otrs.Daemon.pl start" -s /bin/bash otrsCron.sh
크론에 OTRS 등록(otrs 사용자로 변경 후):
su otrs
crontab -e
예시 crontab 내용(메일 수신 및 데몬 상태 확인):
# Who gets the cron emails?
MAILTO="root@localhost"
# check OTRS daemon status
*/5 * * * * $HOME/bin/otrs.Daemon.pl start >> /dev/null
웹 설치 마무리: OTRS 인스톨러 사용
웹 브라우저에서 다음 URL을 엽니다(호스트명 또는 IP 사용):
https://centos7.local/otrs/installer.pl
첫 화면에서 설치 단계(4단계)를 따라 진행합니다. 데이터베이스는 MySQL(MariaDB)을 선택하고 “Create a new database for OTRS” 옵션으로 진행하면 설치 프로그램이 데이터베이스를 생성합니다.
라이선스 동의 화면에서 라이선스를 읽고 수락하세요.
데이터베이스 설정 화면에서 MariaDB 사용자명, 비밀번호, 호스트를 입력하고 설정 확인을 클릭합니다.
설치 프로그램이 데이터베이스를 생성하면 다음과 같은 진행 화면을 볼 수 있습니다.
생성 완료 화면 예시:
시스템 설정, 관리자 계정 및 이메일 설정을 완료합니다. 이메일 아웃바운드(예: SMTPS/TLS 포트 587)와 인바운드(POP3/IMAP) 설정은 실제 메일서버 환경에 맞춰 구성하세요.
설치가 끝나면 관리자 계정 정보가 제공됩니다. 로그인 후 즉시 비밀번호를 변경하세요.
로그인 페이지 예시:
https://centos7.local/otrs/index.pl
OTRS가 설치되었으며, 이후 비즈니스 규칙과 워크플로우에 따라 세부 설정을 진행하세요.
운영 전 점검 체크리스트
- SELinux 및 방화벽 설정이 정책에 맞게 구성되었는가?
- MariaDB 백업 스케줄과 모니터링이 설정되었는가?
- 웹서버 SSL이 유효하고, 강력한 프로토콜만 허용되는가?
- OTRS 데몬 및 cron 작업이 정상 동작하는가?
- 시스템 사용자 권한이 최소 권한 원칙을 따르는가?
- 이메일 송수신 테스트(인바운드/아웃바운드)가 성공하는가?
역할별 빠른 체크리스트:
- 시스템 관리자: 방화벽, SELinux, 패키지 업데이트, 백업 정책
- 데이터베이스 관리자: MariaDB 성능 파라미터, 백업, 사용자 권한
- 애플리케이션 관리자: OTRS 업그레이드 계획, 템플릿/트리거 점검
배포 및 롤아웃 미니 방법론
- 테스트 환경 구축: 별도의 VM에 동일한 설정으로 설치하고 기능검증
- 데이터 마이그레이션(있는 경우): 기존 티켓/사용자 데이터의 샘플 이관 테스트
- 사용자 수용 테스트(UAT): 대표 사용자 그룹으로 시나리오 테스트
- 프로덕션 롤아웃: 유지보수 창에 배포, 모니터링 강화
- 사후 점검: 초기 48시간 주요 지표(이메일 처리율, 응답시간) 확인
간단한 의사결정 흐름(Mermaid)
flowchart TD
A[설치 시작] --> B{테스트 환경 필요?}
B -- 예 --> C[테스트 VM에 설치]
B -- 아니오 --> D[프로덕션에 설치]
C --> E{테스트 성공?}
E -- 예 --> D
E -- 아니오 --> F[문제 수정 및 반복]
D --> G[운영 점검 및 모니터링]
일반적인 문제와 해결책
Apache가 시작되지 않음
- 원인: 포트 충돌, SSL 설정 오류, 파일 권한 문제
- 조치: journalctl -xe 및 /var/log/httpd/error_log 확인, ssl.conf의 경로/파일 권한 점검
MariaDB 연결 오류
- 원인: 잘못된 사용자/비밀번호, 호스트 접근 권한
- 조치: MySQL 로그(/var/log/mysqld.log) 확인, 사용자 호스트 설정 확인
Perl 모듈 누락
- 원인: 의존성 미설치
- 조치: ./otrs.CheckModules.pl 출력 확인 후 yum으로 개별 모듈 설치
웹 인스톨러에서 데이터베이스 생성 실패
- 원인: 권한 부족 또는 잘못된 접속 정보
- 조치: MariaDB에서 수동으로 데이터베이스와 사용자 생성 후 다시 시도
보안 권고
- 운영 환경에서는 SELinux를 가능한 활성화 상태로 운영하고, 필요한 정책만 허용하세요.
- SSL 인증서는 공인 CA에서 발급받아 사용하세요. 자체 서명 인증서는 테스트 전용으로 한정하세요.
- MariaDB 네트워크 접근은 내부 네트워크로 제한하고, 외부 접근이 필요한 경우 VPN이나 방화벽으로 보호하세요.
- 정기적인 패치와 취약점 스캔을 실시하세요.
개인정보 및 규정 준수 노트
OTRS에 고객 개인정보(이름, 이메일, 통화 내용 등)를 저장하는 경우 다음을 고려하세요:
- 최소한의 데이터만 수집하고 저장하세요.
- 로그 보존 기간을 정책에 따라 설정하고 만료된 데이터는 안전하게 삭제하세요.
- 접근 권한은 역할 기반으로 제한하세요.
- GDPR/개인정보보호법 적용 지역에서는 사용자 동의 및 데이터 주체 권리(열람·삭제)를 보장하세요.
테스트 케이스 예시(간단)
- 로그인: 관리자 계정으로 로그인 가능
- 이메일 송수신: 인바운드 티켓 생성, 아웃바운드 응답 전송 확인
- 티켓 워크플로우: 티켓 생성→할당→해결→종결까지 상태 전환
- 백업 복원: DB 백업 생성 후 복원 테스트
수용 기준
- 설치 후 웹 UI 접근 가능
- 관리자 계정으로 로그인 성공
- 이메일 송수신이 정상 동작
- ot r s 데몬과 cron이 정상 실행
주요 숫자 요약 팩트 박스
- 권장 메모리(최소): 2GB (소규모 테스트)
- 권장 디스크: 최소 20GB 이상(로그/첨부파일 고려)
- OTRS 버전: 5.x (이 가이드 기준)
- 권장 TLS: 1.2 이상
1줄 용어집
- OTRS: 오픈소스 티켓 관리 시스템
- SLA: 서비스 수준 계약
- CSR: 인증서 서명 요청
설치 SOP 핵심 단계(요약)
- 시스템 업데이트 및 기본 도구 설치
- 네트워크 및 호스트명 설정
- SELinux 및 방화벽 정책 검토
- MariaDB 설치 및 보안 설정
- OTRS 패키지 설치 및 Apache 구성
- SSL 인증서 생성 또는 배포
- Perl 모듈 설치 및 체크
- OTRS 데몬 및 cron 설정
- 웹 설치 마법사로 마무리
- 운영 전 점검 및 모니터링 설정
마이그레이션/호환성 노트
- OTRS 5는 Perl 기반으로 향후 업그레이드 시 호환성 검토가 필요합니다. 기존 티켓 데이터를 다른 시스템으로 이전하려면 CSV/XML 추출 및 매핑 계획을 세우세요.
요약
이 가이드는 CentOS 7 환경에 OTRS 5를 설치하고 운영할 때 필요한 전체 흐름과 운영 전 점검, 보안 권고, 문제 해결 팁을 제공합니다. 테스트 환경에서 충분히 검증한 뒤 프로덕션에 배포하고, 보안·백업 정책을 반드시 수립하세요.
Important: 운영 환경에서는 테스트용 설정(SELinux 비활성화, 방화벽 전체 비활성화, 자체 서명 인증서 사용)을 그대로 두지 마십시오. 프로덕션에서는 최소 권한 원칙과 인증서 관리를 준수하세요.
끝으로, 설치 후 기본 동작을 확인하면 OTRS를 조직의 지원 프로세스에 맞춰 세부적으로 튜닝하세요.