elk fleet서버를 이용하여 전사 서버의 system, web, db로그를 쌓고 있습니다.
단순 로그용도 서버로 cluster 불필요하여 docker 환경으로 구성했습니다.
<설치 참고사이트>
https://github.com/peasead/elastic-container
서버 연동 후 30일 이상의 대량 로그 검색 시 아래와 같이 오류가 발생하여 jvm 옵션 조정 작업을 진행했습니다.
[esaggs] > [parent] Data too large, data for [decode async response] would be [1021554376/974.2mb], which is larger than the limit of [1020054732/972.7mb], real usage: [1021547080/974.2mb], new bytes reserved: [7296/7.1kb], usages [model_inference=0/0b, inflight_requests=0/0b, request=7296/7.1kb, fielddata=63612/62.1kb, eql_sequence=0/0b]
elasticsearch 7점대 버전에서 oom이 발생하거나 검색 지연이 발생하면 jvm.options 파일의 heap 메모리 값을 조정하여 운영했습니다.
elk 가이드 상 8점대 버전에서는 jvm 힙 크기를 자동으로 설정한다고 하지만 실제 운영 시 oom 및 메모리 부족으로 인한 검색 실패가 발생합니다.
관련하여 도커 컨테이너 환경에서 jvm 옵션 조정 작업 내역을 기록하려고 합니다.
1. 현재 jvm 옵션
1) 키바나 Dev Tools 를 활용하여 현재 사용하고 있는 jvm 값 확인
GET _nodes/_all/jvm
-> JVM 조정 이후 스크린 샷
또는 OS 상에서 elastic 프로세스의 -Xms, -Xms값 확인
2) jvm 옵션 조정값 추가 및 컨테이너 재구동
1) elasticsearch 컨테이너 접속 후 heap.conf 파일 생성 및 haep 메모리 값 입력
/usr/share/elasticsearch/config/jvm.options.d/heap.conf
-Xms4g
-Xmx4g
2) 컨테이너 재구동
docker restart ecp-elasticsearch
3) jvm 메모리 값 수정 내용 확인
키바나 dev tools: GET _nodes/_all/jvm
OS 프로세스: ps -ef | grep -i elasticsearch
jvm heap메모리 수정 후 오류 발생했던 검색 시 정상 적으로 출력되고 있습니다.
elasticsearch 8.15 가이드에서 jvm 옵션이 자등으로 조정된다고 하지만 실제 운영 시 메모리
문제가 발생했습니다.
위와 같이 문제 발생 시 jvm 옵션을 수정하여 사용이 필요합니다.
'모니터링' 카테고리의 다른 글
graylog admin 비밀번호 변경 (0) | 2024.07.16 |
---|---|
elk snapshot & restore 테스트 (0) | 2024.07.15 |
zabbix mysql 모니터링 연동 (0) | 2024.02.29 |
zabbix 에이전트 연결 방법 (0) | 2024.02.26 |