2013-06-09 4 views
1

나는 fluentd를 사용하고있는 프로젝트를 연구 중이다. 아마도 in_tail을 사용하여 실시간으로 nginx 액세스 로그를 구문 분석해야합니다. 그러나 로그 회전이 발생할 때 문제가 발생합니다.fluentd logging nginx realtime

이 시나리오에서 fluentd는 DAY1 23:59:00까지 꼬리를 완료합니다. 다음 예정 실행 시간은 2 분입니다. 그러면 DAY2 01:01:00에 다시 실행됩니다. 한편 nginx 액세스 로그는 회전되었습니다 (파일은 잘려 버렸을 가능성이 큽니다). 분당 1000 개의 로그 항목이 있다고 가정 해보십시오. 유동 후에 DAY1의 마지막 순간을 어떻게 유추 할 수 있습니까? 아무도 내게 몇 가지 포인터를 줄 수 있습니까?

답변

0

Fluentd의 in_tail은 해당 로그 회전 양을 따라 잡지 못합니다. 대신 nginx Fluentd 모듈을 사용하는 것이 좋습니다.

+0

nginx Fluentd 모듈은 로그 회전 및 디스크 공간 정리 문제를 해결합니까 ?? – Himanshu

1

는 Fluentd에는이

http://docs.fluentd.org/articles/in_tail rotate_wait previus 확인 후 업데이트됩니다 너무 경우 회전 된 파일에서 데이터를 읽을 수 있습니다

in_tail 실제로 수행이 좀 더 tail -F 자체보다. 파일을 회전 할 때 일부 데이터는 새 파일이 아닌 이전 파일에 쓸 필요가 있습니다.

in_tail은 새 파일로 완전히 전환되기 전에 이전 파일에 대한 참조를 유지 한 채 (회전 한 후에도) 잠시 동안이를 유지합니다. 이렇게하면 이전 파일에 지정된 데이터가 손실되는 것을 방지 할 수 있습니다. 기본적으로이 시간 간격은 5 초입니다.

rotate_wait 매개 변수는이 시간 간격을 초 단위로 나타내는 단일 정수를 허용합니다.