我已按照此Digital Ocean tutorial通过rsyslog将日志发送到logstash。
但我没有在logstash中获取日志。我将日志发送到集中式rsyslog-server,然后进行logstash。此rsyslog-server和logstash位于同一台计算机上。
这是rsyslog-client上的/etc/rsyslog.d/50-default.conf文件: -
*.* @xx.xx.xx.xx:514
我在顶部添加了这一行,其余的是相同的
这是rsyslog-server上的/etc/rsyslog.conf文件,
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
我启用了这些模块,其余与默认相同。下面是文件/etc/rsyslog.d/01-json-template.conf
template(name="json-template" type="list") {
constant(value="{")
constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
constant(value="\",\"@version\":\"1")
constant(value="\",\"message\":\"") property(name="msg" format="json")
constant(value="\",\"sysloghost\":\"") property(name="hostname")
constant(value="\",\"severity\":\"") property(name="syslogseverity-text")
constant(value="\",\"facility\":\"") property(name="syslogfacility-text")
constant(value="\",\"programname\":\"") property(name="programname")
constant(value="\",\"procid\":\"") property(name="procid")
constant(value="\"}\n")
}
最后一个是我的输出文件配置,它将数据发送到logstash,它也在rsyslog-server机器上,
*.* @127.0.0.1:5044;json-template
以下是我的logstash配置,
input {
udp {
host => "127.0.0.1"
port => "5044"
codec => "json"
type => "rsyslog"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
user => xxxxxxxx
password => xxxxxxx
index => "%{type}_index"
}
}
尽管如此,在所有这些配置中,我都没有在elasticsearch中看到我的rsyslog_index。所有端口都已启动并运行,也没有防火墙问题。
问题是什么?在哪里?