티스토리 뷰
🟩 Filebeat란?
데이터 수집만을 위한 경량화된 모듈
원래 ELK 스택 중 하나인 logstash를 데이터 집계 및 보관, 전송에 사용했으나
위 기능 외에도 원하는 형태로 입출력을 담당해 오버헤드(특정 기능을 수행하기 위해 추가로 사용되는 컴퓨터 자원)가 컸음
이를 해결하기 위해 Wazuh에서는 Filebeat를 사용하도록 가이드되고 있음.
아래 내용(1번~마지막까지) 모두 Master, Worker 노드마다 모두 수행해야 한다.
🟩 Filebeat 설치 및 설정
1. Filebeat 설치
Filebeat 설치 후에는 /etc/filebeat 경로가 생성된다.
soya@wazuh-master-node:~# apt-get -y install filebeat
2. Filebeat config 파일 다운로드
wazuh의 filebeat.yml 파일을 curl로 가져와서 /etc/filebeat/filebeat.yml로 저장
soya@wazuh-master-node:~# curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.6/tpl/wazuh/filebeat/filebeat.yml
3. /etc/filebeat/filebeat.yml에 hosts 변경
이 파일은 filebeat를 통해 서버에 전달해야 할 데이터와 indexer의 정보가 담겨있다.
hosts를 wazuh indexer가 설치된 IP로 변경,
만약 multi indexer node라면 hosts: ["indexer-IP-1:9200", "indexer-IP-2:9200"] 과 같이 나열해서 작성
특히 아래 부분은 filebeat가 alerts 데이터(/var/ossec/logs/alerts/alerts.json)만 indexer로 전달한다는 내용이다.
alerts는 wazuh에서 설정한 rule을 위반한 사항에 대한 알림이며,
archives는 rule 위반 여부와 무관한 모든 이벤트이다.
4. Filebeat keystore 생성
인증 정보를 안전하게 저장하기 위해 keystore를 생성하고
admin이라는 입력을 filebeat keystore의 username, password라는 키에 저장하는 과정
soya@wazuh-master-node:~# filebeat keystore create
soya@wazuh-master-node:~# echo admin | filebeat keystore add username --stdin --force
soya@wazuh-master-node:~# echo admin | filebeat keystore add password --stdin --force
5. wazuh indexer를 위한 alerts template
wazuh alerts template을 가져오고 그룹과 others에 읽기 권한 부여
soya@wazuh-master-node:~# curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.6/extensions/elasticsearch/7.x/wazuh-template.json
soya@wazuh-master-node:~# chmod go+r /etc/filebeat/wazuh-template.json
/etc/filebeat/wazuh-template.json의 내용은 아래와 같고, indexing을 포함한 여러 형식을 정의한다.
실제로 wazuh dashboard에서 확인 가능한 단일 이벤트(wazuh 공식 용어로는 document)의 template과 동일하다.
즉 filebeat -> indexer node -> dashboard(kibana)의 과정에서 전달할 정보의 형식을 정의한다고 보면 된다.
6. Wazuh 모듈 설치
Filebeat에 필요한 wazuh 모듈(gzip 파일)을 가져와 /usr/share/filebeat/module 디렉터리에 압축 해제
soya@wazuh-master-node:~# curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module
7. 서버에 Filebeat 인증서 배포
먼저 서버의 node 이름을 작성해야 한다. 예를 들어 NODE_NAME=wazuh-master-node이다.
soya@wazuh-master-node:~# NODE_NAME=server-node-name
wazuh-certificates.tar를 이동시켰던 폴더(위 포스트의 5번 참고)에서 아래 명령어를 수행해야 한다.
soya@wazuh-master-node:~# mkdir /etc/filebeat/certs
soya@wazuh-master-node:~# tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
soya@wazuh-master-node:~# mv -n /etc/filebeat/certs/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
soya@wazuh-master-node:~# mv -n /etc/filebeat/certs/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
soya@wazuh-master-node:~# chmod 500 /etc/filebeat/certs
soya@wazuh-master-node:~# chmod 400 /etc/filebeat/certs/*
soya@wazuh-master-node:~# chown -R root:root /etc/filebeat/certs
8. Filebeat 서비스 시작
드디어 서비스 시작이다.
soya@wazuh-master-node:~# systemctl daemon-reload
soya@wazuh-master-node:~# systemctl enable filebeat
soya@wazuh-master-node:~# systemctl start filebeat
9. 서버 Filebeat <-> 서버 연동 확인
root 권한으로 아래 명령어를 수행한다.
soya@wazuh-master-node:~# filebeat test output
결과가 아래처럼 잘 출력되면 성공
elasticsearch: https://192.168.15.132:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 127.0.0.1
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.10.2
'Wazuh > 설치 및 기본 구조' 카테고리의 다른 글
Wazuh Cluster 구축 - 6. 다중 노드 환경에서 Master/Worker 클러스터 연동 (0) | 2024.01.13 |
---|---|
Wazuh Cluster 구축 - 5. Wazuh dashboard 설치 및 설정 (1) | 2024.01.13 |
Wazuh Cluster 구축 - 3. Wazuh indexer 설치 및 설정 (1) | 2024.01.12 |
Wazuh Cluster 구축 - 2. Wazuh SSL 인증서 생성 (0) | 2024.01.11 |
Wazuh Cluster 구축 - 1. Wazuh 서버 설치(apt 저장소, Wazuh 패키지) (2) | 2024.01.11 |
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요