在 IIS 上记录和 x 转发



我刚刚在Windows上构建了一个ELK服务器,所以我是这个过程的新手。 我已经通读了文档,但在解析我的 IIS 高级日志时遇到问题,尤其是 x 转发的数据,因为我们在负载均衡器后面。

我的高级日志记录设置为输出如下数据:

$date,  $time,  $s-ip,  $cs-uri-stem, $cs-uri-query, $s-port, $cs-username, $c-ip,  $X-Forwarded-For, $csUser-Agent, $cs-Referer, $sc-status, $sc-substatus, $sc-win32-status, $time-taken

我像这样设置了我的 logstash.conf:

input {
  tcp {
      host => "localhost"
          type => "iis"
          port => 5044 
  }
}
filter {
    if [type] == "iis" {
        grok {
            match => {"message" => "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:site} %{URIPATH:page} %{NOTSPACE:query_string} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:client_host} %{NOTSPACE:useragent} %{NOTSPACE:referer} %{GREEDYDATA:response} %{NUMBER:httpStatusCode:int} %{NUMBER:scSubstatus:int} %{NUMBER:scwin32status:int} %{NUMBER:timeTakenMS:int}"}
        }
    }
}
output {
  elasticsearch {
        hosts => ["localhost:9200"]
        index => "iis"
        document_type => "main"
  }
}

我认为这是不正确的,因为我没有获得数据。 我已经搜索了文档,但仍然遇到问题,不确定是否需要采取其他步骤,例如映射字段。

我目前正在使用一台服务器的文件节拍将数据推送到我的 ELK 服务器。 我不确定这是否也是最好的方法(也许是 nxlog? 我们不想在客户端计算机上安装 logstash。

有人可以帮我一把吗? 将不胜感激!!

谢谢乔治

由于您使用的是Filebeat,因此您需要使用beats输入而不是tcp输入。请参阅有关如何为 Beats 设置 Logstash 的文档。

本质上,您需要将 tcp 输入替换为:

input {
  beats {
    port => 5044
  }
}

在 Filebeat 配置文件中,将document_type设置为 iis,以便您的过滤条件匹配。

filebeat:
  prospectors:
    - paths:
        - 'C:pathtoyouriislogs*.log'
      document_type: iis

相关内容

  • 没有找到相关文章

最新更新