溫馨提示×

CentOS Filebeat日志格式轉換技巧

小樊
44
2025-05-04 21:42:32
欄目: 智能運維

在CentOS上使用Filebeat進行日志格式轉換可以通過配置Filebeat的處理器來實現。以下是一些技巧和步驟,幫助你進行日志格式的轉換。

使用 decode_json_fields 處理器

Filebeat的 processors 部分允許你定義日志輸出格式。例如,如果你想將日志輸出格式設置為JSON,可以添加以下內容:

processors:
  - decode_json_fields:
      fields: ["message"]
      target: ""
      overwrite_keys: true

這里,decode_json_fields 處理器將解析 message 字段中的JSON數據,并將其添加到Filebeat事件中。

自定義日志字段

如果你想自定義日志輸出的字段,可以在 processors 部分下添加 add_fieldsmutate 處理器。例如,要將自定義字段 my_custom_field 添加到每個事件中,可以使用以下配置:

processors:
  - add_fields:
      fields:
        my_custom_field: "my_custom_value"

使用腳本進行復雜格式轉換

對于更復雜的日志格式轉換,可以使用Filebeat的自定義腳本功能。例如,以下配置展示了如何將和;分隔的鍵值對格式日志轉換為JSON格式的日志:

filebeat.prospectors:
  - paths:
    - /path/to/logfile.log
  processors:
    - decode_json_fields:
        fields: ["message"]
        target: ""
        overwrite_keys: true
    - when:
        regexp:
          message:
            script:
              lang: javascript
              id: format_kv_logs
      file: {path.home}/modules/filebeat/kv-formatting.js

在這個配置中,第一個processor是解析非指定的JSON字段格式日志的processor,第二個processor則是針對和;分隔的鍵值對形式的日志,使用了自定義的腳本進行格式轉換。

示例腳本 kv-formatting.js

function process(event) {
  if (event.get("message").match(/^\s*\w+\s*=\s*.*$/)) {
    const newMessage = event.get("message").split(";").join(',\n').split("").join(event.put("message", newMessage));
    event.put("message", newMessage);
  }
}

這個腳本的作用是將和;分隔的鍵值對格式日志轉換為JSON格式的日志。

保存并重啟Filebeat

完成上述配置后,保存并關閉配置文件,然后重新啟動Filebeat以應用更改:

sudo systemctl restart filebeat

通過這些步驟,你可以靈活地轉換和自定義Filebeat在CentOS系統上收集的日志格式,以滿足不同的日志分析需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女