第八章·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