欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Logshark調(diào)試Logstash及Filebeat?pipelines使用詳解

 更新時間:2022年12月09日 15:41:17   作者:Elasticsearch  
這篇文章主要為大家介紹了Logshark調(diào)試Logstash及Filebeat?pipelines使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Filebeat processors處理數(shù)據(jù)

我們知道 Logstash 及 Filebeat 在 Elasticsearch 數(shù)據(jù)攝入及清理中起到非常大的作用。它們是常用的工具用來對數(shù)據(jù)進行處理。我們可以運用 Logstash 豐富的過濾器來處理數(shù)據(jù),我們也可以使用 Filebeat 的 processors 來處理數(shù)據(jù)。

使用這些工具(和其他工具)對管道進行編碼是一個高度迭代的過程,特別是在處理 grok 模式以解析非結(jié)構化日志時:你獲得一些示例數(shù)據(jù),將其提供給 input,然后你將重復: 

  • 對管道邏輯進行編碼( Logstash 中的過濾器和 Filebeat 中的處理器)
  • 檢查輸出,直到日志被正確解析。

我一直覺得這個改變管道和檢查輸出的迭代周期有點慢 — 確保你在 Logstash 和 Filebeat 中都有控制臺輸出,但你最終會混合這些程序的輸出和你的輸出,你會肯定會滾動很多。 當然,這兩種工具都有文件輸出,但在處理包含數(shù)百個字段的文檔時很容易迷失方向,因為每個文檔都寫在一行中,沒有漂亮的打印。

我們需要一種方法來立即判斷我們的管道輸出是否正確,打印漂亮且可導航的輸出是我的主要要求,如果我們有的話,我們的開發(fā)迭代會快得多! 這樣的工具不存在。幸運的是,一個開源的項目 Logshark (靈感來自流行的網(wǎng)絡檢查工具 Wireshark)應運而生。

它是一個帶有用 Go 編寫的終端 UI 的 CLI 應用程序。它通過啟動一個小型網(wǎng)絡服務器來工作,該服務器通過接受 _bulk 請求模仿 Elasticsearch 的行為,因此你需要做的就是將 Logstash/Filebeat elasticsearch 輸出重定向到該工具。

這個工具在更改生產(chǎn)管道時特別方便,因為你可以向管道添加第二個 elasticsearch 輸出以檢查事件,默認情況下它會收集它看到并接受的前 100 個事件,但丟棄其余的,你可以檢查下一個通過點擊 r (reset)來刷新它。

它還會告訴您每秒發(fā)生的事件數(shù)和平均文檔大小,當你需要通過調(diào)整 bulk/batch 大小來優(yōu)化吞吐量時,這些信息非常方便,如果你正在從南半球的機器收集日志,這就非常重要發(fā)送到北部的 Elasticsearch 集群。

你可以直接使用二進制文件 (<5mb) 或在 docker 上運行它。 UI 可以用于任何可以模擬終端的東西,比如你的常規(guī) Linux 終端、iTerm、tmux、PuTTY 甚至 VSCode。

啟動服務器

我們可以參考網(wǎng)站 GitHub - ugosan/logshark: Logshark is a debugger for JSON logs. 下載最新的發(fā)布版。

二進制

./logshark --host 0.0.0.0 --port 9200 --max 1000

上述命令將啟動一個服務器。它偵聽 9200 端口,也就是 Elasticsearch 運行的端口。我們需要停止自己的 Elasticsearch 運行,你運行 Logshark 和 Elasticsearch 在同一個機器上的話。我們使用如下的命令來檢查偵聽 9200 的端口。

  $ sudo lsof -i -P | grep LISTEN | grep 9200
  Password:
  logshark  69585          liuxg   10u  IPv6 0xe92fabcdd6634ab3      0t0    TCP *:9200 (LISTEN)

docker

docker run -p 9200:9200 -it ugosan/logshark -host 0.0.0.0 -port 9200

docker-compose.yml

  version: "3.2"
  services:
    logshark:
      image: ugosan/logshark
      tty: true
      stdin_open: true

注意:你不應使用 “docker-compose up”,而應使用 “docker-compose run logshark sh”,因為 docker-compose 不會附加到帶有 “up” 的容器。 docker-compose run -p 9200:9200 logshark -port 9200

將的 Logstash 管道的輸出指向它

就像普通的 elasticsearch 輸出一樣。針對 docker 的情況:

   input {}
   filter {}
   output {
     elasticsearch {
       hosts => ["http://host.docker.internal:9200"]
     }
   } 

使用 docker 時,你可以使用 host.docker.internal 從另一個容器訪問 logshark 容器

例如

docker run --rm byrnedo/alpine-curl -v -XPOST -d '{"hello":"test"}' http:/ /host.docker.internal:9200。

針對非 docker 部署,我們可以使用如下的 logstash.conf 來進行測試:

logstash.conf

  input {
     stdin { }
 }
 filter {}
 output {
    stdout { codec => rubydebug }
     elasticsearch {
       hosts => ["http://localhost:9200"]
     }
  }

在上面,我使用 stdin 來輸入我們的文檔。我們使用如下的命令來啟動 Logstash:

./bin/logstash -f logstash.conf

我們在 console 中打入一些我們喜歡的文字:

我們切換到 Logshark 所在的 terminal:

我們可以輸入 l 來改變布局:

 我們可以清楚地看到每個輸出。它對我們調(diào)試 pipeline 非常有用。

以上就是Logshark調(diào)試Logstash及Filebeat pipelines使用詳解的詳細內(nèi)容,更多關于Logshark調(diào)試Logstash的資料請關注腳本之家其它相關文章!

相關文章

最新評論