logstash的安裝使用、收集json日誌、csv日誌總結

後開啟撒打發了發表於2017-11-22

1、logstash在官網直接下載解壓即可使用

[elk_test@hadoop2 14:20 ~]$tar -zxvf logstash-5.6.3.tar.gz 
[elk_test@hadoop2 14:21 ~]$cd logstash-5.6.3

啟動logstash監控檔案。

./bin/logstash   -f   my.config

其中 -f 引數後面接你配置檔案,在下面2和3中介紹了json和csv兩種簡單的配置方式,想要複雜的配置可以去參考官網一些引數介紹說明。

2、json日誌收集配置
格式有樣例:檔案中每一行都是json格式的,其中欄位如果有type會覆蓋你index/type/id 中type值,這個你要小心了

{"10190":0,"10071":0,"10191":0,"10070":0,"48":"136587","type":"136587","10018":0}

input:對應輸入的配置,其中path是監控的文**件路勁, codec編碼個格式

output:輸出格式,stdout 輸出到控制檯

其中elasticsearch : { hosts => "192.168.0.153:9200" } 對應輸出到elasticsearch,hosts是elasticsearch安裝地址。

input {
    file {

        path => ["/home/elk_test/logstash-5.6.3/logfile"]
        codec => json {
            charset => "UTF-8"
        }


    }
}

output {

    stdout {
        codec => rubydebug
    }

    elasticsearch {
        hosts => "192.168.0.153:9200"

    }
}

3、csv日誌收集

日誌樣例:逗號分隔的日誌,每一行資料格式如下,瞭解一下csv格式就知曉了。

3202,UA3202,92509,122774,2,106200,0

path :檔案路勁
columns:欄位名字,收集到日誌每個值value對應的key separator: 分隔符,csv當然是逗號,實際使用什麼分隔符就填什麼分隔符。

input {
  file {
    type => "csv_log"
    path => ["/home/elk_test/logstash-5.6.3/logfile"]
    start_position => "beginning"
  }
}

filter {
  if [type] == "csv_log" {
  csv {
    separator => ","
    columns => ["ip", "a", "date", "time", "b", "latency", "status", "size", "method", "url", "file"]
  } 
  }
}

output {
  if [type] == "csv_log" {
  logservice {
        codec => "json"
        endpoint => "***"
        project => "***"
        logstore => "***"
        topic => ""
        source => ""
        access_key_id => "***"
        access_key_secret => "***"
        max_send_retry => 10
    }
    }
}

相關文章