CentOS 5.5에 OCS Inventory NG Server 2 설치 방법
소개
OCS Inventory는 네트워크의 자산(하드웨어, 소프트웨어 등)을 자동으로 수집하는 오픈소스 도구입니다. OCS NG Server는 통신 서버(Communication Server), 배포 서버(Deployment Server), 그리고 관리 콘솔(Admin Console)으로 구성됩니다. 각 관리 대상 컴퓨터에는 에이전트가 설치되어야 하며, 에이전트가 서버로 데이터를 전송합니다.
이 문서는 CentOS 5.5 (64비트)를 기준으로 작성했습니다. Fedora나 Red Hat 계열에서도 유사하게 적용됩니다.
중요: 이 가이드는 OCS Inventory NG Server 2의 특정 릴리스(예: 2.0rc1)를 기준으로 설명합니다. 최신 버전 사용을 권장하며, 버전 차이에 따른 설정 차이를 확인하세요.
사전 준비(요약)
- 루트 또는 sudo 권한이 있는 계정
- 인터넷 연결
- CentOS 5.5 64비트 설치
- 방화벽/SELinux 정책 검토
1. 일부 필수 구성 요소 설치
MySQL 서버 설치
시스템에 MySQL이 설치되어 있지 않다면 다음을 실행합니다:
yum install mysql-server php-mysql php-pecl-zip php-gd
MySQL 시작 및 부팅시 자동 시작 설정:
/etc/init.d/mysqld start
chkconfig --level 35 mysqld on
루트 암호 설정(예시):
/usr/bin/mysqladmin -u root password 'secret'
참고: 실제 환경에서는 강력한 암호로 변경하세요.
Apache 시작
OCS는 Apache를 사용합니다. Apache를 시작하고 자동 시작을 설정합니다:
/etc/init.d/httpd start
chkconfig --level 35 httpd on
패키지 설치 및 EPEL 저장소 추가
EPEL 저장소 추가:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
필요한 Perl 및 모듈 패키지 설치:
yum install -y perl-XML-Simple perl-Compress-Zlib perl-DBI perl-DBD-MySQL perl-Net-IP perl-XML-Entities perl-Apache-DBI perl-Apache2-SOAP perl-SOAP-Lite mod_perl
PHP 구성
다음 파일을 편집하여 업로드 및 POST 제한을 늘립니다:
vi /etc/php.ini
변경할 항목:
post_max_size = 200M
upload_max_filesize = 200M
변경 후 Apache 재시작:
/etc/init.d/httpd restart
중요: php.ini 변경은 서버의 메모리/디스크 여건을 고려해 조절하세요.
2. OCS Inventory NG Server 2 설치
먼저 소스 tarball을 내려받고 설치 스크립트를 실행합니다. 예시에서는 2.0rc1을 사용합니다.
mkdir /download
cd /download
wget http://launchpad.net/ocsinventory-server/stable-2.0/2.0rc1/+download/OCSNG_UNIX_SERVER-2.0rc1.tar.gz
설치 시작:
tar -zxvf OCSNG_UNIX_SERVER-2.0rc1.tar.gz
cd /download/OCSNG_UNIX_SERVER-2.0rc1
sh setup.sh
설치 스크립트는 대화형이며 대부분 기본값을 사용하면 됩니다. 예시 질문과 답변(요약):
- 계속 진행하시겠습니까? ([y]/n) -> y
- 데이터베이스 호스트: [localhost] -> localhost
- 포트: [3306] -> 3306
- Apache 바이너리 위치: [/usr/sbin/httpd]
- Apache 설정 파일: [/etc/httpd/conf/httpd.conf]
- Apache 사용자 및 그룹: [apache]
- Perl 바이너리: [/usr/bin/perl]
- 통신 서버 설치 여부: ([y]/n)? y
- 로그 디렉터리 위치: [/var/log/ocsinventory-server]
- Apache 설정 파일 이름을 ‘z-ocsinventory-server.conf’로 변경할지 여부: ([y]/n) -> y (모듈 로딩 순서 위해)
- 관리 콘솔 설치 여부: ([y]/n)? y
- 정적 파일 복사 위치: [/usr/share/ocsinventory-reports]
- 쓰기/캐시 디렉터리: [/var/lib/ocsinventory-reports]
설치 중 스크립트는 운영체제 패키지 관리자(apt/rpm)를 사용해 Perl 모듈을 설치할지 묻습니다. 기본값을 사용해도 무방합니다.
참고: 업그레이드 중이라면 기존 Apache 문서 루트에 있는 ‘ocsreports’와 ‘download’ 디렉터리를 삭제하거나 이동해야 합니다. 배포 기능 사용 시 ‘download’ 디렉터리는 관리 콘솔의 쓰기 가능한 캐시 디렉터리로 옮겨야 합니다.
3. OCS Inventory NG Server 2 구성
MySQL 데이터베이스 생성
MySQL 셸을 열고 데이터베이스/계정 생성:
mysql -u root -p"secret"
MySQL 내부에서:
CREATE DATABASE ocsweb;
GRANT ALL ON ocsweb.* to 'ocs'@'localhost' identified by 'ocs';
원하면 데이터베이스 이름, 사용자, 비밀번호는 변경 가능합니다. 위는 기본 예시입니다.
웹 콘솔 접속
설치가 완료되면 브라우저로 관리 콘솔에 접속합니다:
기본 로그인: 사용자 “admin”, 비밀번호 “admin” (접속 후 즉시 비밀번호 변경 권장)
설치 스크립트 제거:
rm -f /usr/share/ocsinventory-reports/ocsreports/install.php
이제 에이전트를 네트워크의 각 호스트에 설치하고 서버 IP를 가리키게 설정하세요.
참고 문서: OCS 위키를 확인하세요: http://wiki.ocsinventory-ng.org/index.php/Documentation:Main
운영 환경으로 옮기기 전 체크리스트
- MySQL root 암호가 안전한지 확인
- ocs 데이터베이스와 계정 권한 확인
- Apache와 PHP의 보안 설정(Directory 권한, mod_security 등) 검토
- 방화벽에서 포트 80(또는 443)과 필요한 포트 허용
- 로그 로테이션 및 디스크 모니터링 설정
- 에이전트 배포 계획(스케줄, 그룹) 수립
역할별 체크리스트
시스템 관리자:
- 백업/복원 절차 문서화
- 서비스 모니터링(HTTP, MySQL, OCS 프로세스)
네트워크 관리자:
- 에이전트 통신 경로 및 방화벽 규칙 확인
- 프록시가 있는 경우 에이전트 통신 예외 지정
보안 담당자:
- HTTPS 적용(SSL 인증서 설치)
- 관리 콘솔 접근 제어(IP 제한, 2단계 인증 고려)
보안 하드닝 권장사항
- Apache에서 기본 디렉터리 목록(Directory Listing) 비활성화
- 관리 콘솔에 HTTPS 적용 (mod_ssl + 유효한 인증서)
- 관리 계정 기본 비밀번호 변경 및 주기적 교체
- 데이터베이스 접근은 로컬 호스트로 제한
- 불필요한 서비스 비활성화 및 최신 보안 패치 적용
중요: CentOS 5.5는 오래된 배포판입니다. 보안 및 지원 측면에서 가능한 최신 LTS 또는 지원되는 배포판으로 마이그레이션을 권장합니다.
문제 해결: 빈번한 증상 및 해결책
증상: 웹 콘솔이 로드되지 않음
- 확인: httpd 서비스 상태 (/etc/init.d/httpd status), 방화벽 규칙
- 에러 로그: /var/log/httpd/error_log 확인
증상: 에이전트가 서버에 등록되지 않음
- 확인: 에이전트의 설정 파일에 서버 URL/IP가 올바른지 확인
- 네트워크 연결 테스트: telnet server-ip 80 또는 curl
증상: 데이터베이스 연결 오류
- 확인: MySQL 서버 실행 여부, 사용자 권한, 비밀번호
- MySQL 로그 및 ocs 로그(/var/log/ocsinventory-server) 확인
언제 설치가 실패하는가(예외 사례)
- 시스템에 필요한 Perl 모듈이 없는 경우(수동 설치 필요)
- PHP 메모리/업로드 제한이 낮게 설정된 경우 큰 패키지 업로드 실패
- SELinux/enforcing 모드에서 파일 권한 문제로 Apache가 파일에 접근하지 못함
- CentOS/RHEL 버전 차이로 패키지 이름이나 경로가 다른 경우
해결: 위 사안에 맞춰 패키지 설치, php.ini 조정, SELinux 정책 수정 또는 일시적 비활성화 후 테스트.
대안적 접근법
- 패키지 매니저(rpm/epel)에서 제공하는 OCS 패키지 사용(존재하는 경우)
- 더 최신 OS에서 설치하거나 컨테이너(Docker)로 분리 배포
- 상용 자산관리 솔루션 고려(규모/보안 요구사항에 따라)
배포 방법(간단 SOP)
- 테스트 환경에서 전체 설치 절차 검증
- 데이터베이스 및 백업 전략 수립
- 에이전트 그룹을 나눠 단계별 배포(파일럿 → 소규모 → 전체)
- 운영 모니터링 및 로그 수집 설정
- 정기 점검 및 보안 패치 정책 적용
수용 기준
- 웹 콘솔에 관리자 계정으로 로그인 가능
- 에이전트가 샘플 호스트 10대 이상에서 정상적으로 등록 및 보고
- 배포(Deploy) 기능을 통해 작은 패키지 설치 성공
- 백업 및 복원 절차 문서화 및 복원 테스트 수행
간단한 의사결정 흐름(설치/비설치)
flowchart TD
A[서버 준비 여부 확인] --> B{운영체제 버전 최신화 필요?}
B -- 예 --> C[OS 업그레이드 권장]
B -- 아니오 --> D[의존 패키지 설치]
D --> E{퍼미션/SELinux 문제?}
E -- 예 --> F[SELinux 정책 검토]
E -- 아니오 --> G[setup.sh 실행]
G --> H[데이터베이스 구성 및 웹 콘솔 확인]
마이그레이션 팁 (1.x → 2.x)
- 이전 버전에서 Apache 문서 루트에 남아 있는 ‘ocsreports’와 ‘download’ 디렉터리는 삭제하거나 이동하세요.
- 배포(Deployment) 기능을 사용한다면 ‘download’ 디렉터리가 새 캐시 디렉터리에 위치해야 합니다.
- 데이터베이스 스키마 변경이 필요한 경우 공식 마이그레이션 절차를 따르세요.
주요 정보(팩트 박스)
- 기본 데이터베이스 포트: 3306
- 기본 Apache 사용자/그룹: apache
- 기본 관리 콘솔 경로: /usr/share/ocsinventory-reports
- 기본 웹 경로: http://server-ip/ocsreports/
짧은 발표(100–200자)
CentOS 5.5에 OCS Inventory NG Server 2를 설치하면 네트워크 자산을 중앙에서 수집하고 관리할 수 있습니다. MySQL, Apache, PHP 구성을 완료한 뒤 제공된 설치 스크립트를 실행하고 데이터베이스를 생성하면 관리 콘솔을 통해 자산을 모니터링할 수 있습니다.
요약 및 다음 단계
- 기본 설치: MySQL, Apache, 필수 패키지 설치 → setup.sh 실행 → 데이터베이스 생성 → 관리 콘솔 접속
- 보안: HTTPS 적용, 강한 DB 암호, 접근 제어
- 운영: 백업, 로그 모니터링, 단계적 에이전트 배포
추가 자료: OCS 위키 문서(영문) — http://wiki.ocsinventory-ng.org/index.php/Documentation:Main
중요: CentOS 5.5는 오래된 버전이므로 가능한 최신 운영체제로 이전하는 것을 권장합니다.