使用 Python 插入 Elasticsearch 数据

dan*_*oll 5 python elasticsearch logstash kibana elastic-stack

我对使用 Elastic Stack 还很陌生,所以请原谅我缺乏这方面的知识。我在 Windows 10 公司工作计算机上运行 Elastic Stack。我已经为 bash cli 安装了 Git Bash,并且可以成功启动整个 Elastic Stack。我的任务是获取存储在我们的数据库之一中的日志数据并将其显示在 Kibana 仪表板上。

根据我和我的团队的推理,我不需要使用 Logstash,因为日志发送到的数据库实际上是我们的“日志存储”,因此使用 Logstash 服务将是多余的。我发现了这个漂亮的图表1]

在 freecodecamp 上,据我所知,Logstash 只是日志检索不同服务的中介。因此,我可以不使用 Logstash,因为日志数据已经在数据库中,我可以这样做

USER ---> KIBANA <---> ELASTICSEARCH <--- My Python Script <--- [DATABASE]
Run Code Online (Sandbox Code Playgroud)

我的 python 脚本成功调用我们的数据库并检索数据,以及将数据塑造成 dict 对象的函数(据我所知,Elasticsearch 以 JSON 格式获取数据)。

现在我想将所有这些数据插入 Elasticsearch - 我一直在阅读 Elastic 文档,并且有很多关于索引的讨论,但并不是真正的索引,而且我还没有找到任何可以用来插入的 API 调用将数据直接导入 Elasticsearch。到目前为止我找到的所有文档都涉及 Logstash 的使用,但由于我没有使用 Logstash,所以我在这里有点不知所措。

如果有人可以帮助我并指出正确的方向,我将不胜感激。谢谢

-担

lea*_*jmp 6

您使用Index API获取 elasticsearch 上的数据,它基本上是使用 PUT 方法的请求。

要使用 Python 执行此操作,您可以使用elasticsearch-py,它是 elasticsearch 的官方 python 客户端。

但有时使用 Logstash 可以更轻松地完成您需要的工作,因为它可以从数据库中提取数据,使用许多过滤器对其进行格式化并发送到 Elasticsearch。