2.Project/Infra

[GrayLog] 로그 수집 서버 구축 및 설치

전산웅이 2024. 7. 11. 18:23

1. 도입하게된 이유 

  정보 보안 항목 중 로그를 1년 동안 보관할 것 그리고 그 로그를 파악하여 분석 하는 사항이 있어 

방화벽 , 서버 등 로그 보존 기간이 1년이 되는 경우가 없었다. 

그리고 각각 로그를 관리하기에는 어려움이 있어 로그 관제 서버를 찾아 보던 중 

ELK Stack  , PLG Stack , GrayLog 등 여러가지 스택이 있다는 것을 파악했다 .

3개 중 보안 관련 로그 관리하기에는 GrayLog에 더 편의성이 있다는 이야기를 들어 

도입하게 되었다. 

 

2. GrayLog 란?

   Graylog은 오픈 소스 로그 관리 플랫폼으로, 로그 데이터를 수집, 저장, 분석, 모니터링하는 데 사용됩니다. Graylog는 다양한 소스에서 생성된 로그 데이터를 중앙에서 효율적으로 처리하고 분석할 수 있게 해주는 프로그램 이다.

 

3. 구축 및 설치 

  로그 서버가 1년치 용량이 얼마나 될지 파악이 되지 않아 VM에 구축하여 모니터링 하기로 했다. 

 

OS : Locky Liunx 8.10

CPU : 8 Core 

Ram : 16 GB

용량 : 512 GB 

 

 구축하기 위해 공식 홈페이지 에서 먼저 확인을 해 보았다. 

 

https://go2docs.graylog.org/current/downloading_and_installing_graylog/installing_graylog.html 

 

Installing Graylog

Graylog can be installed in many different ways, allowing you to pick whatever works best for you. This article describes a few ways to install Graylog and aims to help you choose the one that best fits your needs. Choose an Installation Method They follow

go2docs.graylog.org

 

VM으로 올리는 것이기 때문에

도커를 사용하여  진행하는 것보다는 직접 설치하기로 했다. 

 

Locky Liunx 는 Red Hat 계열이며 

현 시점 기준으로 6.0이 최신 버전으로 구축을 진행했다. 

설치 조건은 위와 같다.

 

 

 

MongoDB Install

vi /etc/yum.repos.d/mongodb-org.repo

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
-- 위의 내용 삽입 후 저장

sudo yum install -y mongodb-org

sudo systemctl daemon-reload -- 데몬 재시작 
sudo systemctl enable mongod -- 재 시작시 자동 서비스 시작 
sudo systemctl start mongod  -- 서비스 시작
sudo systemctl status mongod -- 서비스 상태 확인

-- 아래는 필수 항목이 아님 설치하지 않아도 설치에는 문제가 없음
sudo yum install versionlock 
sudo yum versionlock add mongodb-org -- 버전 일관성을 유지하기 위해 버전 잠금

 

OpenSearch Install

sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo

sudo sed -i "s/^gpgcheck=.*/gpgcheck=0/g" /etc/yum.repos.d/opensearch-2.x.repo

sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom  | head -c${1:-32}) yum install 'opensearch-2.13.0'
-- 2.14 버전으로 업그레이드 진행시 사용에 문제가 있다는 경고가 있어 2.13버전으로 설치 

sudo yum versionlock add opensearch.x86_64-2.13
-- 버전 잠금

 

Graylog Configuration for OpenSearch

 

sudo vi /etc/opensearch/opensearch.yml

path.data: /var/lib/opensearch -- 기본 설정 ( 설정값에 주석 풀려있음 ) 
path.logs: /var/log/opensearch -- 기본 설정 ( 설정값에 주석 풀려있음 )

cluster.name: graylog
node.name: ${HOSTNAME}
discovery.type: single-node
network.host: 0.0.0.0
action.auto_create_index: false
plugins.security.disabled: true
indices.query.bool.max_clause_count: 32768
-- 삽입 후 저장 

sudo vi /etc/opensearch/jvm.options

## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://opensearch.org/docs/opensearch/install/important-settings/
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g

-- 기본 설정 그대로 진행 

sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

sudo systemctl daemon-reload
sudo systemctl enable opensearch
sudo systemctl start opensearch
sudo systemctl status opensearch
-- 위와 동일

 

위 부분에서 생각 없이 그대로 복붙 진행하다 

path.data: /var/lib/opensearch 
path.logs: /var/log/opensearch

해당 값이 중복으로 들어가 opensearch 가 실행되지 않는 현상 발생 

제거하여 문제 해결 !

 

Graylog install

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-6.0-repository_latest.rpm
sudo yum install graylog-server
-- 무료 버전 으로 설치 진행  

sudo yum versionlock add graylog-server-6.0

 

Graylog Configuration File

yum install -y pwgen 
-- pwgen 암호를 암호화 시키기 위한 설치 !

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
-- password_secret

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password : '설정할암호'
-- root_password_sha2:

메모장에 해당 암호키를 복사 후 

sudo vi /etc/graylog/server/server.conf

-- password_secret : 
-- root_password_sha2 :
-- 생성한 암호키를 넣고 저장 !

root_timezone = Asia/Seoul
http_bind_address = 서버IP:9000

sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
sudo systemctl --type=service --state=active | grep graylog

 

위와 같이 설치를 진행하면  

 

admin / 설정한 비번

 

위와 같이 정상적으로 로그인 된다 . !

 

만약 접속이 안된다면 

OS 방화벽을 내리고 접속 확인해 보면 된다. 

 

위의 설치는

linux selinux  , 방화벽을 내리고  진행함 

 

차후 방화벽 설정에 대해서는 글을 작성할 예정

'2.Project > Infra' 카테고리의 다른 글

[GrayLog] 방화벽 장비 로그를 수집해보자 Fortigate  (2) 2024.07.12