웹사이트 검색

Rocky Linux에 Graylog 중앙 집중식 로그 관리 시스템을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 자바 OpenJDK 설치
  3. MongoDB NoSQL 데이터베이스 설치
  4. Elasticsearch 설치
  5. Graylog 서버 설치
  6. SELinux 설정
  7. 새 Graylog 입력 만들기
  8. Ingest Syslog를 통해 Graylog 서버로 로그 보내기\n
  9. 결론

Graylog는 데이터와 로그를 실시간으로 캡처, 저장 및 분석할 수 있는 무료 오픈 소스 로그 관리 플랫폼입니다. Java로 작성되었으며 MongoDB 및 Elasticsearch와 같은 다른 오픈 소스 소프트웨어 위에 구축되었습니다. Graylog는 가장 효율적이고 빠르며 유연한 중앙 로그 관리 플랫폼 중 하나를 제공합니다. Graylog를 사용하면 거의 모든 데이터 소스에서 구조화된 데이터와 구조화되지 않은 데이터를 모두 전송하고 분석할 수 있습니다.

이 자습서에서는 Rocky Linux 서버에서 Graylog를 사용하여 중앙 집중식 로그 관리를 설정합니다. 이 자습서에는 Elasticsearch 및 MongoDB와 같은 일부 Graylog 종속성의 기본 설치가 포함되어 있습니다. 또한 Graylog 입력을 설정하고 Syslog Ingest를 통해 Linux 시스템에서 Graylog 서버로 로그를 전송합니다.

전제 조건

이 자습서를 따르려면 다음 요구 사항이 필요합니다.

  • Rocky Linux 8을 실행하는 서버.\n
  • sudo/administrator 권한이 있는 루트가 아닌 사용자.\n
  • 방화벽이 실행 중이고 활성화되어 있습니다.\n

자바 OpenJDK 설치

Graylog Server는 주로 Java로 작성된 응용 프로그램 서버입니다. Graylog를 설치하려면 Rocky Linux 시스템에 Java OpenJDK를 설치해야 합니다. 이 글을 작성할 당시 Graylog 서버에는 최소한 Java v8 이상이 필요했습니다.

Rocky Linux 리포지토리에는 설치할 수 있는 여러 Java OpenJDK 버전이 있습니다. 아래 명령을 사용하여 사용 가능한 모든 OpenJDK 버전을 확인할 수 있습니다.

sudo dnf search openjdk

이 데모에서는 Graylog 서버용 Java OpenJDK v11을 설치하고 사용합니다. 아래 dnf 명령을 실행하여 Rocky Linux 시스템에 Java OpenJDK를 설치합니다.

설치를 확인하라는 메시지가 표시되면 y를 입력하고 ENTER를 누릅니다.

sudo dnf install java-11-openjdk-devel

Java OpenJDK 설치가 완료되면 다음 java 명령을 실행하여 Java OpenJDK 버전을 확인 및 확인합니다. Rocky Linux 시스템에 설치된 OpenJDK v11이 표시되어야 합니다.

java version

MongoDB NoSQL 데이터베이스 설치

이제 Graylog 서버에 대한 종속성으로 MongoDB NoSQL 데이터베이스를 설치합니다. MongoDB는 Graylog Server의 데이터를 저장하는 데 사용됩니다.

MongoDB를 설치하려면 MongoDB 리포지토리를 추가해야 합니다. 그런 다음 MongoDB 패키지를 설치할 수 있습니다.

다음 명령을 실행하여 Rocky Linux 시스템용 MongoDB 리포지토리를 추가합니다.

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

이제 아래 dnf 명령을 실행하여 시스템에서 사용 가능한 리포지토리 목록을 확인하고 확인하십시오. \mongodb\ 저장소가 추가된 것을 볼 수 있습니다.

sudo dnf repolist

다음으로 dnf 명령을 사용하여 MongoDB 패키지를 설치합니다. 설치를 확인하라는 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속합니다.

sudo dnf install mongodb-org

또한 MongoDB 리포지토리 GPG 키를 확인하라는 메시지도 표시됩니다. y를 입력하여 MongoDB GPG 키를 확인하고 추가합니다.

MongoDB 설치가 완료되면 다음 명령을 실행하여 systemd 관리자를 다시 로드하고 새 MongoDB 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

이제 다음 시스템 명령을 사용하여 mongod라는 이름으로 MongoDB 서비스를 시작합니다. 그런 다음 시스템 시작 시 mongod 서비스가 자동으로 시작되도록 활성화합니다.

sudo systemctl enable mongod
sudo systemctl start mongod

