關於網路那些事...

網路行銷,SEO,網路趨勢,教學文章,網頁設計,生活時事

Logstash 常見 Plugin 介紹

| Comments

Logstash 可以獲取資料源,將資料源進行資料切割及過濾,在將清洗過的資料傳算到指定的位置。

在獲取資料方面,可以分成不同的方式,這裡介紹幾個常見的 plugin:

1.tcp

TCP 可以用來接收 TCP socket 資訊,屬於被動接收,並且可透過 type 來設定分類

# 預設對外提供 tcp 接口
input {
    tcp {
        port => 5000,
        type => my-web-source-type
    }
    tcp {
        port => 5000,
        type => my-app-source-type
    }
}

## Add your filters / logstash plugins configuration here

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        user => "elastic"
        password => "changeme"
    }
}

2.http

http plugin 可以讓你透過 webhooks 的方式傳送資料到 Logstash,

input {
  http {
    host => "127.0.0.1" # default: 0.0.0.0
    port => 31311 # default: 8080
  }
}

由於開放性的接口,若需要暴露對外開放,則可以加上安全驗證

input {
   port => 3332
   user => myuser
   password => "$tr0ngP4ssWD!"
   ssl => on
   keystore => "/tmp/mykeystore.jks"
   keystore_password => "keystore_pass"
}

更進階用法可參考 https://www.elastic.co/blog/introducing-logstash-input-http-plugin

3.kafka

可透過訂閱 Kafka 進行消費,以下是設定的範例:

### INPUTS
input {
    kafka {
        codec => "json"
        topics_pattern => "log-my-project" #要訂閱的主題模式
        bootstrap_servers => "localhost:9092" 
        auto_offset_reset => "latest" #  automatically reset the offset to the latest offset
        group_id => "log-my-project" #設定群組ID,不同群組的 consumer 之間不會互相影響
    }
}

詳細參數可參考 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html#plugins-inputs-kafka-bootstrap_servers

4.file

File plugin 可以用來偵測靜態檔案,當檔案發生變化時,就觸發擷取,例如,擷取 Laravel log。

input {
    file {
        path => ["/var/www/html/mysite/storage/log/*.log", "/var/www/html/mysite2/storage/log/*.log"]
        type => "laravel-site-log"
    }
}

5.log4j

使用 JAVA 常用的 log4j ,可以透過 log4j plugin 將訊息切割成 timestamp, path, proiority,, logger_name....

input {
    log4j {
        port => 3690
        type => "my-java-project"
    }
}

更多 logstash plugin 可參考 https://www.elastic.co/guide/en/logstash/current/input-plugins.html


最後,如果你喜歡這篇文章,請幫忙點個讚



最新文章推薦

討論

comments powered by Disqus