백엔드/Elastic & Splunk

Elastic & Splunk를 활용한 이상징후 탐지(4)

짱뚱짱 2025. 4. 18. 15:52

join을 사용해보면, 작업 검사에서 검색에 걸린 시간이 약 13초라고 쓰여있었다.

 

하지만  transaction을 사용하면 같은 결과에 6초 정도로 성능이 좋아진 걸 알 수 있다.

Oracle VirtualBox – 가상 시스템 가져오기를 통해, 교육용으로 제공받은 snort.ova 파일을 불러온다. 참고로, *.ova 파일은 가상머신 이미지 파일이다. VirtualBox나 VMware 같은 가상머신 툴에서 이걸 불러오기만 하면, 이미 준비된 환경을 바로 띄워서 사용할 수 있다.

 

리눅스 가상머신이 하나 만들어 졌다.

우선 스냅샷 하나 찍어놓기

 

초기이미지
찍기버튼을 통해 초기 설정을 저장해놓음.
이름은 맘대로

 

설정- Expert 

기본 메모리를 8기가 정도로 넉넉하게 할당한다.

이 일반 메뉴에서 자원 관리가 가능하다.

가상머신 접속정보. 192.168.56.101로 접속하면 됨.

 

putty 실행

 Appearance - change클릭해서 폰트설정을 바꿔준다.

 

Appearance - Colours

두 항목의 색 변경

 

Session

접속정보 입력해주고 Default Settings에 Save

 

버츄얼박스 - 시작 클릭해서 리눅스 start

정상적으로 실행됐다.

 

푸티로 Open

 

리눅스 환경에서 엘라스틱서치 진행ㄱ

yum 설치를 위한 저장소 설정 가이드 :

https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-elasticsearch-with-rpm

 

Install Elasticsearch with RPM | Elastic Docs

The RPM package for Elasticsearch can be downloaded from our website or from our RPM repository. It can be used to install Elasticsearch on any RPM-based...

www.elastic.co

 

다음 내용을 복붙한다.

 

생성

카피한 내용 붙여넣은 후 일부 내용들을 수정후 저장하고 빠져나옴.

 

이제 yum명령어를 이용해서 엘라스틱서치들을 설치할 수 있다.

네트워크에 따라 좀 오래걸릴수도 있음.

 

버전을 입력 안하고 인스톨 명령어를 치면 8점대 버전에서 제일 높은 버전이 나옴.

 

하지만 원하는 버전이 있으므로 yum install elasticsearch-버전명을 입력해 준다.

8.17.4 버전 다운 및 설치
security라고 토큰정보가 뜨는데 메모장이나 어디에 잘 저장해둔다.

 

설치가 완료되면 위치보기

yum install kibana-8.17.4를 입력해서 키바나도 설치. 키바나 같은 경우에는 시간이 더 걸린다.

 

설치하면 자동으로 서비스에 등록이 됨.

하지만 실행은 안되어있다.

 

service elasticsearch start를 입력하여 엘라스틱서치를 실행

다시 status를 확인해보면 running중으로 바뀜

 

이제 아까 그 접속정보로 키바나 접속을 할건데, 키바나 접속정보를 바꿔줄것

vi /etc/kibana/kibana.yml을 열어서 server.host값 변경

저장 후 나가기

 

이제 키바나용 토큰 만들기.

아까 카피해둔 토큰정보 명령어를 사용.

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

키바나용 토큰값이 만들어짐

 

아까 그 문서에 따르면 journal을 써서 키바나가 떨구는 메시지를 볼 수 있다고 한다.

service kibana start를 입력해서 키바나 실행

journalctl -fu kibana 실행

 

마지막줄에 띄워준 주소로 접속 후, 방금 만들어진 토큰을 복붙.

로그인정보는 마찬가지로 아이디는 elasitc 비번은 아까 토큰 명령어와 함께 저장해둔 값을 넣고 로그인

윈도우에서 진행했을 때와 마찬가지로 제일먼저 비밀번호부터 바꿔준다

 

