로컬 서버가 fluentd를 로그 드라이버로 사용하도록 설정된 도커 컨테이너에서 실행되고있다. 나는 도퍼가 자신의 컨테이너에 fluentd, nginx, elasticsearch 및 kibana를 실행하는 파일을 작성했습니다. 그래서 fluentd는 내 서버에서 로그를 가져와 elasticsearch에 전달하고 Kibana에 표시됩니다.해석 로그가 유창하다
제 질문은 새로운 태그를 만들기 위해 fluentd (elasticsearch 또는 kibana의 경우 유창하게는 가능하지 않은 경우)를 구문 분석하여 정렬하고 쉽게 탐색 할 수 있도록하는 방법입니다.
이것은 현재 기바나에 표시되는 로그입니다. 이제이 로그 문자열을 새 태그로 '깨뜨린'싶습니다. 이 경우 :
2017/01/04 13:26:56.574909 UTC (Example deployment.web) [INFO] [GET] /api/device/ 200 10.562379ms
이
version: "2"
services:
fluentd:
image: fluent/fluentd:latest
ports:
- "24224:24224"
volumes:
- ./fluentd/etc:/fluentd/etc
command: /fluentd/etc/start.sh
networks:
- lognet
elasticsearch:
image: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /usr/share/elasticsearch/data:/usr/share/elasticsearch/data
networks:
- lognet
kibana:
image: kibana
restart: always
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_URL=http://localhost:9200
networks:
- lognet
nginx:
image: nginx
ports:
- "8084:80"
logging:
driver: fluentd
networks:
- lognet
networks:
lognet:
driver: bridge
내 fluent.conf 파일 내 고정 표시기 - compose.yml
date: 2017/01/04
time: 13:26:56.574909 UTC
message: (Example deployment.web)
logType: [INFO]
other: [GET] /api/device/ 200 10.562379ms
에 어떤 구문 분석은 앞으로
<source>
type forward
</source>
<match *.*>
type elasticsearch
host elasticsearch
logstash_format true
flush_interval 10s
</match>
단순한, 포함되지
내 시도가 regexp와 함께 여기 logType을 구문 분석하려고합니다. out
<source>
@type forward
</source>
<match *.*>
type stdout
</match>
<filter docker.**>
@type parser
format /(?<logType>\[([^\)]+)\])/
key_name log
reserve_data false
</filter>
다른 구성을 시도했지만 로그를 분석하지 못했습니다.
답변을 이해했는지 확실하지 않습니다. '앞으로 @type 태그 fluentd_key @type의 elasticsearch 호스트 elasticsearch logstash_format 사실 flush_interval 10 초 include_tag_key 사실 tag_key의 fluentd_key 가'난 아직도 내 로그에 대한 사용자 정의 형식을 사용할 수 없습니다. –