반응형
본 게시글은 제가 바보같이 실수를 한 부분에 대해서 설명합니다.
일단 고수분들이 혹시나 게시글을 보실까봐 미리 얘기하자면, filebeat으로 수집되는 로그파일을 vim으로 수정했더니 이전에 보냈던 로그도 다같이 보내져서 왜인지 살펴보았더니 vim으로 새로운 라인을 추가하면안되고, echo 방식으로 추가해야지 추가한 라인만 보내졌음.
일단 filebeat에서 테스트 삼아 로그 파일을 수집되게끔 설정함. filebeat.yaml은 다음과 같이 설정.
- type은 특정 버전이후로는 logs가 지원되지않고 filestream으로 변경됨
- output은 elasticsearch로 설정
filebeat.inputs:
- type: filestream
id: test-jaeyung
enabled: true
paths:
- /home/ubuntu/filebeat/filebeat-8.11.1-linux-x86_64/jaeyung/*.log
ignore_older: 168h
clean_inacitve: 169h
해당 경로에 있던 로그들의 텍스트가 정상적으로 elasticsearch에 보내지는것을 확인.
하지만, 새로운 로그가 추가됐을때 로그가 정상적으로 보내지는지 확인하고싶었는데... 첫번째와 두번째 로그전송에서 동일한 내용이 보내지는것을 확인했다.
순간 얘가 로그 유실량을 고려해서 처음부터 다시 보내나했는데, 이렇게 할경우 지금 로그수집하는곳에서 매우 많은 리소스를 소비할것같았다.
그래서 어떻게하지하면서 filebeat의 inputs configuration을 살펴보았지만... 여전히 도움이 되진않았다.
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
계속해서 찾아본 결과 아래와같은 내용을 발견할수있었고,
결론은, vim이나 vi를 사용해서 파일 로그를 추가할경우에는 시스템상으로 해당파일이 새로생성된것으로 인식이되서 전체 텍스트 로그를 다시보낸다는것이였다.
따라서, 지금과같이 append된 로그만 보내고싶을때는 아래와같은 명령어로 append해줘야 append된 내용만 보내진다는 것이였다.
echo "update3" >> test.log
이렇게하니 정상적으로 append한 로그라인만 보내지는것을 확인했다.
반응형
'Data > Data Engineering' 카테고리의 다른 글
[ELK] k8s EK(Elasticsearch, Kibana) 설치중 만난 오류 (1) | 2024.02.06 |
---|---|
[ELK] k8s에 Elasticsearch(multinode) + Kibana 구축하기 (1) | 2023.12.19 |
[Kafka] 공부-1 (1) | 2023.11.29 |
[ELK] kibana-elasticsearch (WIP) (0) | 2023.04.03 |
[Airflow] Task Was the task killed externally? + 아무런 로그없이 죽는 현상 해결 (0) | 2022.12.01 |