Python Logs를 OpenSearch에 보내기 using Fluent Bit

개 introduction

오늘날 데이터-기반의 applciation을 모니터링하고 유지 관리하기 위해서는 효율적인 로그 관리가 매우 중요합니다. 오픈 소스의 searching 및 분석 엔진인 OpenSearch은 강력한 로그 집계 및 분석 기능을 제공합니다. 그것을 Fluent Bit로부터의 가벼운 로그 转发기와 结合起来하면, Python 로그를 실시간 모니터링과 분석을 위해 OpenSearch로 효율적으로 보낼 수 있습니다. 이 guide는 이러한 강력한 조합을 설정하는 방법에 대해 引导할 것입니다.

Use Case

이 조합은 실시간으로 Python application을 모니터링해야 하는 개발자와 시스템 관리자를 도울 수 있습니다. Python application의 log를 OpenSearch로 보낼 수 있으므로, 로그를 분석하고, 대시보드를 만들고, 이상 상황에 대한 告警을 설정하고, 애플리케이션의 성능과 행동에 대한 가치 있는 洞见를 얻을 수 있습니다. 이 접근法은 스케일ability가 있고, 小编型的 프로젝트에서 대규모의 생산 환경까지에 적용할 수 있습니다.

Prerequisites

시작하기 전에는 다음과 같은 예정의 준비를 한번 더 확인해야 합니다.

  1. Python 설치됨: 서버 또는 로컬 计算机에 Python이 설치되어 있어야 합니다.
  2. OpenSearch クラスタ: OpenSearch クラスタ에 アクセス할 수 있어야 합니다。新しい クラスタを作成したり、既存の 1 つを使用したりできます。
  3. Fluent Bit 설치됨: Python 응용 프로그램이 실행되는 서버 또는 计算机에 Fluent Bit가 설치되어 있어야 합니다。

단계 1 – Python 설치

まず、repository를 更新하고 Python을 설치하십시오。以下のコマンド를 実行하십시오。

sudo apt update
sudo apt install python3

Python 설치를 확인하려면、以下のコマンド를 실행하십시오。

python3 --version

단계 2 – Python 로그 설정

Python 응용 프로그램을 설정하여 파일에 로그 메시지를 기록합니다。以下は 기본 설정입니다。

import logging

# 로그 구성
logging.basicConfig(
    filename='app.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

# サンプル 로그 메시지
logging.info('This is a test log message.')

이 구성은 시간 스탬프, 로그 수준, 및 消息 형식을 포함하여 app.log에 로그 消息를 기록합니다.

Step 3 – OpenSearch クラスタを作成する

OpenSearch クラスタ를 持っていない場合は、DigitalOceanのコマンドラインツール doctl を使用して 1つ 作成することができます。以下のコマンドを実行してください。

doctl databases create opensearch-doks --engine opensearch --region your-region --size db-s-1vcpu-2gb --num-nodes 1

control panel を使用して OpenSearch クラスタを作成する

Step 4 – Fluent Bit のインストール

Fluent Bit をインストールするには、以下のコマンドを使用してください。

curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh

Step 5 – Fluent Bit の設定

fluent-bit.conf 이라는 설정 파일을 생성하세요. 이 파일을 통해 Fluent Bit이 어떻게 로그를 읽고 OpenSearch로 전달할지 정의합니다. 以下은 표시 이昕 구성 예제입니다:

[SERVICE]
    Flush         1
    Daemon        Off
    Log_Level     info

[INPUT]
    Name          tail
    Path          /path/to/your/log/file.log
    Tag           python_logs
    Refresh_Interval 5

[OUTPUT]
    Name          opensearch
    Match         python_logs
    Host          your-opensearch-host
    Port          25060
    HTTP_User     your-username
    HTTP_Passwd   your-password
    Index         your-index-name
    tls           On
    Suppress_Type_Name On
  • Path: app.log의 경로를 지정합니다.
  • Host: OpenSearch 호스트를 대체합니다.
  • HTTP_User: OpenSearch 사용자 이름입니다.
  • HTTP_Passwd: OpenSearch パス워드입니다.
  • Index: 로그가 저장될 인덱스 이름입니다.

Step 6 – Run Fluent Bit

Fluent Bit 설정 파일과 함께 실행합니다:

/opt/fluent-bit/bin/fluent-bit -c fluent-bit.conf

Step 7 – Verify Logs in OpenSearch

로그가 제대로 인gest되는지 확인하기 위해 OpenSearch 대시보드를 확인합니다. Fluent Bit에서 전달되는 로그를 확인해야 합니다.

Step 8 – Create an Index Pattern in OpenSearch Dashboards

  1. LOGIN OpenSearch Dashboards 에 您的 인증 정보로 로그인하십시오.
  2. 왼쪽 사이드 메뉴를 확장하고 Index ManagementManagement 하下车钮에서 클릭하십시오.
  3. Create indexIndexes 메뉴에서 클릭하십시오.
  4. 인덱스 이름을 입력하고 필요한 다른 설정을 조정하고 Create를 클릭하십시오.

Conclusion

이러한 단계를 따르면, Fluent Bit를 사용하여 OpenSearch로 Python 로그를 보낼 수 있는 시스템을 설정할 수 있습니다. 이 구성은 로그를 효율적으로 관리하고 분석하는 것을 도울 수 있으며, 응용 프로그램을 안정적으로 유지하고 모니터링할 수 있습니다. OpenSearch와 Fluent Bit를 사용하면, Python 기반의 어떤 응용 프로그램의 실시간 로그 분석과 모니터링을 위한 강력한 솔루션을 사용할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/send-python-logs-to-opensearch-using-fluentbit