Graylog 서버 구축하기

김동주·2024년 1월 24일
0

🚩 프로젝트

반드시 서버구축부터 대시보드까지 작성하기

🤼‍ 사용된 os

Linux CentOS7

📁 설치 프로그램

  • MongoDB : Graylog 구성 정보, 메타 정보의 저장용으로 사용되는 DB
  • Elasticsearch : 원격지에서 받은 로그 메시지를 저장하고, 필요할 때 검색할 수 있는 기능 제공
  • Graylog : 다양한 input에서 발생하는 로그의 구문을 분석하고, 해당 로그들을 처리할 수 있는 웹 인터페이스를 제공하는 서버

1.패키지 설치

yum install epel-release –y 
yum install pwgen –y
yum install java-1.8.0-openjdk-headless.x86_64 –y

2. MongoDB 설치 및 서비스 enable/start

yum install mongodb-org -y
systemctl daemon-reload
systemctl enable mongod.service 
systemctl start mongod.service
systemctl --type=service --state=active | grep mongod

3. Elasticsearch 설치/설정/서비스 기동

> rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service 
systemctl restart elasticsearch.service
systemctl --type=service --state=active | grep elasticsearch
firewall-cmd —permanent --add-port=9200/tcp
firewall-cmd --reload

4. Graylog 설치

rpm –Uvh https://packages.graylog2.org/repo/packages/ 
graylog-4.2-repository_latest.rpm
yum install graylog-server –y
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut
-d" " -f1

Enter Password: admin
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

  • pwgen -N 1 –s 96

    VqIFnbsLRc0sdQ51ZLuqNLMYnQDkQF4VobprqgOxTt0ZCcTG573PVOSK0tEXWhJ3xIyaV4Ct
    Jt6L7yabXQfgi9ZWFOFpT7fw

  • vi /etc/graylog/server/server.conf

    password_secret =
    VqIFnbsLRc0sdQ51ZLuqNLMYnQDkQF4VobprqgOxTt0ZCcTG573PVOSK0tEXWhJ3xIyaV4CtJ
    t6L7yabXQfgi9ZWFOFpT7fw
    root_password_sha2 =
    8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
    PdmoI7bzlZr2Lk
    root_timezone = Asia/Seoul
    elasticsearch_shards = 1

  • 서비스 재기동
systemctl daemon-reload
systemctl enable graylog-server.service 
systemctl start graylog-server.service
systemctl --type=service --state=active | grep graylog

4. Graylog input 설정

System > Inputs > Select Inputs > "SyslogUDP" 선택 > Launch new Input
[v] Global
Title : UsingUDPSyslog
Bindaddress:
192.168.10.10
Port: 1607

5.스크립트로 로그파일 만들어 graylog로 전송

  • vi /root/bin/msg3.sh(IP: 192.168.10.10/1607포트)
#!/bin/bash
IP1=192.168.10.10 
PORT1=1607 
while true 
do 
facility_num="$(expr $RANDOM % 3)" 
case $facility_num in
	0) facility="user" ;;
	1) facility="local0" ;;
	2) facility="kern" ;;
	*) exit 1 ;;
esac
level_num="$(expr $RANDOM % 3)"
case $level_num in 0) level="notice" ;;
	1) level="warn" ;;
	2) level="crit" ;;
	*) exit 2 ;;
esac
msg_num="$(expr $RANDOM % 3)" 
case $msg_num in
	0) msg="hello graylog server($RANDOM) from linux200" ;;
	1) msg="test graylog server($RANDOM) from linux200" ;;
	2) msg="**^^** graylog server($RAMDOM) from linux200" ;;
	*) exit 3 ;;
esac
logger -n $IP1 -P $PORT1 -d -p "$facility.$level" "$msg" 
sleep 10
done 

chmod 700 /root/bin/msg3.sh
msg3.sh

6. 전송받은 log를 활용하여 graylog 대시보드 확인

  • 로그 전송을 멈춘 시간에는 표시가 되지 않는다.
    !
profile
더욱 더 발전된 엔지니어가 되기 위한 개인 공부 블로그(DevOps/Cloud)

0개의 댓글