收集TCP/UDP日志

通过logstash的tcp/udp插件收集日志,通常用于在向elasticsearch日志补录丢失的部分日志,可以将丢失的日志通过一个TCP端口直接写入到elasticsearch服务器。


配置Logstash

#进入Logstash配置文件目录
[root@linux-node1 ~]# cd /etc/logstash/conf.d/
#编辑Logstash配置文件
[root@linux-node1 conf.d]# vim tcp.conf
input {
  tcp {
    port => 1234
    type => "tcplog"
    mode => "server"
  }
}

output {
  stdout {
    codec => rubydebug
  }
}
#启动Logstash
[root@linux-node1 conf.d]# /usr/share/logstash/bin/logstash -f  /etc/logstash/conf.d/tcp.conf
#检测端口是否启动成功
[root@linux-node1 ~]# netstat -lntup
tcp        0      0 :::1234                     :::*                        LISTEN      8656/java


使用nc传输日志

NetCat简称nc,在网络工具中有瑞士军刀美誉,其功能实用,是一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据,另外还具有很多其他功能。

在其它服务器安装nc命令

#使用yum安装nc
[root@linux-node1 ~]# yum install -y nc
#使用nc传输数据
[root@linux-node1 ~]# echo "zls test nc" | nc 192.168.6.240 1234

通过nc发送一个文件

#将/etc/passwd文件当成日志文件传送
[root@linux-node1 ~]# nc 192.168.6.240 1234 < /etc/passwd


通过伪设备的方式发送日

在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备是伪设备。操作系统运用了它们提供的多种功能,tcp只是dev下面众多伪设备当中的一种设备。

#发送伪设备数据
[root@linux-node1 ~]#  echo "曾老湿 伪设备 测试"  > /dev/tcp/192.168.6.240/1234


将输出改成ES

#编辑logstash配置文件
[root@linux-node1 conf.d]# vim tcp.conf
input {
  tcp {
    port => 1234
    type => "tcplog"
    mode => "server"
  }
}
output {
  elasticsearch {
    hosts => ["192.168.6.241:9200"]
    index =>  "tcp_log-%{+YYYY.MM.dd}"
  }
}
#启动Logstash
[root@linux-node1 conf.d]# /usr/share/logstash/bin/logstash -f  /etc/logstash/conf.d/tcp.conf &

#测试数据
[root@linux-node3 ~]# echo "曾老湿 伪设备 测试1"  > /dev/tcp/192.168.6.240/1234
[root@linux-node3 ~]# echo "曾老湿 伪设备 测试2"  > /dev/tcp/192.168.6.240/1234

打开浏览器,访问:http://192.168.6.241:9100/


将ES索引添加到Kibana中

文档更新时间: 2019-08-02 13:10   作者:李延召