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

时间:2015-07-03 20:08:17

标签: logstash logstash-configuration elastic-stack

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

这样的事情可能吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

鉴于你的其他限制,我会说翻译{}可能是最好的选择。不是很好,但也许最好......

translate {
    dictionary => [
        "10.1.1.1",   "linux",
        "10.1.1.200", "networking"
    ],
    destination => "source_type"
}

如果有帮助,您还可以从文件中读取字典。