Elasticsearch가 전체 텍스트 검색에 유용하다는 것은 알고 있지만 로그 분석(예: nginx 로그)과 관련하여 grep(tail, awk 등 사용)보다 Elasticsearch를 사용하면 어떤 이점이 있나요?
나는 종종 로그를 살펴보고 몇 가지 키워드를 찾으려고 노력합니다. grep을 사용하면 쉽습니다. Elasticsearch를 사용하면 grep에 비해 설정에 대한 투자 및 학습 곡선이 엄청납니다. 그래서 "문제"를 겪을 가치가 있는지 궁금합니다.
어떤 상황에서 grep이 실패하고 elasticsearch가 빛을 발합니까?
답변1
를 사용하면 grep
색인이 없으므로 명령은 무언가를 검색하려고 할 때마다 모든 로그를 읽어야 합니다. 로그 수가 많으면 시간이 오래 걸리고 CPU 리소스를 많이 사용할 수 있습니다.
Elasticsearch를 사용하면 메시지가 도착할 때 인덱싱되므로 실제 검색을 더 적은 CPU 리소스로 더 빠르게 수행할 수 있습니다. Elasticsearch에는 grep
단독으로는 수행할 수 없는 다양한 분석 기능도 포함되어 있습니다 .
이는 주로 규모의 문제입니다. 기본적으로메가바이트grep
다른 명령줄 도구를 사용하여 로그를 처리하는 것은 쉽지 않습니다. 당신이 가지고 있다면기가바이트로그를 검색하는 것은 grep
느리고 비효율적이지만 미리 계획을 세우면 가능합니다. 그리고테라바이트로그를 합리적인 방식으로 처리하려면 Elasticsearch와 같은 것이 반드시 필요합니다.