gpt4 book ai didi

json - 将 JSON 文件导入 Logstash + Elasticsearch + Kibana

转载 作者:行者123 更新时间:2023-11-29 02:44:45 30 4
gpt4 key购买 nike

因此,我有一个 Web 平台,它会针对每个请求打印一个 JSON 文件,其中包含有关该请求的一些日志数据。我可以配置几条规则,关于什么时候应该记录东西,只在特定级别等......

现在,我一直在研究 Logstash + Elasticsearch + Kibana3 堆栈,我很想找到一种在 Kibana 中查看这些日志的方法。我的问题是,有没有办法让 Logstash 导入这些文件,或者我是否必须为它编写一个自定义输入插件?我四处搜索,发现插件是用 Ruby 编写的,这是一种我没有经验的语言。

最佳答案

Logstash 是一个非常好的处理动态文件的工具。

以下是使用 logstash 将 json 文件导入 elasticsearch 的方法:

配置文件:

input 
{
file
{
path => ["/path/to/json/file"]
start_position => "beginning"
sincedb_path => "/dev/null"
exclude => "*.gz"
}
}

filter
{
mutate
{
replace => [ "message", "%{message}" ]
gsub => [ 'message','\n','']
}
if [message] =~ /^{.*}$/
{
json { source => message }
}

}

output
{
elasticsearch {
protocol => "http"
codec => json
host => "localhost"
index => "json"
embedded => true
}

stdout { codec => rubydebug }
}

json文件示例:

{"foo":"bar", "bar": "foo"}
{"hello":"world", "goodnight": "moon"}

注意 json 需要在一行中。如果要解析多行 json 文件,请替换配置文件中的相关字段:

   input 
{
file
{
codec => multiline
{
pattern => '^\{'
negate => true
what => previous
}
path => ["/opt/mount/ELK/json/*.json"]
start_position => "beginning"
sincedb_path => "/dev/null"
exclude => "*.gz"
}
}

filter
{
mutate
{
replace => [ "message", "%{message}}" ]
gsub => [ 'message','\n','']
}
if [message] =~ /^{.*}$/
{
json { source => message }
}

}

关于json - 将 JSON 文件导入 Logstash + Elasticsearch + Kibana,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977423/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com