按不同网站的代码进行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应用程序添加标签?并在发现模块中过滤它们,以使用标记为特定网站制作图表? :|
的问候,
伊斯梅尔
答案 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服务器本身在每个日志条目中包含主机名。