엘크 로그 분석 시스템을 다른 시스템과 결합하는 방법
2.1 로그 수집 솔루션을 선택할 때 로그 수집의 유연성이 가장 중요한 요소이므로, 다양한 시스템 및 애플리케이션 유형과 같은 요소의 차이를 고려할 수 있는 logstash가 첫 번째 솔루션입니다. 소스에서 일부 작업을 수행합니다. 예비 로그 전처리. Logstash의 유일한 단점은 jruby를 사용하여 개발되고 Java 가상 머신에서 실행되는 에이전트이기 때문에 이식성이 없다는 것입니다. 물론 다양한 플랫폼에서 사용할 수 있다는 장점도 있습니다. 2.2 로그 집계 및 필터링 Kafka는 이미 Wacai의 핵심 미들웨어 서비스이므로 로그 집계에서는 자연스럽게 Kafka를 사용하는 경향이 있습니다. 요구사항의 다양성으로 인해 로그 필터링 및 처리는 Kafka 구독에 직접 연결될 수 있으며, 조기 경고 또는 데이터를 위해 zabbix를 통해서도 애플리케이션 로그 예외 필터링 및 모니터링과 같이 각 필요에 따라 로그를 사용자 정의할 수 있습니다. 원본 로그의 창고 ELK 기술 스택을 기반으로 정리 및 변환한 후 새로운 데이터 소스에 로드합니다. 2.3 로그 저장을 위해 ELK 기술의 원래 목적인 ElasticSearch를 사용합니다. 예를 들어, 로그와 인덱스는 logstash와 kibana 간에 합의된 인덱스 패턴을 사용합니다. 로그에서 파생된 데이터는 각 당사자가 필요에 따라 로그를 사용하여 선택할 수 있습니다. 2.4 로그 분석 및 쿼리 ELK 기술 스택의 Kibana는 이미 이러한 요구를 매우 잘 충족할 수 있으므로 여기서는 신경쓰지 않겠습니다. 3. 어떤 기술적 문제를 해결해야 합니까? ELK 기술 스택의 처리 링크에 일부 확장 지점을 삽입했기 때문에 일부 문제를 해결하고 명확히 해야 합니다... 3.1 logstash와 kafka의 도킹 ELK 기술 스택에서 Logstash와 Elastic Search는 logstash의 elasticsearch 또는 elasticsearch_http 이러한 출력은 logstash가 kafka에 연결되기 위해 몇 가지 옵션이 있습니다.logstash-kafkalogstash-output-kafkalogstash의 httpoutput 첫 번째 및 두 번째 옵션은 모두 해당 종속성을 logstash로 컴파일하고 패키징해야 합니다. logstash와 함께 서비스 노드를 사용하면 작동할 수 있지만 종속성이 크고 리소스를 많이 소비하며 그다지 다재다능하지 않습니다. 개인적으로 나는 기본적으로 logstash에서 제공하는 http 출력을 사용하는 세 번째 옵션을 선호합니다. http는 더 다양합니다. 그리고 우리 kafka 앞에는 다중 시스템 도킹을 위해 배포된 http 프록시 솔루션이 있습니다. 또한 종속성 관리 및 업그레이드는 서버 측에서 유지되며 각 서비스 노드에 투명합니다. 물론, 유일한 약점은 긴 연결을 기반으로 하는 메시지 전달만큼 효율성이 높지 않을 수 있지만, 향후 병목 현상이 발생하더라도 샤딩을 통해 확장할 수 있다는 점은 당분간 문제가 되지 않습니다. . 3.2 kafka에서 탄력적 검색으로의 데이터 링크 연결 kafka와 es 사이에 로그 필터링 및 처리 시스템을 추가해야 합니다. 이 시스템이 전체 시스템의 가장 큰 힘을 발휘할 수 있는 곳입니다. 전체 시스템의 처리 파이프라인에서 애플리케이션 알람을 제공하는 필터/프로세서, 데이터 웨어하우스 ETL을 제공하는 필터/프로세서 등과 같이 필요에 따라 필요한 필터/프로세서를 추가할 수 있습니다. 하지만 이전에 아무리 많은 작업을 수행했더라도 로그는 결국 ES에 연결되어 저장됩니다.
ELK 기술 스택의 세 가지 간의 연결은 일정한 규범이나 규칙을 따르며, 이 기술 스택의 서비스가 제공하는 특정 기능을 계속해서 재사용해야 하기 때문에 전체 처리 링크에 확장 포인트를 삽입하더라도 , 데이터 저장은 여전히 ELK의 원래 사양과 규칙을 따라야 하므로 Kibana는 분석을 위해 ES에서 로그를 추출하고 변경 없이 표시할 수 있습니다. Logstash가 ES에 저장하는 로그는 일반적으로 다음과 같은 인덱스 패턴을 따릅니다.logstash-{ YYYY.MM.dd} 날짜를 사용하여 인덱스(인덱스)를 정의하면 날짜 범위에 따라 정기적으로 정리할 수 있다는 장점이 있습니다. 참고 더 자세히 설명하자면, 다양한 로그 카테고리에 대해 인덱스 패턴도 해당 카테고리로 가장 잘 분류됩니다. 추가 정보: 입력 파일의 각 로그 줄은 logstash 이벤트와 연결되어 있습니다. 각 logstash 이벤트에는 기본적으로 "message", "@timestamp", "@version", "host", "path "가 연결되어 있습니다. 조건문에서 참조되는 "메시지" 필드에는 로그 라인의 원본 텍스트가 모두 포함됩니다. 로그 처리 시스템은 ES Java 클라이언트를 사용하거나 ES HTTP 서비스를 통해 직접 수집된 로그 인덱스 작업을 수행할 수 있습니다.