마지막으로 다음 systemctl 명령을 실행하여 mongod 서비스를 확인하고 확인합니다. MongoDB 서비스 mongod가 실행 중이고 시스템 부팅 시 활성화되어 있어야 합니다.

sudo systemctl status mongod

Elasticsearch 설치

elasticsearch는 Graylog 서버 로그 관리 스택의 검색 엔진을 처리합니다. 이 글을 쓰는 시점에 Elasticsearch v7.x를 설치해야 합니다.

Graylog Server의 현재 버전은 Elasticsearch v7.x에서만 실행됩니다. v8.x 또는 v9.x와 같은 최신 Elasticsearch를 설치하면 오류가 발생합니다.

이제 다음 명령을 실행하여 Rocky Linux 시스템용 Elasticsearch v7.x 리포지토리를 설정합니다.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

아래 명령을 실행하여 시스템의 리포지토리 목록을 확인하고 확인하십시오. Elasticsearch v7.x 리포지토리가 추가된 것을 볼 수 있습니다.

sudo dnf repolist

다음으로 아래의 dnf 명령을 사용하여 Elasticsearch 패키지를 설치합니다. 설치를 확인하라는 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo dnf install elasticsearch

또한 Elasticsearch 리포지토리에 GPG 키를 추가하라는 메시지가 표시됩니다. y를 입력하여 GPG 키를 추가합니다. 그리고 설치가 완료됩니다.

다음으로 Graylog 서버에서 사용할 기본 설치를 위해 Elasticsearch 서버를 설정해야 합니다.

아래 명령을 사용하여 기본 Elasticsearch 구성 파일 /etc/elasticsearch/elasticsearch.yml을 편집합니다.

sudo nano /etc/elasticsearch/elasticsearch.yml

다음 기본 Elasticsearch 구성을 추가하고 주석 처리를 제거하십시오.

cluster.name: graylog-rocky8
action.auto_create_index: false

완료되면 파일을 저장하고 닫습니다.

또한 아래 명령을 사용하여 /etc/elasticsearch/jvm.options 파일을 편집하여 Elasticsearch 서버에 대한 최대 메모리 할당을 설정할 수도 있습니다.

sudo nano /etc/elasticsearch/jvm.options

주석을 해제하고 아래와 같이 기본 구성을 변경합니다. 여기에서 서버의 최대 메모리로 최대 메모리 할당을 변경할 수 있습니다.

-Xms1g
-Xmx1g

완료되면 파일을 저장하고 닫습니다.

이제 아래의 systemctl 명령을 실행하여 systemd 관리자를 다시 로드하고 Elasticsearch 서버에 대한 새 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

다음으로 아래 명령을 사용하여 Elasticsearch 서버를 시작하고 활성화합니다. Elasticsearch 서비스는 시스템 시작 시 자동으로 실행되며 이제 Elasticsearch의 현재 상태가 실행 중이어야 합니다.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

마지막으로 다음 명령을 실행하여 Elasticsearch 서비스를 확인하고 서비스가 실행 중인지 확인합니다. Elasticsearch 서비스가 실행 중이고 활성화되었다는 출력이 표시되어야 합니다.

sudo systemctl status ealsticsearch

또한 아래 curl 명령을 통해 Elasticsearch 서버에 액세스할 수도 있습니다. 클러스터 이름, 클러스터 uuuid, Elasticsearch 버전 및 Lucene 버전(Elasticsearch의 핵심)을 포함하여 Elasticsearch 서버에 대한 기본 정보의 출력을 얻어야 합니다.

curl localhost:9200

그레이로그 서버 설치

Java OpenJDK, MongoDB 및 Elasticsearch를 설치한 후 이제 Graylog Server를 설치합니다. 그 전에 Rocky Linux 서버에 Graylog 리포지토리를 설정해야 합니다. 그런 다음 Graylog에 대한 암호 인증 구성 및 Graylog 서버에서 사용할 http_bind_address 설정을 포함하는 Graylog 서버 구성을 시작할 수 있습니다.

이 글을 쓰는 시점에서 Graylog Server의 최신 버전은 v4.3입니다. 다음 명령을 실행하여 서버에 Graylog 리포지토리를 추가합니다.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.rpm

아래 명령을 사용하여 Graylog Server의 리포지토리 목록을 확인합니다. Graylog Server 리포지토리가 추가된 것을 볼 수 있습니다.

sudo dnf repolist

그런 다음 다음 dnf 명령을 실행하여 Graylog Server 패키지를 설치합니다. 설치를 확인하라는 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo dnf install graylog-server graylog-integrations-plugins

