elastic 7버전에서는 filebeat를 client 서버에 설치하고 elasticsearch 서버로 연동하여 로그 수집했습니다.
elastic 8버전을 사용하면서 로그 수집 서버를 업그레이드 하면서 elastic에서 권고하는 elast agent + fleet 방식으로
사용하고 있으며 신규 서버 연동이 필요하여 연동 방법을 정리합니다.
사전 준비 내용
- elastisearch, kibana, fleet서버 설치 필요
- 방화벽 허용 필요
client ip → fleet ip, 8220 port
client ip → elasticsearch ip, 9200 port
fleet 서버 사용의 장점은 중앙관리 방식으로 client서버에 일일이 접속하여 설정할 필요 없이 fleet 서버에서 정책을 생성하고 배포가능하다는 점입니다. 그리고 다수의 client서버의 상태를 모니터링할 수 있어 연동 오류를 확인할 수 있습니다.
filebeat는 물론 대시보드를 만들어 상태를 체크할 수 있겠지만 다수 서버 사용 시 연동 오류 로그 수집 여부를 확인할 없는 부분이 단점이었습니다.
기본적인 ubuntu 서버에 elastic agent 를 설치하고 fleet 서버와 연동하는 방법입니다.
- elasticsearch, kibana, fleet 서버는 https://github.com/peasead/elastic-container elastic container project git hub를 통해
손쉽게 설치하여 사용하고 있습니다.
1. add intergrations
kiban 접속 후 management 항목에서 'ingergrations' 선택하고 system 검색합니다.
system을 선택하면 intergration 구성 창이 나옵니다.
- collect log from system instances (수집 시스템 로그 path)
- collect metrics from sytem instances (서버 리소스 메트릭 수집)
활성화 합니다.
cahges defaults를 수집 영역에 대한 상세한 설정도 가능합니다.
ex)
agent policy name 입력하고 하단에 'save and continue' 누릅니다.
아래와 같은 창이 나오면 'Add Elastic Agent to your hosts' 선택합니다. 물론 나중에 Elastic agent 추가 작업도 가능합니다.
elastic agent 설치 및 fleet서버 연동 가이드 창이 나옵니다.
client 서버에 접속하여 설치 명령어를 입력합니다. elastic 권고사항은 tar 파일 사용입니다.
- 외부 방화벽 오픈이 필요하며 내부 서버의 경우 사전에 elastic agent 다운로드 후 서버에 업로드 해야합니다.
Y를 입력하면 설치 됩니다.
[참고] SSL 인증서 적용이 안된 경우 '--insecure' 문구를 추가해야 합니다.
설치가 완료되면 clinet 서버와 fleet서버간 연동이 완료됩니다
키바나에서 management → fleet에 접속하면 agent 상태를 확인할 수 있습니다.
초기 연동시에 agent logging level 이 info로 설정되어 있어 과도하게 로그 발생 및 수집 되기 때문에 error 로그 레벨을 조정합니다. (선택사항)
fleet →해당 agent 선택 후 → logs 메뉴 선택 하단에 Agent logging level 'error' 선택하고 Apply cahnages 선택
이제 로그수집이 잘 되는지 확인합니다.
키바나에서 Analytics → Discover 메뉴에서 Data View 선택에서 logs-* 선택합니다.
다수의 서버가 있을 경우 host.name으로 필터링하여 수집된 데이터를 확인합니다.
intergrations 메뉴에는 다양한 다양한 어플리케이션 연동 방법 제공되고 있으며
저는 system과 db, web서버의 로그를 수집하여 대시보드를 만들어 다양한 용도로 활용하고 있습니다.