簡體   English   中英

如何刪除 logstash 為 syslog output 插件添加的額外時間戳

[英]How to remove extra timestamp added by logstash for syslog output plugin

我正在使用 logstash 管道將數據提取到 rsyslog 服務器中。

但是管道在開始時添加了額外的時間戳。

示例消息:

9 月 22 日 04:47:20 22-09-2022 05:47:20.875 a7bd0ebd9101-SLOT0 TEST-AWS-ACTIVITY #011970507 P 201059147698 [FCH-TEST] [35.49.122.49] [TEST-251047********-******] [c713fcf9-6e73-4627-ace9-170e6c72fac5] OUT;P;201059147698;;;;/bcl/test/survey/checkSurveyEligibility.json;ErrorMsg=none;;{"body":{"eligible":false,"surveys":[]},"header":null}

但我沒有獲得從 output 中刪除時間戳的配置。

時間戳已經作為消息的一部分存在,這就是我需要顯示的全部內容。

數據來自安裝在 ECS 容器上的 AWS cloudwatch。

管道配置為:

input  { pipeline { address => test_syslog } }

filter {

if [owner] == "1638134254521"  { 
   mutate { add_field  =>  { "[ec_part]" => "AWS_TEST"} }
  
  } 
}

    output {
    #TEST ACTIVITY Logs being sent via TCP to Logreceiver
      if [ec_part] == "AWS_TEST" {
      syslog {
        appname => ""
        sourcehost =>""
        host => "10.119.140.206"
        port => "10514"
        protocol => "ssl-tcp"
        ssl_cacert => "/etc/logstash/ca.crt"
        ssl_cert => "/etc/logstash/server.crt"
        ssl_key => "/etc/logstash/server.key"
        priority => "info"
        rfc => "rfc5424"
        codec => plain { format => "%{message}" }
      }
      }
    }

您可以將 Logstash 中的mutate 過濾器gsub一起使用,這將在開始時替換日期。

filter {
      mutate {
        gsub => [
          "message", "^\\w{3,4} \\d{2} \\d{2}:\\d{2}:\\d{2}\\s+", ""
        ]
      }
    }

PS:我沒有測試過這個配置,但大多數情況下只要稍作改動就可以使用。 您可以根據您的要求和數據更新正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM