Filebeat에서 PostgreSQL 로그를 Elasticsearch로 보내기

소개



Filebeat에는 PostgreSQL 로깅을 위한 모듈이 처음부터 함께 제공되며 모듈을 활성화하기만 하면 됩니다.

환경



사용한 환경은 다음과 같습니다.
  • CentOS 7.5
  • Elasticsearch 7.8
  • Kibana 7.8
  • Filebeat 7.8

  • ElasticStack 7.8 환경 구축 」로 구축한 환경을 이용하고 있습니다.

    Filebeat 설정



    PostgreSQL 로깅을 위한 모듈을 활성화합니다.
    # filebeat modules enable postgresql
    

    PostgreSQL 로그용 모듈의 구성 파일은 다음 파일입니다.
    ※ 앞의 명령으로 postgresql.yml.disabled에서 postgresql.yml로 변경된 것 같습니다.
  • /etc/filebeat/modules.d/postgresql.yml

  • 파일은 아래와 같이 PostgreSQL 로그의 경로를 환경에 맞추어 수정합니다.
    - module: postgresql
      log:
        enabled: true
        var.paths: ["/data/log/postgresql-*.log"]
    
    

    다음으로 Kibana에 대한 샘플 대시보드를 만들려면 다음과 같이 "setup.dashboards.enabled"를 "true"로 설정합니다.
    다른 Elasticsearch에 출력하도록 설정하고 있습니다.
    ※수정 개소만 발췌

    filebeat.yml
    # vi /etc/filebeat/filebeat.yml
    
    setup.dashboards.enabled: true
    
    output.elasticsearch:
      hosts: ["localhost:9200"]
    

    또한 setup 명령을 사용하여 Kibana에 대한 샘플 대시 보드를 만들 수 있습니다.
    # filebeat setup
    

    Kibana는 다음 샘플 대시보드를 생성합니다. 다른 모듈에 대한 대시보드도 생성됩니다.
  • [Filebeat PostgreSQL] Overview ECS

  • 그 밖에도 PostgreSQL용으로는 Query Durations 등을 표시할 수 있는 [Filebeat PostgreSQL] Query Duration Overview ECS라는 대시보드도 있었습니다.

    마지막으로 Filebeat을 실행합니다.
    # systemctl start filebeat
    

    Kibana에서 시각화



    Kibana에서 PostgreSQL 로그용 대시보드를 선택하면 다음과 같이 표시됩니다.



    참고


  • Quick start: modules for common log formats
  • PostgreSQL module
  • 좋은 웹페이지 즐겨찾기