fluentd에서 [error]: exec failed to emit error="queue size exceeds limit" error_class="Fluent::BufferQueueLimitError" tag="google.plus" 이라는 에러가 발생한다면,
버퍼 설정이 어떻게 되어 있는지 확인한다.
type설정만 forward로 되어 있다.
type forward
flush_interval 10s
forward 설정이 기본 memory기반이고 기본적으로 큐 크기가 64, 청크 크기는 8mb(큐에 데이터 쌓는 사이즈)인데,
flush 간격 10초 동안 생성된 로그가 큐 크기를 넘어섰다.
https://docs.fluentd.org/v0.12/articles/out_forward#buffer_queue_limit,-buffer_chunk_limit
buffer_queue_limit, buffer_chunk_limit
The length of the chunk queue and the size of each chunk, respectively. Please see the Buffer Plugin Overview article for the basic buffer structure. The default values are 64 and 8m, respectively. The suffixes “k” (KB), “m” (MB), and “g” (GB) can be used for buffer_chunk_limit.
memory의 제약 사항이 있기 때문에 임시파일을 생성해서 bulk로 flush하는 형태를 사용하면 된다.
buffer_type file
buffer_path /var/log/td-agent/buffer/fluentd.buffer
buffer_chunk_limit 16m
buffer_queue_limit 128
***
buffer_type을 주지 않으면 메모리 기반이고, 저장 용량이 작기 때문에 로그 내용이 drop 될 수 있다.
'Cloud' 카테고리의 다른 글
[링크] 오픈스택에서 VM 생성후 스크립트 실행할 때 사용되는 cloud init /user data (0) | 2017.11.01 |
---|---|
[링크] 쿠버네티스 vs 메소스 마라톤 요즘 트렌드 (0) | 2017.11.01 |
[etcd] etcd 기능 (간단한 DML, 백업, 복구) (0) | 2017.10.16 |
[openstack] nova cli 공부 (0) | 2017.10.13 |
[openstack] ceph DR (disaster recovery) (0) | 2017.10.12 |