EFK 소개
로그 데이터는 현대 소프트웨어 개발 및 운영에서 중요한 부분을 차지하고 있습니다.
제가 EFK 를 사용하게된 이유는 업무를 진행하다가 저희 시스템으로 공격이 오더라고요...
그래서 분석을 하려고 했는데 명령어로만 하려니 몬가 1%부족함을 느껴서 이번에 EFK 스택을 도입하게 되었습니다.
아무튼, 분석을 위한 이러한 로그 데이터를 효과적으로 수집, 저장, 시각화하고 분석하는 것은 기업의 성공과 안정성을 위해 너무너무 중요합니다.
이부분을 해결할 수 있는 EFK 스택은 Elasticsearch, Fluentd, Kibana의 조합으로 이러한 작업을 간편하게 수행할 수 있는 강력한 도구라고 말씀드리고 싶네요.
Elasticsearch
하나, 역할 및 특징
Elasticsearch는 실시간 분산 검색 및 분석 엔진입니다.
즉, 대용량의 데이터를 저장하고 효과적으로 검색할 수 있는 기능을 가지고 있죠.
특히 JSON 문서로 데이터를 저장하며, RESTful API를 통해 데이터에 접근할 수 있다는 점이 좋은것 같고요..
Elasticsearch 는 뛰어난 확장성과 성능을 제공하여 대규모의 로그 데이터도 효과적으로 처리할 수 있는 장점이 있는것으로 개인적으로 생각합니다.
둘. 아래는 간단한 사용 예시 입니다.
# 인덱스 생성
PUT /logs
# 데이터 색인
POST /logs/_doc/1
{
"timestamp": "2024-01-16T12:00:00",
"message": "로그 데이터 예시"
}
# 검색
GET /logs/_search
{
"query": {
"match": {
"message": "예시"
}
}
}
Fluentd
하나, 역할 및 특징
Fluentd는 데이터 수집, 전송 및 로깅을 위한 오픈 소스 플랫폼이라고 머릿속에 넣어두시면 되고요.
json및 어플리케이션 로그등등 다양한 소스에서 로그 데이터를 수집하고 Elasticsearch와 같은 목적지로 전송하는데 사용됩니다.
특히 확장 가능한 플러그인 아키텍처를 통해 다양한 데이터 소스 및 목적지와 통합이 가능하다는 점이 장점이고요.
둘, 아래는 간단한 사용 예시 입니다.
# Fluentd 설정 예시
<source>
@type tail
path /var/log/app.log
tag app.log
format json
</source>
<match app.log>
@type elasticsearch
host localhost
port 9200
logstash_format true
</match>
간단하게 설명드리자면, 위와 같이 설정을 하시면..
app.log 를 tail 로 수집해서 Elasticsearch 로 전달하는 기능을 한다라고 보시면 될것 같네요.
마지막으로 Kibana 입니다.
Kibana
하나. 역할 및 특징
Kibana는 Elasticsearch에서 저장된 데이터를 시각적으로 탐색하고 대화식 대시보드를 구축할 수 있는 시각화 도구입니다. 사용자는 효과적인 대시보드를 생성하여 로그 데이터의 트렌드 및 패턴을 쉽게 이해할 수 있습니다.
Kibana 가 없으면 쉘에서 스크립트와 명령어를 통해서 패턴을 분석해야겠죠..
이노력을 조금이나마 줄여줄 수 있는 것이 바로 Kibana 입니다.
둘. 사용 예시는 아래와 같습니다.
주요 대시보드 구성 아래와 같습니다.
데이터 시각화: 막대 그래프, 원 그래프 등
검색 및 필터링: 특정 시간 범위의 데이터 조회
맺음말
이제까지 EFK 스택에 대해서 간단하게 정리해보았는데요.
한마디로 EFK 스택은 로그 데이터를 효과적으로 수집하고 시각화하는 강력한 도구라고 말씀드리고 싶습니다.
Elasticsearch의 검색 엔진, Fluentd의 데이터 수집 및 전송, 그리고 Kibana의 시각화 기능이 조합되어 운영 및 개발 환경에서 로그 데이터 관리를 효율적으로 수행할 수 있습니다.
저도 또한 EFK 스택을 구축해서 사내에서 효율적으로 잘 사용하고 있습니다.
그리고 이를 통해 시스템의 안정성을 높이고 문제를 신속하게 해결할 수 있습니다.
요즘 공격이 많은 데요.. 해당 공격자에게 대응을 잘하게 해준 EFK 스택 너무나 강추합니다.
오늘의 티스토리는 여기까지고요.
항상 믿고 봐주셔서 감사합니다.
'좋아하는 것_매직IT > 99.업무자동화하기' 카테고리의 다른 글
fluentd 란 무엇인가? 그리고 설치하기 (0) | 2024.01.12 |
---|---|
Python 과 텔레그램 봇을 활용한 네이버 검색결과 공유하기 (0) | 2022.09.02 |
bash 쉘에서 예전에 실행했던 명령들을 한꺼번에 다시 실행하기(feat.fc 명령) (0) | 2022.07.30 |
SMTP 공부해서 내마음대로 이메일보내기.(feat. 업무자동화시리즈01) (0) | 2022.01.25 |