서버 모니터링 · 6 min read · Nov 20, 2025

Graylog 모니터링 서버 설치 및 구성 Ubuntu 20.04

Graylog는 중앙 서버에서 네트워크 시스템의 로그를 모니터링하는 데 사용할 수 있는 무료 오픈 소스 로그 관리 소프트웨어 도구입니다. Elasticsearch를 사용하여 로그 데이터를 저장하고 검색 기능을 제공하며, MongoDB를 메타 정보를 저장하는 데 사용합니다. 이를 통해 많은 양의 데이터를 간단한 읽기 가능한 형식으로 모니터링하고 검색 및 분석할 수 있습니다.

이 튜토리얼에서는 Ubuntu 20.04 서버에 Graylog를 설치하는 방법을 보여드립니다.

필수 조건

  • 최소 4GB의 RAM을 갖춘 Ubuntu 20.04를 실행하는 서버
  • 루트 비밀번호가 구성되어 있어야 합니다.

시작하기

먼저 시스템 패키지를 최신 버전으로 업데이트해야 합니다. 다음 명령어로 모든 패키지를 업데이트할 수 있습니다:

apt-get update -y

모든 패키지를 업데이트한 후, 서버에 몇 가지 종속성을 설치해야 합니다. 다음 명령어로 모두 설치할 수 있습니다:

apt-get install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y

필요한 모든 종속성이 설치되면 다음 단계로 진행할 수 있습니다.

Java 설치

Graylog는 서버에 Java가 설치되어 있어야 합니다. 설치되지 않은 경우, 다음 명령어로 설치할 수 있습니다:

apt-get install openjdk-11-jre-headless -y

Java가 설치되면 다음 명령어로 설치된 Java 버전을 확인할 수 있습니다:

java -version

다음과 같은 출력이 표시되어야 합니다:

openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Elasticsearch 설치 및 구성

Graylog는 외부 리소스에서 오는 로그를 저장하기 위해 Elasticsearch를 사용합니다. 따라서 시스템에 Elasticsearch를 설치해야 합니다.

기본적으로 최신 버전의 Elasticsearch는 Ubuntu 기본 리포지토리에서 사용할 수 없습니다. 따라서 시스템에 Elasticsearch 리포지토리를 추가해야 합니다.

먼저 다음 명령어로 Elasticsearch GPG 키를 다운로드하고 추가합니다:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

다음으로, 다음 명령어로 Elasticsearch 리포지토리를 추가합니다:

echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

다음으로, 리포지토리를 업데이트하고 다음 명령어로 Elasticsearch를 설치합니다:

apt-get update -y  
apt-get install elasticsearch-oss -y

Elasticsearch를 설치한 후, Elasticsearch 구성 파일을 편집하고 클러스터 이름을 정의해야 합니다. 다음 명령어로 할 수 있습니다:

nano /etc/elasticsearch/elasticsearch.yml

클러스터 이름을 graylog로 정의하고 아래와 같이 다른 줄을 추가합니다:

cluster.name: graylog
action.auto_create_index: false

작업이 완료되면 파일을 저장하고 닫습니다. 그런 다음, 다음 명령어로 Elasticsearch 서비스를 시작하고 부팅 시 시작하도록 설정합니다:

systemctl daemon-reload  
systemctl start elasticsearch  
systemctl enable elasticsearch

다음 명령어로 Elasticsearch 서비스의 상태를 확인할 수도 있습니다:

systemctl status elasticsearch

다음과 같은 출력이 표시되어야 합니다:

? elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 08:41:18 UTC; 9s ago
       Docs: http://www.elastic.co
   Main PID: 7085 (java)
      Tasks: 17 (limit: 2353)
     Memory: 1.1G
     CGroup: /system.slice/elasticsearch.service
             ??7085 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ->

Sep 05 08:41:18 ubuntu2004 systemd[1]: Started Elasticsearch.

이제 다음 명령어로 Elasticcsearch 응답을 확인합니다:

curl -X GET http://localhost:9200

다음과 같은 출력이 표시되어야 합니다:

