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 발급 후 진행
<정보>
'OpenSource > Graylog' 카테고리의 다른 글
Windows Server 연동 (winlogbeat) (0) | 2025.04.30 |
---|---|
Windows Event log를 Graylog로 수집 (Winlogbeat) (0) | 2025.04.22 |
Graylog서버에 FortiGate Log 연동 (0) | 2025.04.17 |
MongoDB 설치시 CPU 이슈 (1) | 2025.04.10 |
Graylog Server Log Data 위치 변경 (0) | 2025.04.10 |