Logshark調(diào)試Logstash及Filebeat?pipelines使用詳解
Filebeat processors處理數(shù)據(jù)
我們知道 Logstash 及 Filebeat 在 Elasticsearch 數(shù)據(jù)攝入及清理中起到非常大的作用。它們是常用的工具用來(lái)對(duì)數(shù)據(jù)進(jìn)行處理。我們可以運(yùn)用 Logstash 豐富的過(guò)濾器來(lái)處理數(shù)據(jù),我們也可以使用 Filebeat 的 processors 來(lái)處理數(shù)據(jù)。
使用這些工具(和其他工具)對(duì)管道進(jìn)行編碼是一個(gè)高度迭代的過(guò)程,特別是在處理 grok 模式以解析非結(jié)構(gòu)化日志時(shí):你獲得一些示例數(shù)據(jù),將其提供給 input,然后你將重復(fù):
- 對(duì)管道邏輯進(jìn)行編碼( Logstash 中的過(guò)濾器和 Filebeat 中的處理器)
- 檢查輸出,直到日志被正確解析。
我一直覺(jué)得這個(gè)改變管道和檢查輸出的迭代周期有點(diǎn)慢 — 確保你在 Logstash 和 Filebeat 中都有控制臺(tái)輸出,但你最終會(huì)混合這些程序的輸出和你的輸出,你會(huì)肯定會(huì)滾動(dòng)很多。 當(dāng)然,這兩種工具都有文件輸出,但在處理包含數(shù)百個(gè)字段的文檔時(shí)很容易迷失方向,因?yàn)槊總€(gè)文檔都寫在一行中,沒(méi)有漂亮的打印。
我們需要一種方法來(lái)立即判斷我們的管道輸出是否正確,打印漂亮且可導(dǎo)航的輸出是我的主要要求,如果我們有的話,我們的開(kāi)發(fā)迭代會(huì)快得多! 這樣的工具不存在。幸運(yùn)的是,一個(gè)開(kāi)源的項(xiàng)目 Logshark (靈感來(lái)自流行的網(wǎng)絡(luò)檢查工具 Wireshark)應(yīng)運(yùn)而生。
它是一個(gè)帶有用 Go 編寫的終端 UI 的 CLI 應(yīng)用程序。它通過(guò)啟動(dòng)一個(gè)小型網(wǎng)絡(luò)服務(wù)器來(lái)工作,該服務(wù)器通過(guò)接受 _bulk 請(qǐng)求模仿 Elasticsearch 的行為,因此你需要做的就是將 Logstash/Filebeat elasticsearch 輸出重定向到該工具。
這個(gè)工具在更改生產(chǎn)管道時(shí)特別方便,因?yàn)槟憧梢韵蚬艿捞砑拥诙€(gè) elasticsearch 輸出以檢查事件,默認(rèn)情況下它會(huì)收集它看到并接受的前 100 個(gè)事件,但丟棄其余的,你可以檢查下一個(gè)通過(guò)點(diǎn)擊 r (reset)來(lái)刷新它。
它還會(huì)告訴您每秒發(fā)生的事件數(shù)和平均文檔大小,當(dāng)你需要通過(guò)調(diào)整 bulk/batch 大小來(lái)優(yōu)化吞吐量時(shí),這些信息非常方便,如果你正在從南半球的機(jī)器收集日志,這就非常重要發(fā)送到北部的 Elasticsearch 集群。
你可以直接使用二進(jìn)制文件 (<5mb) 或在 docker 上運(yùn)行它。 UI 可以用于任何可以模擬終端的東西,比如你的常規(guī) Linux 終端、iTerm、tmux、PuTTY 甚至 VSCode。
啟動(dòng)服務(wù)器
我們可以參考網(wǎng)站 GitHub - ugosan/logshark: Logshark is a debugger for JSON logs. 下載最新的發(fā)布版。
二進(jìn)制
./logshark --host 0.0.0.0 --port 9200 --max 1000
上述命令將啟動(dòng)一個(gè)服務(wù)器。它偵聽(tīng) 9200 端口,也就是 Elasticsearch 運(yùn)行的端口。我們需要停止自己的 Elasticsearch 運(yùn)行,你運(yùn)行 Logshark 和 Elasticsearch 在同一個(gè)機(jī)器上的話。我們使用如下的命令來(lái)檢查偵聽(tīng) 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
注意:你不應(yīng)使用 “docker-compose up”,而應(yīng)使用 “docker-compose run logshark sh”,因?yàn)?docker-compose 不會(huì)附加到帶有 “up” 的容器。 docker-compose run -p 9200:9200 logshark -port 9200
將的 Logstash 管道的輸出指向它
就像普通的 elasticsearch 輸出一樣。針對(duì) docker 的情況:
input {} filter {} output { elasticsearch { hosts => ["http://host.docker.internal:9200"] } }
使用 docker 時(shí),你可以使用 host.docker.internal 從另一個(gè)容器訪問(wèn) logshark 容器
例如
docker run --rm byrnedo/alpine-curl -v -XPOST -d '{"hello":"test"}' http:/ /host.docker.internal:9200。
針對(duì)非 docker 部署,我們可以使用如下的 logstash.conf 來(lái)進(jìn)行測(cè)試:
logstash.conf
input { stdin { } } filter {} output { stdout { codec => rubydebug } elasticsearch { hosts => ["http://localhost:9200"] } }
在上面,我使用 stdin 來(lái)輸入我們的文檔。我們使用如下的命令來(lái)啟動(dòng) Logstash:
./bin/logstash -f logstash.conf
我們?cè)?console 中打入一些我們喜歡的文字:
我們切換到 Logshark 所在的 terminal:
我們可以輸入 l 來(lái)改變布局:
我們可以清楚地看到每個(gè)輸出。它對(duì)我們調(diào)試 pipeline 非常有用。
以上就是Logshark調(diào)試Logstash及Filebeat pipelines使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Logshark調(diào)試Logstash的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker創(chuàng)建openresty容器的實(shí)現(xiàn)步驟
OpenResty可以用來(lái)構(gòu)建高性能的Web應(yīng)用和服務(wù),本文主要介紹了Docker創(chuàng)建openresty容器的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03Docker搭建ELK日志系統(tǒng),并通過(guò)Kibana查看日志方式
這篇文章主要介紹了Docker搭建ELK日志系統(tǒng),并通過(guò)Kibana查看日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法
這篇文章主要介紹了docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Docker容器化spring boot應(yīng)用詳解
本篇文章主要介紹了Docker容器化spring boot應(yīng)用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Windows11安裝Docker Desktop教程的圖文教程
本文主要介紹一下Windows11安裝Docker Desktop教程的圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10