firelens를 사용한 로그 분할 및 모니터링 처리

■1~3회의 내용을 재설계한 기사를 썼습니다.
FireLens/fluentbit 구성 검토 및 리노베이션

소개



최근에 FireLens의 기능을 선택했습니다.
fluentbit의 사용자 정의 이미지를 만들고 FireLens에 연결할 때까지 기능 조사를 수행했습니다.
첫 번째 기사입니다.

두 번째 로컬에서 datag/S3로 데이터를 전송할 수 있는 docker 이미지 만들기

세 번째 Firelens에서 datag/S3로 데이터를 전송할 수 있는 docker 이미지 만들기

FireLens 구현 샘플



개요



VPC 내에서 실행되는 웹 애플리케이션의 EC2 인스턴스를 fargate화하고 싶다는 이야기가있었습니다.
개수에 수반해, fargate 컨테이너를 스테이트리스로 하기 위해, 로그의 관리 방법이 화제에 올랐습니다.

또, 감시 업무를 내제화하고 싶다는 요구도 있었기 때문에, 로그의 검출 시스템도 검토했습니다.

구성도


  • A:액세스 로그, B:오류 로그, C:응용 프로그램 로그의 세 종류를 S3에 저장합니다.
  • B, C만 로그 감시를 실시해, 특정의 요건을 만족했을 경우, slack에 경보를 알립니다.
  • 갑작스런 컨테이너 파괴에 대해 로그가 손실되지 않도록 설계 (스테이트리스)



  • 검토한 내용



    Firelens,FluentBit,datadog를 조합하여 검토하게 되었습니다.

    FireLens



    FireLens는 ECS 컨테이너의 표준 출력을 fluentd/fluentbit에 쉽게 전송할 수 있는 기능입니다.
  • 간단한 전송이라면, JSON의 설정만으로, 자동으로 fluentd의 컨테이너를 기동해, 전송해 줍니다.
  • 복잡한 설정도 전용 설정 파일을 작성하면 가능합니다.
  • 표준의 추가 플러그인을 사용하고 싶은 경우는, 커스텀 한 fluentd/fluentbit 의 컨테이너를 작성하면, 가능합니다.


  • Fluent Bit



    Firelens 기사는 Amazon Kinesis Data Firehose 또는 Amazon CloudWatch Logs와
    제휴 기사를 많이 볼 수 있지만,
    bigquery나 azure 등, 편입 output plugin에의 출력도 가능합니다.

    Amazon/aws-for-fluent-bit (fluentbit v1.3.2)
    htps : // 후 b. 도 c r. 코 m / r / 아마 존 / 아 ws - f r f fen t-t / t / gs
    fluentbit output plugin
    htps : // / cs. f 엔 t 비 t. 이오 / 마누아 l / 오우 tpu t
    v1.2.0부터 지원되는 datag를 사용하기로 결정했습니다.

    fluentd에서도 유사한 기능을 구현할 수 있습니다.
    컨테이너 비용을 생각하고 경량 fluentbit를 선택했습니다.

    datadog



    htps : // 어 p. 다만 ghq. 이 m
    클라우드 감시 툴이지만, 기능의 하나로서 로그 감시 기능(datadog logs)이 있습니다.
    원래 사용 경험도 있어, 로그의 정형 기능(pipeline)이나, 리얼타임 경고 기능
    S3에 업로드 기능도 있어 요건을 충족시킬 것 같았습니다.

    S3에 업로드



    datadog에는 S3에의 업로드 기능이 있어, 로그를 전종 정리해 datadog로 관리하는 방안도 있었습니다만
    액세스 로그의 레코드 수가 매우 많아 datadog를 통해 엄청난 비용이 들 수 있습니다.
    액세스 로그만은 datagg의 감시를 통하지 않고, fluentbit에서 s3에 직접 업로드하기로 했습니다.

    실현 가능한 플러그인이 존재했지만 표준 fluentbit 컨테이너에는 탑재되어 있지 않기 때문에
    사용자 정의 fluentbit 컨테이너를 만들어야했습니다.
    htps : // 기주 b. 코 m / 코 s도 0920 / f

    구현 절차


  • 로컬에서 datag/s3로 데이터를 전송할 수있는 docker 이미지를 만듭니다.
  • 만든 docker 이미지를 바탕으로 firelens에서 작동하도록 조정합니다.

    그리고 2회 정도 기사를 써 정리하려고 생각하므로, 시간이 완성되는 대로 갱신 하겠습니다.
  • 좋은 웹페이지 즐겨찾기