这是我的logstash.conf
:
input {
http {
host => "127.0.0.1"
port => 31311
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
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'
在我的logstash
终端中显示了以下输出:
{
"@timestamp" => 2019-04-09T08:32:09.250Z,
"message" => "",
"@version" => "1",
"headers" => {
"request_path" => "/twitter",
"http_version" => "HTTP/1.1",
"http_user_agent" => "curl/7.64.1",
"request_method" => "PUT",
"http_accept" => "*/*",
"content_length" => "0",
"http_host" => "127.0.0.1:31311"
},
"host" => "127.0.0.1"
}
当我跑的时候
C:\users\me\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-xget“http://127.0.0.1:9200/_cat/indexes”
在PowerShell里面,我看到
黄色开放日志stash-2019.04.091THSTDPFQYSWL1WPNEIWPQ 5 1 0 0 401B 401B
根据ElasticSearch约定,创建了一个名为logstash-2019.04.09
的索引,以响应我的put
请求。
我的问题是:如果我希望索引具有与.\curl.exe-xput'http://127.0.0.1:31311/{index_name}'
命令中传递的{index_name}
参数相同的值,那么我应该如何在logstash.conf
文件中配置ElasticSearch输出?
Edit:为了澄清,我希望每次发出put
请求创建新索引时都动态读取{index_name}
。这可能吗?
可以使用索引输出配置选项。
此配置可以使用%{foo}
语法进行动态配置。由于希望[headers][request_path]
的值位于索引配置中,因此可以执行如下操作:
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[headers][request_path]}"
}
}
要使其工作,值[headers][request_path]
字段不能包含以下任何字符:[,\“,*,\\,<,,,>,/,?]
。我建议您使用变异筛选器的gsub配置选项。因此,要删除所有正斜杠,您应该使用如下内容:
filter{
mutate{
gsub => ["[headers][request_path]","/",""]
}
}
如果请求路径有几个正斜杠,可以用ElasticSearch接受的字符替换它们。
所以,最终的logstash.conf文件应该如下所示:
input {
http {
host => "127.0.0.1"
port => 31311
}
}
filter{
mutate{
gsub => ["[headers][request_path]","/",""]
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[headers][request_path]}"
}
stdout {
codec => "rubydebug"
}
}
当我发送请求时,如下所示 C:\users\bolverkxr\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-xput'http://127.0.0.1:31311/twitter' 我希望创建一个名为的新索引,而不是使用ElasticSearch默认值。 编辑: 当我将段更改为以下内容时,也会发生同样的错误:
问题内容: 我有一个用例,需要每月在Elasticsearch中创建索引。这个想法是在月度基础上创建索引,以便它们易于维护并且可以在过期时删除。为此,我使用了spring- batch并有一个月度工作,它将按月基础创建索引以供Elasticsearch使用-Java集成我已经使用了Spring-Data Elasticsearch实现。我现在面临的问题是,我无法弄清楚如何使用Entity对象为索引
问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点
我正在开发一个web应用程序,并试图使用它的文本创建一个pdf文档。 当我得到一个路径(本地和服务器上)时,它工作得很好,但我知道我需要在不实际创建它的情况下完成它。 我不想要的:PdfCopy copy=newpdfcopy(documentPDF,newfileoutputstream(mypath)) 我想要的是://PdfCopy copy=new PdfCopy(documentPDF,
我有一个服务: 和一个入口路径: 但保存入口返回: 同步期间出错:评估入口规范时出错:服务“default/ExternalName”类型为“ExternalName”,应为“NodePort”或“LoadBalancer” GCE入口应支持外部名称服务(或者至少没有易于查找的文档表明存在其他错误),并且该错误很难追踪。
本文向大家介绍Dijkstra算法最短路径的C++实现与输出路径,包括了Dijkstra算法最短路径的C++实现与输出路径的使用技巧和注意事项,需要的朋友参考一下 某个源点到其余各顶点的最短路径 这个算法最开始心里怕怕的,不知道为什么,花了好长时间弄懂了,也写了一遍,又遇到时还是出错了,今天再次写它,心里没那么怕了,耐心研究,懂了之后会好开心的,哈哈 Dijkstra算法: 图G 如图:若要求从顶