第八章·Logstash深入-通過TCP/UDP收集日志


1.收集TCP/UDP日志

通過logstash的tcp/udp插件收集日志,通常用於在向elasticsearch日志補錄丟失的部分日志,可以將丟失的日志通過一個TCP端口直接寫入到elasticsearch服務器。


配置Logstash
#進入Logstash配置文件目錄 [root@elkstack03 ~]# cd /etc/logstash/conf.d/ #編輯Logstash配置文件 [root@elkstack03 conf.d]# vim tcp.conf input { tcp { port => 1234 type => "tcplog" mode => "server" } } output { stdout { codec => rubydebug } } #啟動Logstash [root@elkstack03 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tcp.conf #檢測端口是否啟動成功 [root@elkstack03 ~]# netstat -lntup tcp 0 0 :::1234 :::* LISTEN 8656/java 


使用nc傳輸日志

NetCat簡稱nc,在網絡工具中有瑞士軍刀美譽,其功能實用,是一個簡單、可靠的網絡工具,可通過TCP或UDP協議傳輸讀寫數據,另外還具有很多其他功能。

在其它服務器安裝nc命令

#使用yum安裝nc [root@db04 ~]# yum install -y nc #使用nc傳輸數據 [root@elkstack04 ~]# echo "zls test nc" | nc 10.0.0.53 1234 

通過nc發送一個文件

#將/etc/passwd文件當成日志文件傳送 [root@elkstack04 ~]# nc 10.0.0.53 1234 < /etc/passwd 

結果如下,我們不難發現,Logstash會將傳送來的日志文件 一行一行 讀取,收集成日志


通過偽設備的方式發送日志

在類Unix操作系統中,設備節點並不一定要對應物理設備。沒有這種對應關系的設備是偽設備。操作系統運用了它們提供的多種功能,tcp只是dev下面眾多偽設備當中的一種設備。

#發送偽設備數據 [root@elkstack04 ~]# echo "曾老濕 偽設備 測試" > /dev/tcp/10.0.0.53/1234 


將輸出改成ES
#編輯logstash配置文件 [root@elkstack03 conf.d]# vim tcp.conf input { tcp { port => 1234 type => "tcplog" mode => "server" } } output { elasticsearch { hosts => ["10.0.0.51:9200"] index => "tcp_log-%{+YYYY.MM.dd}" } } #啟動Logstash [root@elkstack03 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tcp.conf & #測試數據 [root@elkstack04 ~]# echo "曾老濕 偽設備 測試1" > /dev/tcp/10.0.0.53/1234 [root@elkstack04 ~]# echo "曾老濕 偽設備 測試2" > /dev/tcp/10.0.0.53/1234 

打開瀏覽器,訪問:http://10.0.0.51:9100/


將ES索引添加到Kibana中

查看日志結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM