如何使用Fluent Bit將Python日志發送到OpenSearch

引言

在今日以數據為基礎的世界中,有效的日誌管理對於監控及維護應用程式的表現至關重要。OpenSearch 是一個開源的搜寻與分析引擎,提供了強大的日誌聚合與分析功能。透過與 Fluent Bit 這款輕量级的日誌转发器結合,我們可以有效地將 Python 日誌傳送到 OpenSearch 進行實時監控與分析。本指南將引导您設定這個強大的組合。

應用案例

此設定對於需要實時監控 Python 應用程式的開發者和系統管理員來說非常有益。透過將 Python 應用程式的日誌傳送到 OpenSearch,您能夠分析日誌、創建控制面板、設定警示,並獲得對您的應用程式性能和行為的寶貴洞察。這種方法是可擴展的,適合小本项目及大规模生產環境。

前提準備

在開始之前,請確定您已準備以下前提:

  1. Python 已安裝: 確保您的伺服器或本地電腦上已安裝 Python。
  2. OpenSearch 叢集: 您應該能夠存取一個 OpenSearch 叢集。您可以創建一個新叢集或使用現有的叢集。
  3. Fluent Bit 已安裝: Fluent Bit 應該已 install on the server or machine where your Python application runs.

步驟 1 – 安装 Python

首先,更新您的倉庫並安裝 Python。執行以下命令:

sudo apt update
sudo apt install python3

要核實 Python installation,运行:

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,並包含時間戳、日誌等級和消息格式。

步驟3 – 創建OpenSearch集群

如果您還沒有OpenSearch集群,您可以使用DigitalOcean的命令行工具doctl來創建。運行以下命令:

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

your-region替換為您選擇的地區。 Alternatively, you can use the DigitalOcean control panel to create a cluster manually. For details on how to do that, refer to this guide on create OpenSearch clusters through control panel.

步驟4 – 安装Fluent Bit

要以以下命令安装Fluent Bit:

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

步驟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
  • 路徑:指定app.log的路徑。
  • 主機:用您的OpenSearch主機替換。
  • HTTP_User:您的OpenSearch用戶名。
  • HTTP_Passwd:您的OpenSearch密碼。
  • 索引:日誌將被存儲的索引名稱。

步驟 6 – 運行 Fluent Bit

使用配置文件運行Fluent Bit:

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

步驟 7 – 核验 OpenSearch 中的日誌

為了確保日誌被正確吸入,請查看您的OpenSearch控制面板。您應該看到Fluent Bit转发的日誌。

步驟 8 – 在 OpenSearch 控制面板中創建索引模式

  1. 登錄至 OpenSearch Dashboards 並使用您的凭证。
  2. 展开左側菜單,並點選索引管理管理之下。
  3. 索引菜單中點選創建索引
  4. 輸入索引名稱,根據需要配置其他設定,並點選創建

結論

通過這些步驟,您已建立一個系統,使用 Fluent Bit將 Python 日志傳送至 OpenSearch。這個設定讓您能夠有效地管理與分析日志,幫助您有效地維護和監控您的應用程式。OpenSearch 和 Fluent Bit 提供了強大的解決方案,用於實時日志分析與監控,並適合任何基於 Python 的應用程式需求。

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