Docker의 Logstash

Dockerui Logstash



Logstash는 다양한 소스에서 로그 데이터를 수집, 처리 및 전달할 수 있는 오픈 소스 데이터 처리 파이프라인입니다.

이 튜토리얼에서는 기본 구성을 사용하여 Docker 컨테이너에서 Logstash를 실행하는 과정을 안내합니다.

요구사항:

튜토리얼을 시작하기 전에 다음 사항이 있는지 확인하세요.







  1. 호스트 머신에 Docker를 설치했습니다(버전 23 이상 권장).
  2. 컴퓨터에 Docker Compose를 설치했습니다.

주어진 요구 사항이 충족되면 튜토리얼을 진행할 수 있습니다.



Logstash 구성 파일 설정

Logstash는 구성 파일을 사용하여 데이터가 수집, 필터링 및 출력으로 전송되는 방법을 정의합니다. 공식 문서를 참조하면 구성할 수 있는 다양한 옵션이 있습니다.



이 예에서는 로그 파일에서 데이터를 수집하고, 일치하는 레코드를 필터링하고, 데이터를 파일로 출력하는 기본 구성에 중점을 둡니다.





'logstash.conf'라는 파일을 생성하고 다음과 같이 구성을 추가합니다.

입력 {
파일 {
경로 => '/var/log/apache/access.log'

시작 위치 => '시작'

Sincedb_path => '/dev/널'

무시_이전 => 0
}
}

필터 {
만약 [메시지] =~ '오류' {
그로크 {
일치 => { '메시지' => '%{COMBINEDAPACHELOG}' }
}
}
}

출력 {
파일 {
경로 => '/var/log/apache/error_logs.log'
}
}

이전 파일은 다음과 같이 구성을 정의합니다.

  1. 입력 섹션 – 입력 섹션은 파일 입력 플러그인을 사용하여 /var/log/apache/access.log에 있는 Apache 로그 파일을 읽습니다.
    • 그런 다음 Logstash가 처음부터 전체 파일을 읽을 수 있도록 시작 부분에 시작 위치를 설정합니다.
    • Sincedb_path – 이 매개변수를 사용하면 값을 /dev/null로 설정하여 Logstash의 Sincedb 추적을 비활성화할 수 있습니다. 이렇게 하면 Logstash가 항상 파일의 시작 부분부터 읽게 됩니다.
    • Ignore_older – 이 매개변수의 값을 0으로 설정하면 Logstash가 로그 파일의 모든 항목을 처리할 수 있습니다.
  2. 필터 섹션 – 필터 섹션에서는 로그 메시지에 ERROR라는 단어가 포함되어 있는지 확인하는 필터 패턴을 정의합니다. 파일에서 보다 정확한 일치 항목을 필터링하기 위해 필터 블록의 조건을 조정할 수 있습니다.
    • 조건이 충족되면 grok 필터를 사용하여 Logstash에 내장된 패턴인 COMBINEDAPACHELOG 패턴을 사용하여 Apache 로그 줄을 구문 분석하여 Apache 로그를 구문 분석합니다.
  3. 출력 섹션 – 이 섹션에서는 일치하는 항목의 출력 형식을 정의할 수 있습니다.
    • 우리의 경우 path 매개변수를 사용하여 /var/log/apache/error_logs.log 파일에 기록합니다.

이는 몇 가지 기본 Logstash 작동을 시연할 수 있는 기본 Logstash 구성을 제공해야 합니다.

제공된 다음 문서 리소스에서 Logstash 파이프라인 생성 및 구성에 대한 자세한 내용을 참조하세요.

https://www.elastic.co/guide/en/logstash/current/configuration.html

Dockerfile 만들기

Logstash 구성을 정의한 후에는 계속 진행하여 컨테이너 실행 방법을 배울 수 있습니다. 'logstash.conf' 파일과 동일한 디렉터리 내에 'Dockerfile'이라는 새 파일을 만듭니다.

이 파일을 편집하고 다음과 같이 항목을 추가하십시오.

docker.elastic.co/logstash/logstash:8.9.2에서

복사 logtash.conf /usr/share/logstash/pipeline/logstash.conf

주어진 예에서는 버전 8.9.2를 사용하여 기본 이미지를 공식 Logstash 이미지로 정의합니다.

그런 다음 생성한 'logstash.conf' 파일을 이미지의 /usr/share/logstash/pipeline/logstash.conf에 복사합니다.

Docker 이미지 빌드

그런 다음 Dockerfile 및 Logstash 구성 파일이 포함된 디렉터리로 이동합니다. 다음 명령어를 실행하여 이미지를 빌드합니다.

$ 도커 빌드 -티 사용자 정의-logstash-이미지 .

Logstash 컨테이너 실행

이제 Docker 이미지를 구축했으므로 다음과 같이 Docker 'run' 명령을 사용하여 Logstash 컨테이너를 실행할 수 있습니다.

$ 도커 실행 -디 --이름 Logstash-서버 사용자 정의-logstash-이미지

이전 단계에서 구축한 이미지를 사용하여 Logstash 컨테이너를 실행해야 합니다.

Logstash 컨테이너 로그 확인

Logstash가 올바르게 실행되고 있는지 확인하려면 다음 명령을 사용하여 컨테이너 로그를 확인할 수 있습니다.

$ 도커 로그 < 컨테이너_이름 >

산출:

결론

이 튜토리얼에서는 사용자 정의 구성 파일을 사용하여 Docker로 실행되는 Logstash 서버를 빠르게 설정하는 방법을 배웠습니다. 이미지 매개변수 및 구성 옵션에 대한 설명서를 확인하는 것이 좋습니다.