CentOS 8 서버에 Apache Solr 8.7 검색 플랫폼 설치 및 구성하기

Apache Solr 개요

Apache Solr은 Apache Lucene 기반의 고성능 오픈소스 엔터프라이즈 검색 플랫폼입니다. 전문 검색(Full-text search), 패싯 검색, 실시간 인덱싱, 분산 클러스터링 등 다양한 기능을 제공하며, RESTful HTTP/XML 및 JSON API를 통해 대부분의 프로그래밍 언어와 쉽게 연동할 수 있습니다. 이 가이드에서는 CentOS 8 운영체제 환경에 Solr 8.7 버전을 설치하고 서비스로 등록하는 과정을 다룹니다.

시스템 요구 사항 및 환경

  • OS: CentOS 8.2 (64-bit)
  • CPU: 2 Core 이상
  • RAM: 2 GB 이상
  • Storage: 20 GB 이상
  • Hostname: search-node01.example.com
  • IP Address: 10.0.1.50

1. 시스템 패키지 업데이트 및 환경 확인

SSH를 통해 루트 권한으로 서버에 접속한 후, 시스템 패키지를 최신 상태로 유지하기 위해 DNF 패키지 관리자를 사용하여 업데이트를 진행합니다.

[root@search-node01 ~]# hostnamectl set-hostname search-node01.example.com
[root@search-node01 ~]# dnf upgrade -y
...
Complete!

[root@search-node01 ~]# uname -r
4.18.0-193.28.1.el8_2.x86_64
[root@search-node01 ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)

2. Java Development Kit (JDK) 설치

Solr는 Java로 작성되었기 때문에 JDK 8 이상의 환경이 필요합니다. 여기서는 OpenJDK 11을 설치합니다.

[root@search-node01 ~]# dnf install -y java-11-openjdk java-11-openjdk-devel
...
Installed:
  java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64
  java-11-openjdk-devel-1:11.0.9.11-0.el8_2.x86_64
...
Complete!

설치가 완료되면 Java 버전을 확인합니다.

[root@search-node01 ~]# java -version
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

3. Apache Solr 다운로드 및 설치

공식 아카이브에서 Solr 8.7.0 압축 파일을 다운로드하고, 설치 스크립트를 추출하여 서비스를 구성합니다.

[root@search-node01 ~]# cd /opt
[root@search-node01 opt]# wget https://archive.apache.org/dist/lucene/solr/8.7.0/solr-8.7.0.tgz
...
200 OK

[root@search-node01 opt]# tar xzf solr-8.7.0.tgz solr-8.7.0/bin/install_solr_service.sh --strip-components=2

추출된 스크립트를 실행하여 Solr를 설치합니다. 이 과정에서 solr 사용자가 자동으로 생성되며, /opt/solr 디렉토리에 파일이 배치됩니다.

[root@search-node01 opt]# bash install_solr_service.sh solr-8.7.0.tgz
id: ‘solr’: no such user
Creating new user: solr

Extracting solr-8.7.0.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-8.7.0 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...

Service solr installed.
Customize Solr startup configuration in /etc/default/solr.in.sh
Waiting up to 180 seconds to see Solr running on port 8983 [-]  
Started Solr server on port 8983 (pid=12450). Happy searching!

참고: 설치 중 lsof 패키지가 없다는 경고가 발생할 수 있습니다. 이 경우 DNF를 통해 lsof를 설치한 후 서비스를 재시작하면 포트 리스닝 상태를 정상적으로 확인합니다.

[root@search-node01 opt]# dnf install -y lsof

4. 시스템 리소스 제한(Limits) 설정

Solr가 대량의 인덱스와 검색 요청을 안정적으로 처리하려면 파일 설명자(File Descriptor) 및 프로세스 수 제한을 늘려야 합니다.

/etc/security/limits.d/solr.conf 파일을 생성하고 다음 내용을 추가합니다.

[root@search-node01 opt]# vi /etc/security/limits.d/solr.conf
solr   soft   nofile   65535
solr   hard   nofile   65535
solr   soft   nproc    65535
solr   hard   nproc    65535

설정을 적용하기 위해 Solr 서비스를 재시작하고 상태를 확인합니다.

[root@search-node01 opt]# systemctl restart solr
[root@search-node01 opt]# systemctl enable solr
[root@search-node01 opt]# systemctl status solr

5. 방화벽 포트 개방

Solr의 기본 웹 인터페이스 및 API 포트인 8983번을 방화벽(Firewalld)에서 허용합니다.

[root@search-node01 opt]# firewall-cmd --permanent --add-port=8983/tcp
success
[root@search-node01 opt]# firewall-cmd --reload
success

6. 테스트 코어(Core) 생성 및 웹 UI 접속

Solr 명령줄 도구를 사용하여 테스트용 코어를 생성합니다.

[root@search-node01 opt]# su - solr -c "/opt/solr/bin/solr create -c sample_index -n data_driven_schema_configs"

Created new core 'sample_index'

이제 웹 브라우저를 통해 http://10.0.1.50:8983/solr/ 주소로 접속하면 Solr Admin 대시보드를 확인할 수 있습니다. 왼쪽 메뉴의 Core Selector에서 방금 생성한 sample_index를 선택하여 인덱스 상태와 스키마 정보를 점검할 수 있습니다.

태그: CentOS 8 Apache Solr OpenJDK Lucene firewalld

7월 10일 20:47에 게시됨