Fluentd, Elasticsearch, Kibana 공통 구성 요소를 사용한 실시간 로그 분석 플랫폼
Fluentd의 설치는 블로그에서 언급되었는데, 여기에서 주소를 많이 설명하지 않았다.Elasticsearch 및 Kibana 설치에 대한 자세한 내용은 주소를 참조하십시오.
본고는 주로 Fluentd와 Elasticsearch의 연결에 대해 설명하고 Python 스크립트를 만들어서 Python App을 위해 로그를 제출합니다.
Fluentd 구성 파일
type copy
type stdout
output_type json
type elasticsearch
host localhost
port 9200
index_name project
type_name project
flush_interval 5s
logstash_format true
logstash_prefix project
match에 대한 로그는
project.*
stdout와elasticsearch에 각각 출력됩니다.왜 index_name
은elasticsearch의 _index
와는 다른지 모르겠다.오히려 logstash_prefix는 _index
의 접두사이며 현재 날짜와 연결되어 완전합니다_index
.logstash_format은true로 설정되어 있지만 logstash_format 이 매개 변수는elasticsearch에서 Fluentd 로그를 받을 수 없습니다.파이썬 스크립트
# coding: utf-8
import os
import logging
from fluent import handler
custom_format = {
'host': '%(hostname)s',
'where': '%(module)s.%(funcName)s', # 、
'loglevel': '%(levelname)s',
'stack_trace': '%(exc_text)s'
}
logging.basicConfig(level=logging.ERROR)
env = os.environ.get('PROJECT_ENV') if os.environ.get(
'PROJECT_ENV') else 'local'
l = logging.getLogger('project.' + env)
h = handler.FluentHandler('project.' + env, host='127.0.0.1', port=24224)
formatter = handler.FluentRecordFormatter(custom_format)
h.setFormatter(formatter)
l.addHandler(h)
fluent-logger, 설치 명령
pip install fluent-logger
이 필요합니다.해당 파일에서 참조l
, l.info(...)
, l.error(...)
등의 명령을 사용하면 해당 로그를 Elasticsearch에 출력하고 Kibana에 표시할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.