input {
http {
host => "127.0.0.1"
port => 31311
}
}
filter {
mutate {
split => ["%{headers.request_path}", "/"]
add_field => { "index_id" => "%{headers.request_path[0]}" }
add_field => { "document_id" => "%{headers.request_path[1]}" }
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "%{index_id}"
document_id => "%{document_id}"
}
stdout {
codec => "rubydebug"
}
}
当我发送put
请求时,如下所示
C:\users\bolverkxr\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-xput'http://127.0.0.1:31311/twitter'
我希望创建一个名为twitter
的新索引,而不是使用ElasticSearch默认值。
编辑:
当我将筛选器
段更改为以下内容时,也会发生同样的错误:
filter {
mutate {
split => ["%{[headers][request_path]}", "/"]
add_field => { "index_id" => "%{[headers][request_path][0]}" }
add_field => { "document_id" => "%{[headers][request_path][1]}" }
}
}
要拆分字段,不使用%{foo}
语法。此外,您应该从数组的位置[1]开始,因为在位置[0]中,由于第一个分隔符(/
)的左边没有字符,将出现一个空字符串(“”
)。相反,您的过滤器部分应该如下所示:
filter {
mutate {
split => ["[headers][request_path]", "/"]
add_field => { "index_id" => "%{[headers][request_path][1]}" }
add_field => { "document_id" => "%{[headers][request_path][2]}" }
}
}
现在可以使用%{index_id}
和%{document_id}
中的值。我使用Logstash 6.5.3
版本对此进行了测试,并使用Postman发送'HTTP://127.0.0.1:31311/twitter/1'HTTP请求,控制台中的输出如下所示:
{
"message" => "",
"index_id" => "twitter",
"document_id" => "1",
"@version" => "1",
"host" => "127.0.0.1",
"@timestamp" => 2019-04-09T12:15:47.098Z,
"headers" => {
"connection" => "keep-alive",
"http_version" => "HTTP/1.1",
"http_accept" => "*/*",
"cache_control" => "no-cache",
"content_length" => "0",
"postman_token" => "cb81754f-6d1c-4e31-ac94-fde50c0fdbf8",
"accept_encoding" => "gzip, deflate",
"request_path" => [
[0] "",
[1] "twitter",
[2] "1"
],
"http_host" => "127.0.0.1:31311",
"http_user_agent" => "PostmanRuntime/7.6.1",
"request_method" => "PUT"
}
}
配置的输出部分不会更改。因此,最终的logstash.conf文件如下所示:
input {
http {
host => "127.0.0.1"
port => 31311
}
}
filter {
mutate {
split => ["[headers][request_path]", "/"]
add_field => { "index_id" => "%{[headers][request_path][1]}" }
add_field => { "document_id" => "%{[headers][request_path][2]}" }
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "%{index_id}"
document_id => "%{document_id}"
}
stdout {
codec => "rubydebug"
}
}
这是我的: 作为测试,我在PowerShell中运行了以下命令: C:\users\me\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-xput'http://127.0.0.1:31311/twitter' 在我的终端中显示了以下输出: 当我跑的时候 C:\users\me\downloads\curl-7.64.1-win64-mingw\b
问题内容: 我正在使用Microsoft SQL SERVER 2014。 以下是我的查询 我得到了错误 消息207,级别16,状态1,第2行无效的列名称“ total_calories”。 这是一个非常简单的表(我是sql的新手,正在学习它)。有人可以指出我在做什么错吗?谢谢。 问题答案: 是必需的,因为您无权访问别名
我有一个索引(仅150kb),我想在kibana中可视化。在进入堆栈管理之后 为什么会这样?我关闭了elasticsearch和kibana,然后重新打开,但错误依然存在。
本文向大家介绍Dijkstra算法最短路径的C++实现与输出路径,包括了Dijkstra算法最短路径的C++实现与输出路径的使用技巧和注意事项,需要的朋友参考一下 某个源点到其余各顶点的最短路径 这个算法最开始心里怕怕的,不知道为什么,花了好长时间弄懂了,也写了一遍,又遇到时还是出错了,今天再次写它,心里没那么怕了,耐心研究,懂了之后会好开心的,哈哈 Dijkstra算法: 图G 如图:若要求从顶
我有一个服务: 和一个入口路径: 但保存入口返回: 同步期间出错:评估入口规范时出错:服务“default/ExternalName”类型为“ExternalName”,应为“NodePort”或“LoadBalancer” GCE入口应支持外部名称服务(或者至少没有易于查找的文档表明存在其他错误),并且该错误很难追踪。
我试图在我的应用程序中使用JPA,但当我添加JPA并启动应用程序时,我遇到了这个错误。我在stackoverflow和其他网站上看到了与相同错误相关的问题,建议了许多答案,但没有运气解决这个错误。。我不明白我哪里做错了。 POM。XML 实体类 存储库类 控制器类 我得到的错误是 我试过了 创建在类路径资源中定义的名为“entityManagerFactory”的bean时出错:调用init方法失