我是刚开始使用Elastic Stack的人,所以请原谅我缺乏关于该主题的知识。我正在Windows 10公司工作计算机上运行Elastic Stack。我已经为bash cli安装了Git Bash,并且可以成功启动整个Elastic Stack。我的任务是获取存储在我们数据库之一中的日志数据,并将其显示在Kibana仪表板上。
根据我和我的团队的推断,我不需要使用Logstash,因为发送日志的数据库实际上是我们的“日志存储”,因此使用Logstash服务将是多余的。我发现了这个漂亮的图
在freecodecamp上,根据我的收集,Logstash只是用于检索不同服务的日志的中介。因此,由于日志数据已经存在于数据库中,所以不用使用Logstash,我可以做这样的事情
USER ---> KIBANA <---> ELASTICSEARCH <--- My Python Script <--- [DATABASE]
我的python脚本成功调用了我们的数据库并检索了数据,还有一个将数据模制成dict对象的函数(据我所知,Elasticsearch以JSON格式获取数据)。
现在,我想将所有这些数据插入到Elasticsearch中-我一直在阅读Elastic文档,并且有很多关于索引的讨论并没有真正建立索引,而且我还没有找到我可以使用的任何API调用用于将数据直接插入Elasticsearch。到目前为止,我发现的所有文档都涉及Logstash的使用,但是由于我没有使用Logstash,因此我有点不知所措。
如果有人可以帮助我并指出正确的方向,我将不胜感激。谢谢
-丹
答案 0 :(得分:1)
您使用Index API在elasticsearch上提取数据,基本上这是使用PUT方法的请求。
要使用Python做到这一点,您可以使用elasticsearch-py(elasticsearch的官方python客户端)。
但是有时候使用Logstash可以更轻松地完成您需要的操作,因为它可以从数据库中提取数据,使用许多过滤器对其进行格式化,然后发送给elasticsearch。