我是使用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,因此我有点不知所措。
如果有人可以帮助我并指出正确的方向,我将不胜感激。谢谢
-担
最佳答案
您使用Index API在elasticsearch上摄取数据,这基本上是使用PUT方法的请求。
要使用Python做到这一点,您可以使用elasticsearch-py,用于elasticsearch的官方python客户端。
但是有时候,使用Logstash可以更轻松地完成您需要的操作,因为它可以从数据库中提取数据,使用许多过滤器将其格式化并发送给elasticsearch。