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的資料請關注腳本之家其它相關文章!
相關文章
Docker創(chuàng)建openresty容器的實現(xiàn)步驟
OpenResty可以用來構建高性能的Web應用和服務,本文主要介紹了Docker創(chuàng)建openresty容器的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2024-03-03Docker搭建ELK日志系統(tǒng),并通過Kibana查看日志方式
這篇文章主要介紹了Docker搭建ELK日志系統(tǒng),并通過Kibana查看日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法
這篇文章主要介紹了docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02Windows11安裝Docker Desktop教程的圖文教程
本文主要介紹一下Windows11安裝Docker Desktop教程的圖文教程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-10-10