經過logstash的tcp/udp插件收集日誌,一般用於在向elasticsearch日誌補錄丟失的部分日誌,能夠將丟失的日誌經過一個TCP端口直接寫入到elasticsearch服務器。java
配置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
vim
使用nc傳輸日誌 |
NetCat簡稱nc,在網絡工具中有瑞士軍刀
美譽,其功能實用,是一個簡單、可靠的網絡工具,可經過TCP或UDP協議傳輸讀寫數據,另外還具備不少其餘功能。瀏覽器
在其它服務器安裝nc命令ruby
#使用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會將傳送來的日誌文件 一行一行
讀取,收集成日誌elasticsearch
經過僞設備的方式發送日誌 |
在類Unix操做系統中,設備節點並不必定要對應物理設備。沒有這種對應關係的設備是僞設備。操做系統運用了它們提供的多種功能,tcp只是dev下面衆多僞設備當中的一種設備。tcp
#發送僞設備數據 [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中 |



查看日誌結果