이전 글
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK)
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK)
Logstash란?
실시간 파이프라인 기능을 갖춘 오픈소스 데이터 수집 엔진이다. 수집한 데이터를 정제하고 저장소에 전달한다.
로그스태시(Logstash) 이벤트 처리 파이프라인은 입력(input), 필터(filter), 출력(output)의 실행을 조율한다.
Logstash 파이프라인의 각 입력 단계는 고유한 thread에서 실행된다. Input은 메모리 또는 디스크에 위치한 중앙큐에 이벤트를 기록한다. 각 파이프라인 worker thread는 이 큐에서 일괄 이벤트를 가져와 구성된 필터를 통해 이벤트 일괄 처리를 실행한 다음, 필터된 이벤트를 Output으로 전달한다.
파이프라인 단계(입력 → 필터 및 필터 → 출력) 사이에서 이벤트를 버퍼링하기 위해 Memory queue를 이용한다. Memory queue는 데이터를 메모리에 일시적으로 보관하는 구조를 말한다. Memory queue는 , 디스크에 저장하는 것에 비해 처리 속도가 빠르고, 일시적인 데이터를 저장하는데 도움된다. 하지만 만약 Logstash가 정상적으로 종료되지 않았을 때 (에러 발생 시) 메모리에 저장된 이벤트가 손실될 수 있다. 이를 방지하기 위해 이벤트를 디스크에 저장하도록 설정할 수 있다.(Persistent queues)
Logstash 구성
- Filebeat로부터 로그 데이터 Input 받기
- 데이터 정제하기
- elastic search에 전달하기
Logstash 설치
curl -L -O <https://artifacts.elastic.co/downloads/logstash/logstash-8.13.2-linux-x86_64.tar.gz>
tar xzvf logstash-8.13.2-linux-x86_64.tar.gz
Structure of a pipeline
아래의 구조로 conf 파일에 pipeline을 정의할 수 있다.
# This is a comment. You should use comments to describe
# parts of your configuration.
input {
...
}
filter {
...
}
output {
...
}
pipeline.conf 파일 생성
- Input : filebeat에서 로그 데이터를 입력받기 때문에, 관련된 설정을 추가해준다.
- Output : 입력받은 데이터를 출력하고, Elasticsearch로 전달한다.
- hosts : Elasticsearch 에 전달할 hosts들
- index : Elastic search에 로그를 저장할 인덱스
- ssl_enabled : Elastic search와 통신할 때, SSL을 적용해뒀기 때문에 true로 설정
- ssl_certificate_authorities : SSL 보안 적용시 필요한 인증서 파일
input {
beats {
port => "5044"
}
}
output {
stdout { codec => rubydebug }
elasticsearch{
hosts => ["<https://localhost:9200>"]
index => "인덱스"
ssl_enabled => true
ssl_certificate_authorities => 'ca.pem'
user => '유저'
password => '비밀번호'
}
}
실행
bin/logstash -f ./config/pipeline.conf --config.reload.automatic
- logstash 프로그램을 실행
- -f ./config/pipeline.conf : 구성 파일(pipeline.conf) 경로 지정
- --config.reload.automatic : 설정 파일의 변경 사항을 자동으로 감지하여 다시로드
Elastic search 조회
해당 인덱스에 정상적으로 로그 데이터가 들어갔는지 확인하기 위해 조회한다.
curl -X GET -u 유저:비밀번호 "<https://localhost:9200/인덱스/_search?q=*&pretty>" --cacert ca.pem
+) filter 적용
https://gani-dev.tistory.com/121
'개발일지 > ELK' 카테고리의 다른 글
아파치 로그 모니터링 시스템 구축하기 - Elasticsearch(ELK) (1) | 2024.04.26 |
---|---|
아파치 로그 모니터링 시스템 구축하기 - Logstash filter (ELK) (1) | 2024.04.26 |
아파치 로그 모니터링 시스템 구축하기 - Filebeat(ELK) (0) | 2024.04.25 |
아파치 로그 모니터링 시스템 구축하기 - 개요(ELK) (0) | 2024.04.25 |
꾸준히 기록할 수 있는 사람이 되자 !