{
  "name" : "vzg8H4j",
  "cluster_name" : "graylog",
  "cluster_uuid" : "6R9SlXxNSUGe6aclcJa9VQ",
  "version" : {
    "number" : "6.8.12",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "7a15d2a",
    "build_date" : "2020-08-12T07:27:20.804867Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.3",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

MongoDB 서버 설치

Graylog는 데이터베이스로 MongoDB를 사용합니다. 따라서 서버에 MongoDB 데이터베이스를 설치해야 합니다. 다음 명령어로 설치할 수 있습니다:

apt-get install mongodb-server -y

MongoDB가 설치되면 다음 명령어로 MongoDB 서비스를 시작하고 시스템 재부팅 시 시작하도록 설정합니다:

systemctl start mongodb  
systemctl enable mongodb

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Graylog 설치 및 구성

기본적으로 Graylog 패키지는 Ubuntu 기본 리포지토리에서 사용할 수 없습니다. 따라서 서버에 graylog 리포지토리를 설치해야 합니다.

다음 명령어로 Graylog 리포지토리 패키지를 다운로드할 수 있습니다:

wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb

다운로드가 완료되면 다음 명령어로 다운로드한 패키지를 설치합니다:

dpkg -i graylog-3.3-repository_latest.deb

다음으로, 리포지토리를 업데이트하고 다음 명령어로 Graylog 서버를 설치합니다:

apt-get update -y  
apt-get install graylog-server -y

Graylog 서버를 설치한 후, 사용자 비밀번호를 보호하기 위해 비밀 키를 생성해야 합니다. 다음 명령어로 생성할 수 있습니다:

pwgen -N 1 -s 96

다음과 같은 출력이 표시되어야 합니다:

Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c

다음으로, Graylog 관리자 사용자에 대한 보안 비밀번호도 생성해야 합니다. 이 비밀번호는 Graylog 웹 인터페이스에 로그인하는 데 필요합니다. 다음 명령어로 생성할 수 있습니다:

echo -n password | sha256sum

다음과 같은 출력이 표시되어야 합니다:

5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8  -

이제 Graylog 주요 구성 파일을 편집하고 두 비밀번호를 정의해야 합니다:

nano /etc/graylog/server/server.conf

위에서 생성한 두 비밀번호를 아래와 같이 붙여넣습니다:

password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8   

다음으로, 서버의 바인드 주소를 아래와 같이 정의해야 합니다:

http_bind_address = 127.0.0.1:9000

작업이 완료되면 파일을 저장하고 닫습니다. 그런 다음, 다음 명령어로 Graylog 서비스를 시작하고 시스템 재부팅 시 시작하도록 설정합니다:

systemctl daemon-reload  
systemctl start graylog-server  
systemctl enable graylog-server

다음으로, 다음 명령어를 사용하여 Graylog 서버의 상태를 확인할 수 있습니다:

systemctl status graylog-server

다음과 같은 출력이 표시되어야 합니다:

? graylog-server.service - Graylog server
     Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 08:50:16 UTC; 15min ago
       Docs: http://docs.graylog.org/
   Main PID: 8693 (graylog-server)
      Tasks: 156 (limit: 2353)
     Memory: 865.0M
     CGroup: /system.slice/graylog-server.service
             ??8693 /bin/sh /usr/share/graylog-server/bin/graylog-server
             ??8726 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX>

Sep 05 08:50:16 ubuntu2004 systemd[1]: Started Graylog server.

다음 명령어로 Graylog 서버 로그를 확인할 수도 있습니다:

tail -f /var/log/graylog-server/server.log

Graylog 서버가 성공적으로 시작되면 다음과 같은 출력이 표시되어야 합니다:

2020-09-05T08:51:36.473Z INFO  [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=59, JobSchedulerService [RUNNING]=105, GracefulShutdownService [RUNNING]=106, OutputSetupService [RUNNING]=110, BufferSynchronizerService [RUNNING]=111, UrlWhitelistService [RUNNING]=153, JournalReader [RUNNING]=166, KafkaJournal [RUNNING]=222, MongoDBProcessingStatusRecorderService [RUNNING]=240, ConfigurationEtagService [RUNNING]=259, EtagService [RUNNING]=302, StreamCacheService [RUNNING]=306, LookupTableService [RUNNING]=376, PeriodicalsService [RUNNING]=655, JerseyService [RUNNING]=58701}
2020-09-05T08:51:36.477Z INFO  [ServerBootstrap] Graylog server up and running.

이제 Graylog 서버가 시작되었고 포트 9000에서 수신 대기 중입니다.

Graylog에 대한 리버스 프록시로 Nginx 구성

다음으로, Graylog 서버에 접근하기 위해 Nginx를 리버스 프록시로 설치하고 구성해야 합니다.

먼저, 다음 명령어로 Nginx 서버를 설치합니다:

apt-get install nginx -y

Nginx 서버를 설치한 후, 다음 명령어로 새로운 Nginx 가상 호스트 구성 파일을 생성합니다:

nano /etc/nginx/sites-available/graylog.conf

다음 줄을 추가합니다:

server {
    listen 80;
    server_name graylog.example.org;

    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL http://$server_name/;
      proxy_pass       http://127.0.0.1:9000;
    }
}

작업이 완료되면 파일을 저장하고 닫습니다. 그런 다음, 다음 명령어로 Nginx의 구문 오류를 확인합니다:

ginx -t

다음과 같은 출력이 표시되어야 합니다:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

다음으로, 다음 명령어로 Nginx 가상 호스트 구성 파일을 활성화합니다:

ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/

마지막으로, 다음 명령어로 Nginx 서비스를 재시작하여 변경 사항을 적용합니다:

systemctl restart nginx

다음으로, 다음 명령어로 Graylog의 상태를 확인합니다:

systemctl status nginx

다음과 같은 출력이 표시되어야 합니다:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:07:50 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 9408 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 9419 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 9423 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 10.2M
     CGroup: /system.slice/nginx.service
             ??9423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??9424 nginx: worker process
             ??9425 nginx: worker process

Sep 05 09:07:50 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 09:07:50 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Graylog 웹 인터페이스에 접근

이제 웹 브라우저를 열고 URL http://graylog.example.com을 입력합니다. 아래와 같이 Graylog 로그인 페이지로 리디렉션됩니다:

Graylog 로그인

관리자 사용자 이름과 비밀번호를 입력한 후 로그인 버튼을 클릭합니다. 다음 페이지에서 Graylog 대시보드를 볼 수 있습니다:

Graylog 시작하기

이제 시스템 >> 개요를 클릭합니다. 다음 페이지에서 Graylog 서버의 상태를 볼 수 있습니다:

Graylog

결론

축하합니다! Nginx를 리버스 프록시로 사용하여 Ubuntu 20.04에 Graylog 서버를 성공적으로 설치하고 구성했습니다. 이제 Graylog를 탐색하고 외부 소스에서 Rsyslog 로그를 수신하기 위한 입력을 생성할 수 있습니다. 질문이 있으면 언제든지 문의해 주세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.