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



查看日志结果