使用Python进行Elasticsearch数据插入

时间:2019-07-11 21:41:37

标签: 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]

我的python脚本成功调用了我们的数据库并检索了数据,还有一个将数据模制成dict对象的函数(据我所知,Elasticsearch以JSON格式获取数据)。

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

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

-丹

1 个答案:

答案 0 :(得分:1)

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

要使用Python做到这一点,您可以使用elasticsearch-py(elasticsearch的官方python客户端)。

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