RHEL 시스템에 Graylog 로그 관리 도구를 설치하는 방법
Graylog는 서버, 라우터 및 방화벽과 같은 IT 인프라의 수많은 장치와 애플리케이션에서 실시간 데이터를 수집, 저장, 인덱싱 및 분석하기 위한 업계 최고의 오픈 소스 로그 관리 솔루션입니다.
Graylog는 상세한 분석 및 보고를 위해 여러 검색을 결합하여 수집된 데이터에 대한 더 많은 통찰력을 얻는 데 도움이 됩니다. 또한 원격 소스의 로그를 심층 분석하여 위협 및 가능한 악의적 활동을 탐지합니다.

Graylog는 다음으로 구성됩니다.
- Graylog 서버 – 메인 서버이며 로그 처리에 사용됩니다.
- Graylog 웹 인터페이스 – 여러 엔드포인트에서 수집된 데이터와 로그를 한 눈에 볼 수 있는 브라우저 애플리케이션입니다.
- MongoDB – 구성 데이터를 저장하기 위한 NoSQL 데이터베이스 서버입니다.
- ElasticSearch – 다양한 소스의 원시 데이터를 구문 분석하고 색인을 생성하는 무료 오픈 소스 검색 및 분석 엔진입니다.
- Syslog(TCP, UDP, AMQP, Kafka).
- AWS – AWS 로그, CloudTrail 및 FlowLogs.
- 넷플로우(UDP).
- GELF(TCP, UDP, AMQP, Kafka).
- ELK – Beats 및 Logstash.
- HTTP API의 JSON 경로.
Graylog의 아키텍처는 네트워크 트래픽 및 다음 로그를 포함한 모든 유형의 구조화된 데이터를 허용합니다.
기술 스택에 Graylog를 구현하는 거대 기술 회사로는 Fiverr, CircleCI, CraftBase 및 BitPanda가 있습니다.
이 가이드에서는 AlmaLinux, CentOS Stream 및 Rocky Linux와 같은 RHEL 8 및 RHEL 기반 배포판에 Graylog 로그 관리 도구를 설치하는 방법을 보여줍니다.
1단계: EPEL Repo 및 필수 패키지 설치
시작하려면 이 가이드를 따라 이동하는 데 도움이 될 몇 가지 필수 패키지가 필요합니다. 먼저 RHEL 및 RHEL 배포를 위한 풍부한 소프트웨어 패키지 세트를 제공하는 EPEL 리포지토리를 설치합니다.
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
다음으로, 그 과정에서 필요한 다음 패키지를 설치하십시오.
$ sudo dnf install -y pwgen wget curl perl-Digest-SHA
2단계: RHEL에 Java(OpenJDK) 설치
Graylog를 설치하기 위한 전제 조건 중 하나는 Java 8 이상 버전입니다. 여기에서는 OpenJDK 11에서 제공할 Java 11인 최신 Java LTS 릴리스를 설치합니다.
따라서 다음 명령을 실행하여 OpenJDK를 설치하십시오.
$ sudo dnf install java-11-openjdk java-11-openjdk-devel -y
이렇게 하면 Java 종속성 및 기타 종속성 호스트가 설치됩니다.
설치가 완료되면 설치된 버전을 확인하십시오.
$ java -version

