실습내용

IIS에서 웹서버 로그를 읽어서 분석서버(같은 랜 네트워크 우분투기반)의 kafka로 전송한다.

 

filebeat는?

filebeat는 ELK로 유명한 Elastic에서 제공하는 경량 로그 수집기이다.

같은 회사 Logstash와의 차이는 후자는 수집뿐 아니라 처리와 변환을 수행가능하다.

filebeat는 그러한 처리 변환 기능을 Flink등 별도의 실시간 로그처리 시스템에 맡기는 구조.

Java가 아닌 Go언어 기반으로 작성됨(Logstash는 Java)

 

로그수집방식은?

기본적으로 모니터링할 폴더를 지정하고, 그안에 생기는 로그들을 라인단위로 읽어서 kafka나 ElasticSearch쪽에 보내는 구조.

 

inputs방식 vs modules 방식

filebeat에는 2가지 설정법이 존재한다.

inputs방식: 일반적인 로그에 대해서 지정하는 방식. 어떤 로그도 가능하여 범용성이 좋다.

modules방식: Apache, Nginx, MySQL등 널리 알려진 특정한 로그에 대해서 수집하는 방식. 해당 로그형식에 대한 사전 구성된 설정을 제공하여 좀더 적합도가 높다.

이번 프로젝트에서는 전자를 사용했다. (후자는 시도했는데 뭔가 잘 안됨)

 

IIS가 돌 고 있는 윈도우 서버에 filebeat 설치하기

여기에 가서 window zip을 고른후 c:\program files\filebeat폴더에 풀어준다.

filebeat.yml을 아래와 같이 수정하여, IIS로 부터 로그를 분석하고, kafaka로 전송하도록 설정한다.

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - c:\inetpub\logs\LogFiles\W3SVC1\u_ex23*
  harvester_limit: 1
  
output.kafka:
  enabled: true
  hosts: ["192.168.0.20:9092"]
  topic: "iis_log"

관리자권한으로 PowerShell 프롬프트를 열고, 다음 명령어를 실행해서 윈도우 서비스로 등록하여 재부팅시에도 실행되도록 만들자.

PS > cd 'C:\Program Files\Filebeat'
PS C:\Program Files\Filebeat> .\install-service-filebeat.ps1

# 다음 커맨드까지 해야 서비스에 등록된다(리눅스에서 systemctl start 와 비슷한 역할)
Start-Service filebeat

# 상태 확인은 다음으로..
Get-Service filebeat

 

 

 

트러블슈팅

PowerShell에서 스크립트 실행이 안되는 경우 아래처럼 정책설정을 해준다.

Set-ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1
# 또는
Set-ExecutionPolicy Unrestricted -Scope Process
# 후자는 모든 프로세스를 허용하는 구조로 돌려놓으려면 아래 커맨드 실행

Set-ExecutionPolicy Default -Scope Process

 

kafka로 로그전달이 안될때,

가장 먼저 확인할 것은 아래처럼 telnet등으로 kafka쪽 서버 9092포트로 접속되는지 확인

telnet 192.168.0.20 9092

 

다음처럼 host등록이 필요한 경우가 있었다.

(설정파일에 IP로 설정했지만 어느순간 hostname으로 변경된 다음 못찾는다고 나옴;)

Windows에서의 호스트 파일 경로: C:\Windows\System32\drivers\etc\hosts
Linux에서의 호스트 파일 경로: /etc/hosts

127.0.0.1   localhost
::1         localhost

# 추가된 매핑 정보
192.168.0.20 sevityubuntu

위처럼 192.168.0.20과 sevityubuntu라는 호스트명을 매핑

 

filebeat를 콘솔에서 실행하고 로그를 보려면 다음처럼 하면 된다.

PS C:\Program Files\Filebeat> .\filebeat -e

 

반응형

'Data Engineering' 카테고리의 다른 글

flink Table API를 사용한 실시간 Reporting샘플  (0) 2023.10.28
flink  (1) 2023.10.28
Spark, Flink를 사용한 실시간 스트림 분석  (0) 2023.08.02
Apache Flink 설치  (0) 2023.08.02
kafka Consume  (0) 2023.08.02

+ Recent posts