当前位置: 首页 > 面试题库 >

Elastic search批量API,管道和Geo IP

龙安阳
2023-03-14
问题内容

我使用Bulk API将数据导入到我的ELK堆栈中。

{"index":{"_index":"waf","_type":"logs","_id":"325d05bb6900440e"}}
{"id":"325d05bb6900440e","country":"US","ip":"1.1.1.1","protocol":"HTTP/1.1","method":"GET","host":"xxxxx","user_agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36","uri":"/?a=><script>alert(1)</script>","request_duration":1999872,"triggered_rule_ids":["100030"],"action":"challenge","cloudflare_location":"unknown","occurred_at":"2017-01-23T17:38:58.46Z","rule_detail":[{"id":"","description":"ARGS:A"}],"rule_message":"Generic XSS Probing","type":"waf","rule_id":"100030"}

我在数据中有一个ip,我想使用GEOIP插件将其转为经度和纬度。

我创建了一个小人妖:

PUT _ingest/pipeline/geoip-info
{
"description": "Add geoip info",
"processors": [
{
  "geoip": {
    "field": "ip",
    "target_field": "client_geoip",
    "properties": ["location"],
    "ignore_failure": true
  }
}
]
}`

但是,当我导入数据时,管道会被忽略,有人可以解释我如何修改批量API,以通过管道传递信息,以便为我添加创建地图所​​需的时长。

谢谢


问题答案:

在批量通话中,您缺少管道名称

                                                                    here
                                                                      |
                                                                      V
{"index":{"_index":"waf","_type":"logs","_id":"325d05bb6900440e", "pipeline": "geoip-info"}}
{"id":"325d05bb6900440e","country":"US","ip":"1.1.1.1","protocol":"HTTP/1.1","method":"GET","host":"xxxxx","user_agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36","uri":"/?a=><script>alert(1)</script>","request_duration":1999872,"triggered_rule_ids":["100030"],"action":"challenge","cloudflare_location":"unknown","occurred_at":"2017-01-23T17:38:58.46Z","rule_detail":[{"id":"","description":"ARGS:A"}],"rule_message":"Generic XSS Probing","type":"waf","rule_id":"100030"}

或者您也可以在批量URL中进行设置

POST _bulk?pipeline=geoip-info


 类似资料:
  • 我想问一下关于Elasticsearch批量API的问题 这是我使用批量API的代码 我遇到了超时异常,因为我的记录有800K。java.net.SocketTimeoutException:连接超时30,000毫秒http-outgoing-16[活动] 我试图分解传入的jsonList,但有时会出现相同的错误。 我目前使用的是Elasticsearch 7.6.2版本。 异常跟踪 Java.n

  • 问题内容: 我找不到任何有关Elastic Bulk API在一项或多项操作失败时会发生什么情况的文档。例如,对于以下请求,假设已经有一个ID为“ 3”的文档,那么“创建”应该 失败-这会使所有其他操作失败 吗? 我正在使用nodejs弹性模块。 问题答案: 任何一项行动的任何失败都不会影响其他行动。 从elasticsearch bulk api 的文档中: 对批量操作的响应是一个大型JSON结

  • 问题内容: 试图让批量更新在ES 1.0.1上运行。 我在邮递员内发布以下内容: URL 或以 请求正文 : 我已经尝试过,无论有没有。我总是 在使用数据进行创建时,它也做同样的事情: 更新资料 我已经在Mac,PC和Linux上尝试过此方法,但不断出现相同的错误。 问题答案: 即使我在最后一行上,我在最后一个json行之后也确实要有完整的回车符。 以下工作: 因此,在该行下方需要有一个空行。

  • 问题内容: 似乎我有一个相似但不相同的查询,因此最好像@Val建议的那样,让其他人从中受益。 因此,类似于上述内容,我需要在索引中插入大量数据(我的初始测试大约是10000个文档,但这只是针对POC,还有更多)。我想插入的数据在.json文档中,看起来像这样(片段): 我自己是ElasticSearch的新手,但是,从阅读文档开始,我的假设是我可以获取.json文件并根据其中的数据创建索引。从那以

  • 背景资料 我正在开发一个API,允许用户传递关于成员的详细信息列表(姓名,电子邮件地址,...)我想使用这些信息与我的Elasticsearch数据库中的帐户记录进行匹配,并返回潜在匹配的列表。 我以为这将是简单的做一个bool查询领域我想要的,但是我似乎没有得到任何点击。 我对Elasticsearch比较陌生,我当前的搜索请求如下所示。 查询示例 POST/member/account/\u搜

  • 问题内容: 这是我的要求: 这是错误: [3], expected START_OBJECT or END_OBJECT but found [VALUE_STRING]]“,“状态”:500} 基本上,每个文档都是{“ firstname”:,“ lastname”:_}我不想将它们包装到父字段中。我从根本上缺少什么? 问题答案: 您只是缺少第二和第三个文档的操作行,请尝试如下操作: