我提前道歉,因为我对使用堆栈溢出还很陌生。如果我需要对我的问题进行任何更改,请告诉我。
我目前正在尝试为我的工作设置一个日志聚合器。我的计划是使用弹性堆栈和 filebeat 来收集日志并显示它们。我使用本教程来设置初始服务器:
就像在教程中一样,我能够使用 filebeat 系统模块从系统中读取系统日志。然后我禁用了它,这样我就可以尝试从瞻博网络交换机记录系统日志,而不必阅读所有服务器系统日志。
现在我只是想让日志从瞻博网络交换机进入我的虚拟机。我将交换机设置为将系统日志发送到端口 9513 上的虚拟机 ip。当我使用 tcpdump 监视端口时,我可以看到日志进入。
user@logserver:~$ sudo tcpdump -i ens160 port 9513
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens160, link-type EN10MB (Ethernet), capture size 262144 bytes
16:42:20.558768 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.info, length: 124
16:45:00.571980 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 79
16:45:00.576370 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 91
16:47:45.944277 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.info, length: 124
16:48:20.568840 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.info, length: 64
16:50:00.653082 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 91
16:50:55.769884 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.info, length: 106
16:50:55.777058 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.notice, length: 112
16:50:57.704914 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.info, length: 101
16:50:57.817315 IP ***.***.***.***.syslog > logserver.9513: SYSLOG local7.notice, length: 112
16:55:00.701165 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 91
17:00:00.766060 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 91
17:00:00.777780 IP ***.***.***.***.syslog > logserver.9513: SYSLOG cron.info, length: 79
我知道有几种不同的方法可以使用 filebeat 来读取这些输入数据。一种是使用我已启用的默认瞻博网络模块。我还可以在 filebeat.yml 配置文件中设置系统日志类型输入。我已经使用端口 9513 和端口 514 尝试了这两种方法。
filebeat.inputs:
- type: syslog
protocol.udp:
host: "localhost:514"
- type: syslog
protocol.udp:
host: "localhost:9513"
- module: juniper
junos:
enabled: true
# Set which input to use between udp (default), tcp or file.
var.input: udp
var.syslog_host: localhost
var.syslog_port: 514
- module: juniper
junos:
enabled: true
# Set which input to use between udp (default), tcp or file.
var.input: udp
var.syslog_host: localhost
var.syslog_port: 9513
我猜测 filebeat 配置中有一些我不理解的东西,因为 filebeat 没有将任何 syslog 信息发送到 logstash。我还在端口 5044 和 lo 接口上使用了 tcpdump,本教程使用该端口设置 filebeat 的输出和 logstash 的输入。当我运行它并从端口 514 或 9513 上的交换机接收新日志时,没有任何内容通过 5044 发送,如下所示:
user@logserver:~$ sudo tcpdump -i lo port 5044
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
任何帮助理解 filebeat 将不胜感激。谢谢先进