또한 Graylog 서버 리포지토리에 GPG 키를 추가하라는 메시지가 표시됩니다. 시스템에 GPG 키를 추가하려면 y를 입력하고 ENTER를 누르십시오. 그러면 Graylog Server 설치가 완료됩니다.

이제 기본 Graylog 서버를 설정합니다. 그 전에 아래의 dnf 명령을 실행하여 pwgen 패키지를 설치하십시오. 설치를 확인하라는 메시지가 표시되면 y를 입력하고 ENTER를 누릅니다.

pwgen 패키지는 Graylog 서버를 설정하는 데 사용할 비밀과 암호를 생성하기 위한 명령줄 도구를 제공합니다.

sudo dnf install pwgen

다음으로 다음 pwgen 명령을 실행하여 Graylog 서버에 대한 password_secret을 생성합니다. 생성된 암호를 메모에 복사해야 합니다.

sudo pwgen -N 1 -s 96

이제 다음 명령을 실행하여 Graylog 서버에 대한 root_password_sha2의 sha256 해시 암호를 생성합니다. 이 암호는 Graylog 서버 대시보드에 로그인하는 데 사용됩니다. 강력한 암호를 사용하고 생성된 sha256 해시 암호를 메모에 복사하십시오.

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

다음으로 아래 명령을 사용하여 Graylog 서버 구성 파일 /etc/graylog/server/server.conf을 편집합니다.

sudo nano /etc/graylog/server/server.conf

생성된 비밀번호로 password_secret 및 root_password_sha2 옵션의 값을 변경하십시오. 또한 graylog_username 옵션에서 Graylog 서버에 로그인하기 위한 기본 사용자 이름을 변경할 수도 있습니다.

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

이제 http_bind_address 옵션을 서버의 내부 IP 주소로 변경하십시오. 또한 Graylog 서버의 기본 포트는 TCP 9000입니다.

http_bind_address = 0.0.0.0:9000

완료되면 파일을 저장하고 닫습니다.

이제 다음 systemctl 명령을 실행하여 systemd 관리자를 다시 로드하고 Graylog 서버 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

아래의 systemctl 명령을 사용하여 graylog-server 서비스를 시작하고 활성화합니다. 이제 Graylog 서버가 실행되고 활성화되어 시스템 부팅 시 자동으로 시작됩니다.

sudo systemctl enable graylog-server
sudo systemctl start graylog-server

다음 명령을 사용하여 graylog-server 서비스를 확인하고 확인합니다. Graylog Server의 현재 상태 출력이 실행 중이고 활성화되어 있으며 부팅 시 자동으로 실행되는 것을 볼 수 있습니다.

sudo systemctl status graylog-server

마지막으로 Graylog Server에서 사용하는 포트 9000을 firewalld에 추가해야 합니다.

다음 firewall-cmd 명령을 실행하여 방화벽에 포트 9000을 추가합니다. 그런 다음 방화벽 규칙을 다시 로드하여 새 변경 사항을 적용합니다.

sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

SELinux 설정

적용 모드에서 SELinux가 활성화된 상태에서 Graylog 서버를 실행하는 경우 Graylog 서버에 대한 SELinux 규칙을 설정해야 합니다.

SELinux를 관리하기 전에 아래의 dnf 명령을 실행하여 SELinux 관리를 위한 명령줄 도구를 설치하십시오. 설치를 확인하라는 메시지가 표시되면 y를 입력하고 ENTER를 누릅니다.

sudo dnf install policycoreutils policycoreutils-python-utils

그런 다음 다음 명령을 실행하여 Graylog Server, Elasticsearch 및 MongoDB에 대한 SELinux 규칙을 추가합니다.

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

이제 Graylog 서버에 액세스할 수 있습니다.

새 Graylog 입력 만들기

애플리케이션 또는 클라이언트 컴퓨터에서 로그를 수신하려면 Graylog 서버에서 입력을 설정해야 합니다. 사용할 수 있는 여러 유형의 Graylog 입력이 있습니다. 자세한 내용은 Graylog 설명서를 확인하세요. Graylog 입력은 TCP/UDP 프로토콜에서 실행되며 Syslog, GELF, CEF 또는 RAW와 같은 여러 형식의 로그를 수신할 수 있습니다. 또한 TCP/HTTPS 프로토콜을 통해 안전하게 로그를 수신할 수 있습니다.

이 데모에서는 Linux 머신 클라이언트에서 로그를 수신하는 데 사용할 Graylog 입력을 생성합니다. 이 입력은 "Syslog UDP"를 사용하고 UDP 프로토콜을 통해 클라이언트 시스템에서 로그 메시지를 수신합니다.

