본문 바로가기
infra/ELK

[ELK] ELK Stack을 구축해 보자 - Nginx 로그 수집하기

by hjhello423 2019. 12. 26.


이번에는 지금까지 구축한 ELK Stack을 이용하여 Nginx의 로그를 수집하도록 세팅해 보겠습니다.

아래의 내용은 FileBeat의 module을 이용하여 로그를 Elasticsearch로 저장합니다.

따라서 Logstash는 별도의 설정을 하지 않고 서비스도 stop 시킨 상태에서도 동작하게 됩니다.

FileBeat Nginx 로그 수집

FileBeat의 Module을 이용하여 간편하게 nginx 로그를 수집해보려고 합니다.

먼저 FileBeat의 nginx 모듈을 활성화합니다.

sudo filebeat modules enable nginx

이 명령어는 modules.d에 정의된 모듈을 활성화합니다. 여기를 참조하면 다양한 활성화 방법을 참고할 수 있습니다.

 

활성화된 모듈을 확인하려면 아래와 같이 입력하면 됩니다.

enabled/disabled 목록을 확인할 수 있습니다.

sudo filebeat modules list

활성화하였으면 /etc/filebeat/modules.d/nginx.yml 파일을 이용하여 간단한 설정을 할 수 있습니다.

FileBeat Nginx module 여기를 참고하여 간단한 설정을 하면 됩니다.

저는 아래와 같이 로그 파일의 위치를 지정하는 간단한 설정만 하였습니다.

- module: nginx
  access:
    enabled: true

	var.paths: ["/var/log/nginx/access.log"]

  error:
    enabled: true

    var.paths: ["/var/log/nginx/error.log"]

environment설정을 초기화합니다.

sudo filebeat setup -e

 setup명령은 Elasticsearch에 쓰기 위해 권장되는 인덱스 템플릿을 로드하고 Kibana에서 데이터를 시각화하기 위한 샘플 대시 보드(사용 가능한 경우)를 배포합니다. 이 동작은 일회성 설정 단계입니다.

 

-e플래그는 선택 사항이며 표준 오류 대신 syslog에 출력을 보여줍니다.

 

Elasticsearch 출력이 활성화되었다고 가정하면 로그 라인을 구문 분석하는 데 사용되는 수집 파이프 라인은 모듈을 처음 실행할 때 자동으로 설정됩니다. 

Logstash에 이벤트를 보내거나 Beats 중앙 관리를 사용하려는 경우 수동으로 수집 파이프 라인 로드를 참조하여주세요.

systemctl restart filebeat.service

모듈이 올바르게 구성되면 구성에 INFO Harvester started 지정된 각 파일에 대한 메시지가 표시됩니다.

Filebeat를 설치 한 방법에 따라 Filebeat 모듈을 실행하려고 할 때 파일 소유권 또는 권한과 관련된 오류가 표시될 수 있습니다. 자세한 내용  Beats 플랫폼 참조의 구성 파일 소유권 및 권한을

 


modules.d/nginx.yml 파일에서 세팅하거나 명령 창에서 세팅을 재정의 하여 nginx 모듈의 동작을 조작할 수 있습니다.

- module: nginx
  access:
    enabled: true
    var.paths: ["/path/to/log/nginx/access.log*"]
  error:
    enabled: true
    var.paths: ["/path/to/log/nginx/error.log*"]

아래와 같은 방법으로 명령행에서 설정을 지정할 수도 있습니다.

-M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]"

 


이제 Kibana로 접속해서 확인해보면 Nginx의 access로그 정보를 확인할 수 있습니다!

 

 


 

 

반응형

댓글