3단계: RHEL에 Elasticsearch 설치
Elasticsearch는 정형, 비정형, 수치, 지리 공간 및 텍스트 데이터를 비롯한 다양한 데이터를 처리하는 무료 오픈 소스 검색 및 분석 엔진입니다.
ELK(Elasticsearch, Logstash, Kibana)라고도 하는 Elastic 스택의 핵심 구성 요소이며 간단한 REST API, 확장성 및 속도를 위해 널리 사용됩니다.
Graylog에는 Elasticsearch 6.x 또는 7.x가 필요합니다. 이 가이드를 게시할 당시 최신 릴리스인 Elasticsearch 7.x를 설치합니다.
Elasticsearch 리포지토리 파일을 만듭니다.
$ sudo vim /etc/yum.repos.d/elasticsearch.repo
다음으로 다음 코드 줄을 파일에 붙여넣습니다.
[elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
변경 사항을 저장하고 종료합니다.
그런 다음 그림과 같이 DNF 패키지 관리자를 사용하여 Elasticsearch를 설치합니다.
$ sudo dnf install elasticsearch-oss

Elasticsearch가 Graylog와 함께 작동하려면 몇 가지 변경 사항이 필요합니다. 따라서 elasticsearch.yml 파일을 엽니다.
$ sudo vim /etc/elasticsearch/elasticsearch.yml
표시된 대로 클러스터 이름을 Graylog로 업데이트합니다.
cluster.name: graylog
변경 사항을 저장하고 종료합니다.
그런 다음 systemd 관리자 구성을 다시 로드합니다.
$ sudo systemctl daemon-reload
다음으로 다음 명령을 실행하여 Elasticsearch 서비스를 활성화하고 시작합니다.
$ sudo systemctl enable elasticsearch.service $ sudo systemctl start elasticsearch.service

Elasticsearch는 HTTP 요청을 처리하기 위해 기본적으로 포트 9200을 수신합니다. 그림과 같이 CURL 요청을 보내 이를 확인할 수 있습니다.
$ curl -X GET http://localhost:9200

4단계: RHEL에 MongoDB 설치
Graylog는 MongoDB 데이터베이스 서버를 사용하여 구성 데이터를 저장합니다.
MongoDB 4.4를 설치하지만 먼저 MongoDB용 구성 파일을 생성합니다.
$ sudo vim /etc/yum.repos.d/mongodb-org-4.repo
그런 다음 다음 구성을 붙여넣습니다.
[mongodb-org-4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
변경 사항을 저장하고 종료합니다.
다음으로 MongoDB를 다음과 같이 설치합니다.
$ sudo dnf install mongodb-org
설치가 완료되면 시스템 시작 시 MongoDB를 시작하고 활성화합니다.
$ sudo systemctl start mongod $ sudo systemctl enable mongod
MongoDB 버전을 확인하려면 다음 명령을 실행합니다.
$ mongo --version

5단계: RHEL에 Graylog 서버 설치
모든 필수 구성 요소가 설치된 상태에서 이제 다음 명령을 실행하여 Graylog를 설치합니다.
$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.2-repository_latest.rpm $ sudo dnf install graylog-server
다음과 같이 Graylog 설치를 확인할 수 있습니다.
$ rpm -qi graylog-server

이제 Graylog 서버를 시작하고 활성화하여 부팅 시 시작합니다.
$ sudo systemctl start graylog-server.service $ sudo systemctl enable graylog-server.service
6단계: RHEL에서 Graylog 서버 구성
Graylog가 예상대로 작동하려면 몇 가지 추가 단계가 필요합니다. 구성 파일에서 다음 매개변수를 정의해야 합니다.
root_password_sha2 password_secret root_username http_bind_address
기본 구성 파일인 /etc/graylog/server/server.conf 파일에서 이러한 변수를 정의합니다.
root_password_sha2는 루트 사용자의 해시 암호입니다. 생성하려면 다음 명령을 실행하십시오. [email protected]은(는) 자리 표시자일 뿐입니다. 자신의 암호를 자유롭게 지정하십시오.
$ echo -n [email protected] | shasum -a 256
산출
68e865af8ddbeffc494508bb6181167fccf0bb7c0cab421c54ef3067bdd8d85d
이 암호를 기록해 두고 어딘가에 저장하십시오.
그런 다음 다음과 같이 password_secret을 생성합니다.
$ pwgen -N 1 -s 96
산출
T1EtSsecY0QE4jIG3t6e96A5qLU5WhS9p5SliveX9kybWjC3WKhN4246oqGYPe4BTLXaaiOcM7LyuSd9bGAonQxkTsTjuqBf
다시 말하지만 이 해시된 암호를 기록해 두십시오.
다음으로 Graylog 구성 파일을 엽니다.
$ sudo vim /etc/graylog/server/server.conf
표시된 대로 root_password_sha2 및 password_secret에 대해 생성한 값을 붙여넣습니다.
root_username = admin root_password_sha2 = 68e865af8ddbeffc494508bb6181167fccf0bb7c0cab421c54ef3067bdd8d85d password_secret = T1EtSsecY0QE4jIG3t6e96A5qLU5WhS9p5SliveX9kybWjC3WKhN4246oqGYPe4BTLXaaiOcM7LyuSd9bGAonQxkTsTjuqBf
또한 다음과 같이 http_bind_address 매개변수를 설정하여 외부 사용자가 Graylog에 액세스할 수 있도록 합니다.
http_bind_address = 0.0.0.0:9000
또한 Graylog 서버의 시간대를 구성합니다.
root_timezone = UTC
구성 파일을 저장하고 종료합니다.
변경 사항을 적용하려면 Graylog 서버를 다시 시작하십시오.
$ sudo systemctl restart graylog-server.service
로그 파일에서 확인하고 Graylog가 예상대로 실행되고 있는지 확인할 수 있습니다.
$ tail -f /var/log/graylog-server/server.log
마지막 줄의 다음 출력은 모든 것이 정상임을 보여줍니다.

Graylog는 웹 인터페이스에 대한 액세스를 제공하는 포트 9000에서 수신 대기합니다. 따라서 방화벽에서 이 포트를 엽니다.
$ sudo firewall-cmd --add-port=9000/tcp --permanent $ sudo firewall-cmd --reload
7단계: Graylog 웹 UI에 액세스
Graylog에 액세스하려면 다음 URL을 탐색하십시오.
http://server-ip:9000 OR http://domain-name:9000
사용자 이름 admin과 server.conf 파일에서 root_password_sha2에 대해 구성된 비밀번호로 로그인합니다.

로그인하면 다음 대시보드가 표시됩니다.

여기에서 다양한 데이터 소스에서 수집된 데이터 및 로그 분석을 진행할 수 있습니다.
Graylog는 계속해서 개발자와 운영 팀을 위한 인기 있는 중앙 집중식 로그 관리 솔루션입니다. 수집된 데이터를 분석하면 다양한 애플리케이션 및 장치의 작동 상태에 대한 깊은 통찰력을 제공하고 오류를 찾고 IT 운영을 최적화하는 데 도움이 됩니다.
이것이 이 가이드의 전부입니다. 이 튜토리얼에서는 RHEL 기반 Linux 배포판에 Graylog 서버를 설치하는 방법을 보여주었습니다.