OpenSource/Graylog

Graylog6 설치 하기 (Rocky linux 9.5)

난쓰넌말 2025. 4. 3. 14:40

1. 설치 버전 및 설정 정보

MongoDB : 7.0.17-1

Graylog Server : 6.0.5-1

# Graylog

Configuration : /etc/graylog/server/server.conf
Logging : /etc/graylog/server/log4j2.xml
Plugins : /usr/share/graylog-server/plugin
Binaries : /usr/share/graylog-server/bin
Scripts : /usr/share/graylog-server/scripts
JVM settings : /etc/sysconfig/graylog-server
Message journal files : /var/lib/graylog-server/journal
Log Files : /var/log/graylog-server/server.log

# OpenSearch

Configuration : /etc/opensearch/opensearch.yml
Binaries : /usr/share/opensearch/bin
JVM settings : /etc/opensearch/jvm.option
Data : /var/lib/opensearch
Log Files : /var/log/opensearch

# MongoDB  (기본포트 27017)
Configuration : /etc/mongod.conf

2. Server 설정

2.1 Timezone

sudo timedatectl set-timezone Asia/Seoul

(비추)sudo timedatectl set-timezone UTC(기본값인 KST로 한다)

2.2 방화벽

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

3. Transparent Huge Pages(THP) 기능 disable

  • 많은 메모리를 요구하는 어플리케이션을 위한 THP 기능이 성능저하를 유발할 수 있어 해당 기능 disable
  • THP disable을 서비스로 등록하여 비활성화 하도록 구현

서비스 생성

vi /etc/systemd/system/disable-transparent-huge-pages.service

Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null'
[Install]
WantedBy=basic.target
systemctl daemon-reload
systemctl enable disable-transparent-huge-pages.service
systemctl start disable-transparent-huge-pages.service
systemctl status disable-transparent-huge-pages.service

4. MongoDB 7.0 설치

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

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc

4.1. 레포지토리 설정 후 MongoDB를 설치하고 활성화

sudo yum update  (미수행)
sudo yum install mongodb-org -y

4.2. 설치 이후 자동 업그레이드 방지

sudo yum install -y 'dnf-command(versionlock)'
sudo yum versionlock add mongodb-org

4.3. 포트 및 인터페이스 설정

[root@graylog ~]# vi /etc/mongod.conf

net:
  port: 27017
  bindIpAll: true

4.4. MongoDB 활성화 및 서비스 시작

[root@graylog ~]# sudo systemctl daemon-reload
[root@graylog ~]# sudo systemctl enable mongod.service
[root@graylog ~]# sudo systemctl start mongod.service
[root@graylog ~]# sudo systemctl status mongod.service

5. Data Node 설치

[root@graylog ~]# sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-6.1-repository_latest.rpm
[root@graylog ~]# sudo yum install -y graylog-datanode

<설정확인>

linux 최소한으로 설정되어 있는지 확인 (262144)
sudo sysctl -w vm.max_map_count=262144

값을 늘리려면 (생략)
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.d/99-graylog-datanode.conf
sudo sysctl --system
cat /proc/sys/vm/max_map_count

암호화 위한 문자열 생성

[root@graylog ~]# < /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
mjbfBLwPT-07lWTKy284xMqz3EJw2daRvxrhsCglN5ejZjqKbnkWoTX3PdTvJTQ3Em5vNlrlcOiaEdAOZu7wmhwwXuvAO6T1

datanode.conf 수정

[root@graylog ~]# sudo vi /etc/graylog/datanode/datanode.conf

<변경 : 암호화 문자열>
password_secret =mspEvfGT5vu41XmEixc0YrBSaqCSJigniedS63D6XOup2CuGjWsOTCh2DV7TTgcnkdUaxoCvLYkJULl4JV8EaAO7dN789a5Q

<추가 : 메모리의 설정> 시스템의 절반 할당
opensearch_heap = 4g

<변경 : MongoDB 연결정보> 호스트 이름으로

mongodb_uri = mongodb://graylog:27017/graylog

<JVM option 설정> 최소 1G, 최대 2G (동일 크기)

[root@graylog ~]# vi /etc/graylog/datanode/jvm.options

-Xms2g
-Xmx2g

5.1. 서비스 재시작

[root@graylog ~]# sudo systemctl daemon-reload
[root@graylog ~]# sudo systemctl enable graylog-datanode.service
[root@graylog ~]# sudo systemctl start graylog-datanode

6. Graylog 설치

graylog 서버 enable 및 start는 뒤에서 진행

[root@graylog ~]# sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-6.1-repository_latest.rpm
[root@graylog ~]# sudo yum install -y graylog-server

6.1. root 패스워드 (sha2) 생성

[root@graylog ~]# echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password: drsoft4010!
bc29a6083714d802f9ff03d149e67f32b6612c9f8429dbfcac5e0f9aff0aeef4
[root@graylog ~]# vi /etc/graylog/server/server.conf

<수정1> 패스워드
root_password_sha2 =bc29a6083714d802f9ff03d149e67f32b6612c9f8429dbfcac5e0f9aff0aeef4
<수정2> 암호화 문자열
password_secret =mspEvfGT5vu41XmEixc0YrBSaqCSJigniedS63D6XOup2CuGjWsOTCh2DV7TTgcnkdUaxoCvLYkJULl4JV8EaAO7dN789a5Q

<주소 바인드>
http_bind_address = 0.0.0.0:9000

<저장설정> 72시간 동안 예상되는 용량90GB - 상황에 맞게 조정
message_journal_max_age = 72h
message_journal_max_size = 90gb  (각자 여건에 맞게)

<java 설정>

[root@graylog ~]# vi /etc/sysconfig/graylog-server

수정
# Default Java options for heap and garbage collection.
GRAYLOG_SERVER_JAVA_OPTS="-Xms2g -Xmx2g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"

<데이터 노드 설정파일에 root 비번 추가>

[root@graylog ~]# vi /etc/graylog/datanode/datanode.conf

수정
root_password_sha2 =bc29a6083714d802f9ff03d149e67f32b6612c9f8429dbfcac5e0f9aff0aeef4

파일/디렉토리 권한

[root@graylog graylog-datanode]# sudo chown -R graylog-datanode:graylog-datanode /var/lib/graylog-datanode
[root@graylog graylog-datanode]#

6.2. 서비스 시작 및 로그인

[root@graylog ~]# sudo systemctl daemon-reload
[root@graylog ~]# sudo systemctl enable graylog-server.service
[root@graylog ~]# sudo systemctl start graylog-server.service
[root@graylog ~]# tail -f /var/log/graylog-server/server.log 
========================================================================================================

It seems you are starting Graylog for the first time. To set up a fresh install, a setup interface has
been started. You must log in to it to perform the initial configuration and continue.

Initial configuration is accessible at 0.0.0.0:9000, with username 'admin' and password 'NTPjMURXXr'.
Try clicking on http://admin:NTPjMURXXr@0.0.0.0:9000

========================================================================================================

접속후 CA 발급 후 진행

<정보>