Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Filebeat 모듈을 사용한 손쉬운 로그 분석

Filebeat 모듈을 사용한 손쉬운 로그 분석

Elastic{on} 17 이후로 우리는 Elastic Stack의 모든 향후 기능, 특히 새로운 Filebeat 모듈 개념에 대해 흥분해 왔습니다. 일반적으로 Filebeat로 데이터 수집을 시작하려면 Filebeat를 구성하고 Elasticsearch 매핑 템플릿을 생성하고 수집 파이프라인 또는 Logstash 인스턴스를 생성 및 테스트한 다음 해당 데이터 세트에 대한 Kibana 시각화를 생성해야 합니다. Beats 팀은 이제 모듈 개념을 통해 설정 프로세스를 훨씬 쉽게 만들었습니다.

Filebeat 모듈은 이러한 모든 구성 단계를 단일 명령으로 활성화할 수 있는 패키지로 롤업합니다. Filebeat 5.3.0 이상은 mysql, nginx, apache 및 시스템 로그용 모듈과 함께 제공되지만 직접 만들기도 쉽습니다.

Filebeat 모듈은 이제 약 몇 주 동안 사용할 수 있으므로 ObjectRocket 서비스와 같은 비로컬 Elasticsearch 클러스터와 함께 사용하는 방법에 대한 빠른 블로그를 만들고 싶었습니다. ObjectRocket 서비스에서 Elasticsearch 버전 5.4를 출시했으므로 지금 Filebeat 모듈을 시험해보고 새로운 auditd 모듈과 Linux system.auth 파일 세트를 활용할 수 있습니다.

설정

아래 단계는 Elasticsearch 인스턴스용 ObjectRocket 및 당사의 UI를 참조하지만 다른 서비스 또는 자체 클러스터를 위해 충분히 쉽게 수정할 수 있어야 합니다. 또한 이 예에서는 "시스템" 모듈을 사용하지만 다른 모듈을 포함하는 것은 간단합니다.

필요한 것은 Elasticsearch 5.3 이상 인스턴스(일부 이전 5.x Elasticsearch 버전을 시도했지만 제대로 작동했지만 보장할 수 없음), 동일한 버전의 Kibana, Elasticsearch 클러스터에 연결할 호스트 이름, 클러스터에 쓰고 인덱스를 생성할 수 있는 사용자 자격 증명 및 Filebeat 버전 5.3 이상

Elasticsearch 클러스터와 Kibana가 이미 설정되어 있다고 가정하면, 실행 중인 시스템 유형에 상관없이 먼저 Filebeat를 다운로드해야 합니다. 그런 다음 로그를 수집하려는 시스템에서 압축을 풉니다. 이 예에서는 MacOS를 실행하는 Macbook을 사용하고 Elasticsearch 5.4.0 클러스터에 연결하므로 filebeat-5.4.0-darwin-x86_64.tar.gz 패키지를 사용하겠습니다. 해당 아카이브를 추출하면 Filebeat를 설정할 준비가 됩니다.

Filebeat 설정

