728x90
반응형
다음과 같이 각 서버에 Fluentd
를 설치해 수집하는 서버로 로그를 전송하고
Kafka
를 일종의 버퍼로 하여 ELK
스택이나 다른 것들을 이용할 수 있도록 구성했다.
각 서버에서 tail
로 로그 파일을 읽어서 forward
로 송/수신하고 있었는데
이 과정에서 다음과 같은 에러가 발생하며 누락 혹은 지연되는 경우가 발생했다.
[warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=... chunk="..." error_class=Fluent::Plugin::ForwardOutput::NoNodesAvailable error="no nodes are available"
worker
를 늘려 보기도 하고 버퍼 설정을 바꿔보기도 했지만 위의 에러는 계속 나왔다.
원인이 무엇인지 한동안 못찾다가 UDP 방화벽을 열어줘야한다는 글을 봤다.
그래서 문서를 보니 forward
통신을 할 때 heartbeat
을 보내는 설정이 있었다.
transport
가 기본값이라 tcp
로 바꿔보니 해당 에러가 더이상 나지 않았다.
(아마도 기본값인 경우 udp
로도 전송하는데 막혀있어 에러가 난 것으로 생각된다.)
하지만 1초(기본값)마다 heartbeat
을 보내서 로그 전송 속도가 눈에 띄게 줄었다.
heartbeat
을 굳이 필요없어 none
으로 하니 속도가 빨라진 것을 확인할 수 있었다.
참고 문헌
반응형
'Log' 카테고리의 다른 글
[Log] Airflow 설치 (0) | 2020.03.12 |
---|---|
[Log] Zeppelin 설치 및 Spark 연동 (0) | 2020.03.05 |
[Log] Spark ElasticSearch Parquet (0) | 2020.01.25 |
[Log] Logstash Kafka 연동 에러 해결 (0) | 2020.01.25 |
[Log] Logstash Pipeline 사용하기 (0) | 2020.01.25 |