【发布时间】:2015-12-01 00:35:54
【问题描述】:
我正在尝试使用 Logstash 解析 IIS 错误 XML 文件,然后将这些错误存储在 Elasticsearch 中并显示在 Kibana 中。
这是我的 logstash.conf 文件:
input
{
file{
path => ["C:/inetpub/logs/FailedReqLogFiles/*/*.xml"]
start_position => "beginning"
# filter is not thread safe, so have to move the multiline into the input
codec => multiline{
#pattern => "^</failedRequest>"
pattern => "^<\?xml version"
negate => true
what => "previous"
max_lines => 12000
}
sincedb_path => "C:/Users/ss/Source/elk/logstash/bin/.sincedb"
}
}
filter{
xml{
store_xml => "false"
source => "message"
target => "EVENT"
xpath => [
"/failedRequest/@url", "url",
"/failedRequest/@appPoolId", "appPoolId",
"/failedRequest/@verb", "verb",
"/failedRequest/@statusCode", "statusCode"
]
}
}
output
{
elasticsearch{
hosts => ["100.202.191.77:9200"]
index => "testserver-logstash"
flush_size => 1
}
stdout
{
codec => rubydebug
}
file{
path => "C:/Users/ss/Source/elk/logstash/bin/test.log"
}
}
日志文件目录为:
C:\inetpub\logs\FailedReqLogFiles\W3SVC3
C:\inetpub\logs\FailedReqLogFiles\W3SVC4
C:\inetpub\logs\FailedReqLogFiles\W3SVC5
而这些目录中包含的日志文件有:fr000001.xml、fr000002.xml、fr000003.xml、fr000004.xml等。
xml文件的结构如下:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type='text/xsl' href='freb.xsl'?>
<!-- saved from url=(0014)about:internet -->
<failedRequest url="https://aaa.bbb.com:443/ddd.aspx"
siteId="3"
appPoolId="aaa.bbb.com"
processId="15168"
verb="GET"
remoteUserName=""
userName=""
tokenUserName="NT AUTHORITY\IUSR"
authenticationType="anonymous"
activityId="{00000000-0000-0000-0200-0080030000FF}"
failureReason="STATUS_CODE"
statusCode="500"
triggerStatusCode="500"
timeTaken="368584"
xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb"
>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">blablabla
</Event>
</failedRequest>
我遇到的问题是:一共有13个xml日志文件。我可以看到 logstash 输出在 stdout 和 test.log 中正确打印了所有这 13 个文件的解析 xml,但是,在 Kibana 中,我只能看到 13 个 xml 文件中的 4 个的数据,其余 9 个文件是失踪。
我是 ELK 堆栈的新手,真的被困在这里。希望有人可以帮助我。提前致谢。
【问题讨论】:
-
你检查过elasticsearch日志吗?也许它会为您吐出一些错误消息。,
-
@EvaldasBuinauskas 感谢您的帮助。我想我已经弄明白了。
标签: elasticsearch logstash kibana