在Logstash配置中创建服务器IP阵列



我想知道是否可以创建一个服务器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"
}

如果有帮助的话,你也可以从文件中读取字典。

最新更新