Logstash 我们是否可以将日志存储输入配置为仅侦听特定主机集
目前,我的日志存储输入正在侦听端口XXXX上的filebeat,我的要求是仅从特定主机(比方说仅从Web服务器)收集日志数据。我不想直接在服务器上修改filebeat配置,但我希望只允许Web服务器日志侦听 有人能建议在这种情况下如何配置日志存储吗?以下是mylogstash输入配置Logstash 我们是否可以将日志存储输入配置为仅侦听特定主机集,logstash,logstash-configuration,logstash-forwarder,logstash-input-jdbc,Logstash,Logstash Configuration,Logstash Forwarder,Logstash Input Jdbc,目前,我的日志存储输入正在侦听端口XXXX上的filebeat,我的要求是仅从特定主机(比方说仅从Web服务器)收集日志数据。我不想直接在服务器上修改filebeat配置,但我希望只允许Web服务器日志侦听 有人能建议在这种情况下如何配置日志存储吗?以下是mylogstash输入配置 **input { beats { port => 50XX } }** 总之,“否”,您不能将输入配置为限制它将从哪些主机接受输入。您可以做的是从您不感兴趣的主机上删除事件。如果要从中接受
**input {
beats {
port => 50XX
}
}**
总之,“否”,您不能将输入配置为限制它将从哪些主机接受输入。您可以做的是从您不感兴趣的主机上删除事件。如果要从中接受输入的主机集很小,则可以使用条件
如果[beat][hostname]不在[“hosta”、“hostb”、“hostc”]{drop{}
类似地,如果主机名遵循固定模式,则可以使用regexp执行此操作
如果[beat][hostname]!~/web\d+$/{drop{}
将从名称未以web结尾并后跟数字的任何主机上删除事件
如果您有一个大的主机集,您可以使用翻译过滤器来确定它们是否在该集中。例如,如果创建一个包含主机列表的csv文件
hosta,1
hostb,1
hostc,1
然后使用
translate {
field => "[beat][hostname]"
dictionary_path => "/some/path/foo.csv"
destination => "[@metadata][field]"
fallback => "dropMe"
}
if [@metadata][field] == "dropMe" { drop {} }
非常感谢你!它起了很大的作用