RHEL 시스템에 Graylog 로그 관리 도구를 설치하는 방법


Graylog는 서버, 라우터 및 방화벽과 같은 IT 인프라의 수많은 장치와 애플리케이션에서 실시간 데이터를 수집, 저장, 인덱싱 및 분석하기 위한 업계 최고의 오픈 소스 로그 관리 솔루션입니다.

Graylog는 상세한 분석 및 보고를 위해 여러 검색을 결합하여 수집된 데이터에 대한 더 많은 통찰력을 얻는 데 도움이 됩니다. 또한 원격 소스의 로그를 심층 분석하여 위협 및 가능한 악의적 활동을 탐지합니다.

Graylog는 다음으로 구성됩니다.

  1. Graylog 서버 – 메인 서버이며 로그 처리에 사용됩니다.
  2. Graylog 웹 인터페이스 – 여러 엔드포인트에서 수집된 데이터와 로그를 한 눈에 볼 수 있는 브라우저 애플리케이션입니다.
  3. MongoDB – 구성 데이터를 저장하기 위한 NoSQL 데이터베이스 서버입니다.
  4. ElasticSearch – 다양한 소스의 원시 데이터를 구문 분석하고 색인을 생성하는 무료 오픈 소스 검색 및 분석 엔진입니다.
  5. Graylog의 아키텍처는 네트워크 트래픽 및 다음 로그를 포함한 모든 유형의 구조화된 데이터를 허용합니다.

    1. Syslog(TCP, UDP, AMQP, Kafka).
    2. AWS – AWS 로그, CloudTrail 및 FlowLogs.
    3. 넷플로우(UDP).
    4. GELF(TCP, UDP, AMQP, Kafka).
    5. ELK – Beats 및 Logstash.
    6. HTTP API의 JSON 경로.
    7. 기술 스택에 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 서버를 설치하는 방법을 보여주었습니다.