본문 바로가기

OpenSource/ELK

ELK 스택에서 CPU 점유율이 높을때

이전글: 2018/01/10 - [IT/ELK] - Logstash 복수개의 instance 구동하기



최근에 데이터 수집 및 조회를 위해 Elasticsearch, Logstash를 많이 사용합니다.


간단한 설정으로 꽤 효율적인 운영이 가능해서 많이 사용하는 것 같습니다.


가급적이면 각각 다른 장비에 설치해서 사용하면 좋겠지만


여러 이유 때문에(개발 및 테스트 용도, 서버 자원 한계 등) Logstash와 Elasticsearch를 한 서버에 설치해 사용하는 경우도 있습니다.


한 서버에서 Logstash instance 네개와 Elasticsearch를 사용하고 있었는데 최근에 CPU Load average가 굉장히 높이 뛰면서


Elasticsearch가 down되는 현상이 있어서 이슈 공유합니다.


처음에는 Elasticsearch가 down되어서 Elasticsearch의 문제인가 싶어서 여러 설정을 찾아보았지만


근원적인 문제는 Logstash에 있었습니다.


Logstash 설정 파일인 logstash.yml 파일을 보면 아래와 같은 부분이 있습니다.



주석을 잘 읽어보면 pipeline worker의 default 개수가 CPU 코어 개수만큼으로 설정된다고 나와있습니다.


가뜩이나 logstash를 한 장비에서 여러 instance를 사용하면서 각 instance가 CPU 코어 개수 만큼 사용하고 있으니


병렬처리가 제대로 될 리가 없습니다.


pipeline.workers 설정을 장비의 CPU 개수를 참고해 적절히 제한하면서


CPU Load average가 급격히 올라갔던 이슈가 해결되었습니다.




'OpenSource > ELK' 카테고리의 다른 글

Logstash 여러개의 instance 구동하기  (0) 2018.01.10