- 收集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 |
---|
#进入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 |
---|
#编辑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中 |
---|



查看日志结果