一个想法是使用 elasticsearch logstash过滤器 为了在Logstash处理访问日志文档时获取给定的发布。
elasticsearch
该过滤器将检索 sm_creator 在该领域 publications 索引具有相同的 object_id 并使用您需要的出版物文档中的任何字段丰富访问日志。此后,您只需查询logstash- *索引即可。
sm_creator
publications
object_id
elasticsearch { hosts => ["localhost:9200"] index => publications query => "id:%{object_id}" fields => {"sm_creator" => "author"} }
因此,您的访问日志文档将在此之后显示为 的 “给我所有访问'史密斯,约翰'的出版物” 强> 你可以简单地查询 sm_creator 所有logstash索引中的字段
{ "type": "apache_access", "clientip": "192.243.xxx.xxx", "verb": "GET", "request": "/publications/boreal:12345?direction=rtl&language=en", ... "url_path": "/publications/boreal:12345", "url_params": { "direction": "rtl", "language": "end" }, "object_id": "boreal:12345", "author": [ "Smith, John", "Dupont, Albert", "Reegan, Ronald" ], ... }