我想知道是否可以创建服务器IP地址数组,以使Logstash配置文件更容易编辑和读取。我用“linux”标记我们的CentOS盒子,用“网络”标记我们的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”
}
}
这样的事情可能吗?有更好的方法吗?
答案 0 :(得分:0)
鉴于你的其他限制,我会说翻译{}可能是最好的选择。不是很好,但也许最好......
translate {
dictionary => [
"10.1.1.1", "linux",
"10.1.1.200", "networking"
],
destination => "source_type"
}
如果有帮助,您还可以从文件中读取字典。