第八章·Logstash深入-通过TCP/UDP收集日志

2022-09-26 11:16:51 浏览数 (1)

  • 收集TCP/UDP日志

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


收集TCP/UDP日志

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


配置Logstash

代码语言:javascript复制
#进入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命令

代码语言:javascript复制
#使用yum安装nc
[root@db04 ~]# yum install -y nc
#使用nc传输数据
[root@elkstack04 ~]# echo "zls test nc" | nc 10.0.0.53 1234

通过nc发送一个文件

代码语言:javascript复制
#将/etc/passwd文件当成日志文件传送
[root@elkstack04 ~]# nc 10.0.0.53 1234 < /etc/passwd

结果如下,我们不难发现,Logstash会将传送来的日志文件 一行一行 读取,收集成日志


通过伪设备的方式发送日志

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

代码语言:javascript复制
#发送伪设备数据
[root@elkstack04 ~]# echo "曾老湿 伪设备 测试"  > /dev/tcp/10.0.0.53/1234


将输出改成ES

代码语言:javascript复制
#编辑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中

查看日志结果

0 人点赞