웹 브라우저를 열고 서버 IP 주소 다음에 Graylog 서버 포트 9000(예: http://192.168.5.100:9000/)을 방문합니다. Graylog Server 설치의 로그인 페이지가 표시됩니다.

Graylog Server 대시보드에 로그인하려면 사용자 이름과 암호를 입력하십시오. 그런 다음 로그인을 클릭합니다.

이제 Graylog Server 관리 대시보드의 새 창이 표시되어야 합니다.

새 Graylog 입력을 생성하려면 "System" 메뉴를 클릭하고 "Inputs"를 선택하십시오.

입력 유형을 선택하고 "새 입력 시작"을 클릭합니다. 이 예에서는 새 입력 유형 "Syslog UDP"를 만듭니다. 모든 Linux 클라이언트 시스템은 Syslog UDP 프로토콜을 통해 이 입력에 로그를 보냅니다.

이제 아래와 같이 새 입력의 세부 정보를 입력합니다.

  • 제목: syslog-udp-input이라는 제목을 사용합니다.\n
  • 바인드 주소: Graylog 서버의 내부 IP 주소를 입력하거나 내부 네트워크에 있는 경우 0.0.0.0을 사용할 수 있습니다.\n
  • 포트: 이 예에서는 이 입력에 UDP 포트 5142를 사용합니다.\n

이제 "저장"을 클릭하여 입력을 추가하십시오.

이제 "실행 중" 상태의 Graylog 입력 상태가 표시되어야 합니다. 그리고 하단에는 Graylog 입력에 대한 세부 정보가 표시되어야 합니다.

마지막으로 Graylog 서버로 돌아가서 아래의 firewall-cmd 명령을 실행하여 syslog-udp-input에서 사용할 UDP 포트 5142를 추가합니다.

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

Ingest Syslog를 통해 Graylog 서버로 로그 보내기

Graylog 서버에서 Graylog Syslog UDP 입력을 생성했습니다. 이제 Rsyslog를 사용하여 Graylog 서버에 로그를 보내도록 Linux 시스템을 설정합니다. 이 예에서는 호스트 이름이 "linux-host1"이고 Graylog 서버 IP 주소가 192.168.5.100인 Rocky Linux 클라이언트 시스템을 사용합니다.

Linux 클라이언트 시스템에 연결하고 다음 명령을 실행하여 Linux 시스템에서 rsyslog 서비스를 확인하십시오. 실행 중인 rsyslog 서비스의 출력을 가져와야 합니다.

sudo systemctl status rsyslog

다음으로 Graylog 서버에 로그를 보내는 데 사용할 새 추가 rsyslog 구성 파일을 만듭니다. 다음 명령을 실행하여 새 파일 /etc/rsyslog.d/graylog.conf을 만듭니다.

sudo nano /etc/rsyslog.d/graylog.conf

파일에 다음 구성을 추가합니다. 이 구성을 사용하면 linux-host1의 rsyslog 서비스가 UDP 포트 5142를 사용하여 서버 IP 주소 192.168.5.100에서 실행되는 Graylog 서버 입력으로 로그를 보냅니다.

*.*@192.168.5.100:5142;RSYSLOG_SyslogProtocol23Format

완료되면 파일을 저장하고 닫습니다.

이제 다음 systemctl 명령을 실행하여 rsyslog 서비스를 다시 시작하고 구성 파일에 새 변경 사항을 적용하십시오. 그리고 rsyslog 서비스는 시스템 로그를 Graylog 서버로 보낼 것입니다. 몇 분 정도 기다리십시오.

sudo systemctl restart rsyslog

그런 다음 Graylog 서버 관리 대시보드로 돌아갑니다. 그런 다음 "검색" 메뉴를 클릭합니다. 이제 linux-host1 시스템의 로그와 Graylog 서버에서 사용 가능한 로그가 표시되어야 합니다.

결론

이 자습서를 통해 Rocky Linux 서버에 Graylog 서버를 설치하는 방법을 배웠습니다. 여기에는 Java OpenJDK, Elasticsearch 및 MongoDB와 같은 일부 종속성 설치가 포함됩니다. 또한 강제 모드로 활성화된 SELinux와 방화벽이 활성화된 Rocky Linux에서 Graylog 서버를 구성했습니다.

마지막으로 Linux 시스템의 중앙 집중식 로그 관리 시스템으로 사용할 수 있는 "Syslog UDP" 유형으로 Graylog 입력을 설정하는 방법을 배웠습니다. 또한 Rsyslog 서비스를 통해 Linux 시스템에서 Graylog 서버로 로그를 보내는 방법을 배웠습니다. 이제 응용 프로그램에 대해 더 많은 입력을 설정했거나 Graylog 서버에 새 Linux 시스템을 추가했습니다.