원노트의 Rocky Linux 9.7·Graylog 7.0.2·MongoDB 8.0.17·OpenSearch 2.19.3 조합을 단일 서버 실습용으로 정리했습니다. 실제 설치할 패치 버전은 공식 호환성 표와 업데이트 정책을 확인합니다. 세 서비스를 한 호스트에 두므로 메모리를 합산해 계획합니다.
패키지 저장소 준비
MongoDB 8.0·OpenSearch 2.x·Graylog 7.0의 공식 저장소를 OS에 맞춰 등록하고 GPG 서명 확인을 유지합니다. 원본의 gpgcheck 비활성화 명령은 사용하지 않습니다. 설치 후보를 확인한 뒤 호환되는 버전을 선택합니다.
dnf list --showduplicates mongodb-org opensearch graylog-server
sudo dnf install mongodb-org
sudo dnf install opensearch
sudo dnf install graylog-serverOpenSearch 패키지가 초기 관리자 암호를 요구하면 해당 설치 지침의 안전한 입력 방식을 사용합니다. shell 이력에 실제 암호를 직접 적지 않습니다.
백엔드는 로컬에 제한
mongod.conf에서 port 57017과 bindIp 127.0.0.1을 설정합니다. OpenSearch는 다음처럼 단일 노드와 loopback을 사용합니다. security 플러그인을 비활성화하는 이 실습 방식은 외부 요청이 닿는 OpenSearch에 그대로 적용하지 않습니다.
cluster.name: graylog
node.name: graylog-search01
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 127.0.0.1
plugins.security.disabled: true
action.auto_create_index: falseOpenSearch JVM의 Xms·Xmx는 같은 값으로 설정하고 Graylog·MongoDB·OS 몫을 남깁니다. vm.max_map_count 등 요구값은 사용 버전 문서에서 확인해 전용 sysctl 파일로 관리합니다.
Graylog 인증과 연결 설정
password_secret은 충분한 무작위 값으로 생성하고 root_password_sha2에는 새 관리자 암호의 SHA-256 해시를 넣습니다. 아래 자리표시는 생성한 값으로 바꿔야 합니다. 기존 비밀 값이나 예시 해시를 재사용하지 않습니다.
password_secret = YOUR_GENERATED_RANDOM_SECRET
root_password_sha2 = YOUR_GENERATED_SHA256_HASH
http_bind_address = 127.0.0.1:9000
elasticsearch_hosts = http://127.0.0.1:9200
mongodb_uri = mongodb://127.0.0.1:57017/graylogelasticsearch_hosts라는 설정 이름이 OpenSearch 연결에도 쓰입니다. 실습의 MongoDB 역시 로컬 전용이며 여러 서비스가 공유하는 운영 서버는 인증·TLS·분리 구성을 추가해야 합니다.
서비스와 Input 검증
sudo systemctl enable --now mongod opensearch graylog-server
sudo journalctl -u graylog-server -n 100 --no-pager
curl http://127.0.0.1:9200/관리 콘솔은 SSH 터널 또는 별도로 준비한 HTTPS 프록시를 통해 접속합니다. 콘솔에서 필요한 Syslog·GELF Input을 생성하고 프로토콜·바인딩·포트를 실제 송신 설정과 맞춥니다. Input 생성만으로 웹 콘솔 포트와 같은 포트에서 로그를 받는 것은 아닙니다. 시험 메시지를 보내 원본·시각·필드·보관 인덱스를 확인합니다.
참고: https://go2docs.graylog.org/current/downloading_and_installing_graylog/compatibility_matrix.htm