我想知道是否可以创建一个服务器IP地址数组,使Logstash配置文件更易于编辑和读取。我用"linux"标记了我们的CentOS盒子,用"networking"标记了ASA。现在,我配置的过滤器部分看起来像这样:
filter {
if [host] == “10.x.x.1” or [host] == “10.x.x.2” or … or [host] “10.x.x.30” {
mutate {
add_tag => “linux”
}
}
if [host] == “10.x.x.200” or [host] == “10.x.x.201” or … or [host] “10.x.x.250” {
mutate {
add_tag => “networking”
}
}
这是可行的,但由于我在每个类别中都有30+个节点,所以这条线非常长。我想做这样的事情(用伪代码(:
array [linux_hosts] = [“10.x.x.1”,
“10.x.x.2”,
“10.x.x.3”]
if [host] in [linux_hosts] {
mutate {
add_tag => “linux”
}
}
这样的事情可能发生吗?有更好的方法吗?
考虑到您的其他限制,我认为translate{}可能是最好的选择。不太好,但也许最好。。。
translate {
dictionary => [
"10.1.1.1", "linux",
"10.1.1.200", "networking"
],
destination => "source_type"
}
如果有帮助的话,你也可以从文件中读取字典。