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中 |



查看日志結果