OpenResty Edge™ 日誌收集

我們推薦使用 Filebeat 進行 Openresty Edge 的錯誤日誌和訪問日誌收集。

安裝 Filebeat

在所有 OpenResty Edge Node 機器上安裝 Filebeat 軟體,請參考 Filebeat 安裝文件

配置 Filebeat

以下配置為收集 OpenResty Edge Node 上的日誌併傳送到 Kafka 的簡單示例:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/oredge-node/logs/access.log*
    - /usr/local/oredge-node/logs/error.log*

output.kafka:
  enabled: true
  # fill in the kafka broker address, this can also be multiple broker addresses
  hosts: ["127.0.0.1:9092"]
  topic: edge_node_logs

logging.level: error
# fill in the local host name or IP
name: 127.0.0.1

將以上內容儲存到 /etc/filebeat/filebeat.yml,並啟動 Filebeat 服務,成功啟動後就會將日誌傳送到 Kafka 了。

sudo systemctl start filebeat

驗證日誌

我們可以使用 Kafka 提供的命令列工具 kafka-console-consumer.sh 檢查日誌是否成功傳送。

在安裝了 Kafka 的機器上,執行以下命令 (Kafka 安裝目錄根據實際情況替換),有日誌輸出表示 Filebeat 已經正常工作了。

$ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic edge_node_logs --from-beginning --max-messages 1
{"@timestamp":"2022-12-27T07:06:53.045Z","@metadata":{"beat":"filebeat","type":"_doc","version":"8.5.3"},"message":"127.0.0.1 - - [14/Dec/2022:16:02:36 +0800] test.com \"GET http://test.com/ HTTP/1.1\" 200 22 0.000 \"-\" \"curl/7.61.1\" - - -","input":{"type":"log"},"ecs":{"version":"8.0.0"},"host":{"name":"127.0.0.1"},"agent":{"version":"8.5.3","ephemeral_id":"fd94a28e-91fe-4365-9584-fe6beb258751","id":"e84c2374-3272-430e-bfe6-84ad2b24b845","name":"127.0.0.1","type":"filebeat"},"log":{"offset":0,"file":{"path":"/usr/local/oredge-node/logs/access.log_20221214.160000"}}}