이렇게 리눅스에서도 엘라스틱서치를 설치해봤다. 

shutdown now명령어를 쳐서 종료

다시 윈도우로 돌아와서 설정 바꾸기

 

 

저장후 서비스 재시작

 

여기서 재시작하니 키바나가 실행이 안되었는데, 인증서 관련 에러가 떴다. 

kibana를 지우고 재설치. (어차피 데이터는 다 엘라스틱에 있고 키바나는 보여주기만 하는 것이므로 상관 X)

 

stack monitoring - self monitoring - No, continue  - elasticsearch node 

 

다시 오라클 버추얼 머신으로 와서 스냅샷을 복원 후 start

 

putty로 접속

 

파일 만들기

 

아까와 똑같이 repo파일 만들어주고 저장 및 나가기. 맨위에 조금 짤렸다.....

[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-m

 

이제 마찬가지로 염 명령어 실행 가능

yum install elasticsearch-8.17.4 -y   

-y옵션을 줘서 다운로드 후 자동으로 설치까지

주의할 점. 리눅스는 설치 후 바로 실행하면 안됨. 

 

 

윈도우에서 토큰 생성

 

리눅스에서 윈도우에서 만든 토큰값 입력

 

vi /etc/elasticsearch/elasticsearch.yml

 

서비스 stop 후 다시  start

 

node가 추가된 걸 볼 수 있음

이런식으로 클러스터 추가가 가능.

 

엘라스틱 클러스터를 온전하게 해보려면 최소 3대는 있어야 한다. 그래야 하나가 죽어도 나머지 두대로 온전하게 운영할 수 있다. 

 

윈도우에서 다음과 같이 세팅

 

엘라스틱 서치를 다른 경로에 또다시 압축을 풀어주고, (새로운 엘라스틱서치를 만든 것)

다음과같이 세팅

 

새로 또 토큰 만들기.

 

새로 압축을 푼 엘라스틱서치 bin 경로에 만든 토큰 입력

 

 

오른쪽이  endicies 

저장되어있는 인덱스 표시

노드가 하나였을 때는 상태가 yellow(red일땐 아예 서비스가 안됨)

green은 복제까지 되어있다는 뜻

 

 

name이 헷갈리므로 node-2 로 변경

 

 

클러스터 관리자 역할을 할 노드는 최소 2대는 있어야 한다. 

그래야 왔다갔다 하면서 서로 역할을 수행함.

 

SQLyog 설치 후 continue 이름

 

리눅스 접속정보 입력 후 연결된 화면

 

왼쪽에서 snort 클릭 후, 쿼리를 입력. F5를 누르면 실행

 

jdbc.conf파일을 작성

logstash -f c:\elk\jdbc.conf로 로그스태시로 실행

 

데이터를 잘 가져온 걸 알 수 있다.

 

이런식으로 엘라스틱과 DB연동은 굉장히 간단하다.

DB데이터 조회해서 차트그리기에 굉장히 좋음

 

스플렁크 클러스터링은 다음 자료를 참고하면서 구성했다.

 

 

 

🔚 총 느낀점

5일 동안 Elastic과 Splunk라는 두 가지 로그 분석 툴을 번갈아가며 실습해보면서 각 도구의 개념부터 데이터 수집, 전처리, 시각화, 대시보드 구성까지 하나의 사이클을 직접 경험할 수 있었다.

Elastic은 유연하고 자유로운 느낌, Splunk는 구조화된 인터페이스와 편리한 GUI의 강점이 확실했다.
서로 다른 방향성이지만, 결국 핵심은 '내가 뭘 보고 싶은가???'였다.

툴이 중요한 게 아니라, 데이터에 대한 감각과 문제의식, 그리고 그걸 해석할 수 있는 시선이 더 중요하다는 걸 새삼 느꼈다.

데이터를 그냥 보지 말고, 만져보고, 질감을 느껴보는 연습.
그게 결국 분석의 본질에 더 가까운 일이 아닐까 싶다.