Logstash - 如何按[tags]过滤

时间:2015-06-03 03:43:11

标签: logstash logstash-forwarder

按不同网站的代码进行Logstash过滤

问题:我在一个IIS服务器中有多个网站..我想添加一个"标记"对于我向logstash发送的每个日志文件

这是我的logstash转发器配置

每个日志文件代表一个不同的网站..所以我想为每个日志添加标签,并能够按此特定标签进行过滤。

"日志\ svr05 \前*",

i

这是我用于logstash的IIS配置..

{
  "network": {
    "servers": [ "logsvr1.logs.local:5000", "logsvr2.logs.local:5000" ],
    "timeout": 15,
    "ssl ca": "logstash-forwarder-new.crt"
  },
  "files": [
    {
      "paths": [
         "logs\\svr08\\ex*",
         "logs\\svr05\\ex*",
         "logs\\svr04\\ex*",
         "logs\\svr03\\ex*"
       ],
      "fields": { "type": "iis" },
      "dead time": "24h" 
        }
   ]
}

假设我想发送不同应用的日志

app1.egov.mv app2.egov.mv

如何为这些不同的IIS应用程序添加标签?并在发现模块中过滤它们,以使用标记为特定网站制作图表? :|

的问候,

伊斯梅尔

1 个答案:

答案 0 :(得分:0)

您已经知道如何添加type字段,因此只需使用相同的方法添加包含主机名称的其他字段:

{
  ...,
  "files": [
    {
      "paths": [
         "logs\\svr08\\ex*",
         "logs\\svr05\\ex*",
         "logs\\svr04\\ex*",
         "logs\\svr03\\ex*"
      ],
      "fields": {
        "type": "iis",
        "virtualhost": "app1.egov.mv"
      },
      "dead time": "24h" 
    }
  ]
}

显然,如果您的不同日志文件模式适用于不同的服务器,则您必须拆分配置:

{
  ...,
  "files": [
    {
      "paths": [
         "logs\\svr08\\ex*"
      ],
      "fields": {
        "type": "iis",
        "virtualhost": "app1.egov.mv"
      },
      "dead time": "24h" 
    },
    {
      "paths": [
         "logs\\svr05\\ex*"
      ],
      "fields": {
        "type": "iis",
        "virtualhost": "app2.egov.mv"
      },
      "dead time": "24h" 
    },
    ...
  ]
}

另一个选项(我更喜欢)是让Web服务器本身在每个日志条目中包含主机名。