기본적으로 Filebeat는 로컬 머신의 Elasticsearch 인스턴스에 연결을 시도하고 포함된 filebeat.yml 파일을 사용하여 /var/log/*.log의 모든 로그를 읽으려고 시도하므로 먼저 클러스터를 가리키도록 수정해야 합니다. 다른 탐광자를 제외합니다. ObjectRocket 서비스를 사용하는 경우 클러스터의 특정 호스트 이름을 자동으로 채우는 UI에서 Beats 스니펫을 복사하여 시작할 수 있습니다.

Filebeat 모듈을 사용한 손쉬운 로그 분석

다른 모든 것을 제거하고 사용자 이름/비밀번호를 입력한 후 전체 filebeat.yml 파일은 다음과 같아야 합니다.

div class="강조표시">

output:
  elasticsearch:
    # The Elasticsearch cluster
    hosts: ["https://dfw-xxxx-0.es.objectrocket.com:xxxx", "https://dfw-xxxx-1.es.objectrocket.com:xxxx", "https://dfw-xxxx-2.es.objectrocket.com:xxxx", "https://dfw-xxxx-3.es.objectrocket.com:xxxx"]

    # HTTP basic auth
    username: "elasticsearch"
    password: "supersecretpassword"

그게 다야. 모든 입력이 제거되었으므로 파일에는 Elasticsearch 연결 정보만 포함됩니다. 이 시점에서 또한 컴퓨터에서 Elasticsearch 클러스터에 액세스할 수 있는지, ACL이 추가되는지 등을 확인하세요. 이제 Filebeat를 사용하여 모든 것을 가동해 보겠습니다.

Filebeat 실행

클러스터와 통신하도록 모든 것이 구성되었으므로 기본 위치에서 filebeat.yml을 모두 변경했다면 filebeat 디렉터리에서 다음 명령을 실행하기만 하면 됩니다.

./filebeat -e -modules=시스템 설정

-e는 Filebeat가 syslog가 아닌 stderr에 기록되도록 하고, -modules=system은 Filebeat에 시스템 모듈을 사용하도록 지시하고, -setup은 Filebeat에게 모듈의 Kibana 대시보드를 로드하도록 지시합니다. 기본 대시보드를 Kibana로 로드하기 때문에 처음으로 또는 Filebeat를 업그레이드한 후에 명령의 -setup 부분만 포함하면 됩니다. 여러 모듈을 실행하려면 쉼표로 구분하여 모두 나열할 수 있습니다(공백 없음).

<블록 인용>

참고:Filebeat 5.4.0에는 -setup을 유발할 수 있는 버그가 있습니다. 특정 시스템에서 실패하는 명령의 일부입니다. ulimit를 더 높은 값으로 설정하여 이 문제를 해결할 수 있습니다( ulimit -n 2048 실행 ) 또는 filebeat 5.3.x를 사용합니다.

Filebeat는 이제 제 역할을 해야 합니다. 오류가 표시되지 않는 한 Kibana로 이동하여 확인하겠습니다.

데이터 보기

Kibana에 로그인하면 사용 가능한 새로운 시각화 및 대시보드와 함께 새로운 filebeat-* 인덱스 패턴이 있어야 합니다. "대시보드"로 이동하여 "Filebeat syslog 대시보드"를 엽니다.

짜잔. 시스템 로그에 무언가가 있는 한, 이제 데이터를 멋지게 시각화할 수 있을 것입니다.

Filebeat 모듈을 사용한 손쉬운 로그 분석

참고:Filebeat에 명백한 오류가 없고 Kibana에 데이터가 없는 경우 시스템에 매우 조용한 시스템 로그가 있을 수 있습니다. 일부 데이터를 보려면 날짜 선택 도구를 기본값인 '지난 15분'보다 조금 더 뒤로 설정해야 했습니다.

마무리

이것은 가장 일반적인 사용 사례에 대해 Beats를 훨씬 더 쉽게 사용할 수 있도록 하는 정말 멋진 단계이며 이 예제의 기본 사항은 현재 사용 가능한 다른 모듈로 쉽게 확장할 수 있습니다. 예를 들어 WordPress, Drupal, Magento 등과 같은 많은 웹 앱에는 웹 서버와 일부 mysql이 있습니다. 이 하나의 모듈 세트와 단일 명령으로 웹 서버, 데이터베이스 및 해당 애플리케이션의 시스템 로그에 대한 로그 전달을 한 번에 시작할 수 있습니다.

더 많은 정보를 찾고 있고 이러한 모듈이 어떻게 구성되는지 자세히 알고 싶다면 개발자 문서를 확인하고 Filebeat 설치의 모듈 디렉토리를 살펴보세요. 모듈이 사용하고 있는 채굴자, 파이프라인, 템플릿 및 시각화를 Kibana에서 보고 있는 것과 일치시킬 수 있어야 합니다.