簡體   English   中英

如何在logstash配置文件中將“日期”字段轉換為時間戳?

[英]How to convert Date field into timestamp in logstash config file?

我寫了Logstash配置文件,該文件讀取一個csv文件並在elasticsearch中對其進行索引。 但是我在這樣做時面臨一些問題。

1)在我的輸入文件中,我無法將日期列轉換為時間戳。 csv文件中的date列的值為:

-2016年1月2日20:38 [m / d / yyyy H:mm]

所以任何人都可以告訴我如何在kibana中將日期列轉換為時間戳記?

2)此外,誰能告訴我如何將經度和緯度列轉換為geoip。 問題是我只有緯度和經度,我沒有在geoip過濾器中必須填寫的來源。

例如:投訴緯度:12.91518877投訴經度:77.48066853

所以我不確定在源字段中放什么

geoip {
    source => "??"
    }


3)在處理文件中的某些行時,logstash給我以下錯誤:解析csv文件時出錯。 並非所有行都向我顯示此錯誤,但是非常一行會顯示此錯誤,因此我無法索引它,因此丟失了很多數據。

這是我的logstash配置文件:

input{

    file{
         path =>["D:\Project\Logstash Config\Icmc\complaints.csv"]
         start_position => "beginning"
         #sincedb_path => "/dev/null"
         sincedb_path => "/tmp/since.db"
        }

   }

  filter{

      csv{
            separator => ","
            columns =>["category_name", "complaint_sub_category_iid", 
                       "parent_cat_name", "category_parent_iid", 
                       "civic_agency_name", "complaint_title", 
                       "complaint_user_iid", "user_iid", "user_full_name", 
                       "complaint_mobile_number", "complaint_ward_iid", 
                       "ward_name", "complaint_location",  
                       "complaint_address_1", "complaint_latitude", 
                       "complaint_longitude", 
                       "complaint_created","latest_comp_satus_id", 
                       "latest_comp_status_name", "complaint_description"]

            remove_field => ["message"]
        }

     mutate{
         convert => { "complaint_latitude" => "float"}
         }
    mutate{
         convert => { "complaint_longitude" => "float"}
          }
     }

filter{
     geoip {
         source => "clientip"
          }
     }

filter{

        date{
            match => ["complaint_created", "M/d/yyyy H:mm"]
            target => "@timestamp"
           }

        mutate{
            add_field => ["[geoip][lnglat]" , "%{[complaint_longitude]}", 
                     "tmplat", "%{[complaint_latitude]}"]
             }

        mutate{
            merge => ["[geoip][lnglat]", "tmplat"]
             }

        mutate{
            convert => ["[geoip][lnglat]", "float"]
            remove_field => ["tmplat"]
            remove_field => ["complaint_created"]
             }
   }


  output{
        elasticsearch{
        hosts =>["localhost:9200"]
        index => "icmc"
        #document_type => "complaints_filed"
        user => "elastic"
        password => "elastic"
        }

        stdout {  }
      }

對於#1,由於Kibana使用@timestamp字段,因此您可以在csv過濾器中使用@timestamp代替日期列( complaint_created _創建的?),或使用date過濾器定位@timestamp。

暫無
暫無

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

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