elasticsearch 如何将应用程序日志从NodeJS应用程序发送到Kubernetes中托管的弹性堆栈?
我正在构建一个NodeJS应用程序,并尝试使用弹性堆栈来收集日志。我想要的日志是:elasticsearch 如何将应用程序日志从NodeJS应用程序发送到Kubernetes中托管的弹性堆栈?,elasticsearch,logstash,elastic-stack,elasticsearch,Logstash,Elastic Stack,我正在构建一个NodeJS应用程序,并尝试使用弹性堆栈来收集日志。我想要的日志是: 错误日志 应用程序日志,如用户登录、用户执行此任务、系统执行此任务等 现在,我的应用程序托管在Kubernetes中,我还将弹性堆栈部署到同一个GKE集群中。现在我对弹性堆栈还不熟悉。我有一个小主意,我们必须将数据发送到logstash,然后它会发送到弹性搜索。然后我们可以想象在基巴纳。我试着按照几个教程,但仍然没有一个坚实的想法如何做到这一点。将我的应用程序连接到堆栈。所以,我可以知道 我应该将日志发送到
- 错误日志
- 应用程序日志,如用户登录、用户执行此任务、系统执行此任务等
- 我应该将日志发送到堆栈中的哪个位置(弹性搜索、日志存储或filebeat)
- 如何将日志从NodeJS应用发送到同一Kubernetes集群中托管的弹性堆栈
- 我应该使用什么工具来做这项工作
提前感谢免责声明:我不是DevOps人,但从用户角度来看,我习惯于使用ELK stack 我认为您可以从3个基本组件开始:
- Logstash(或filebeat)
- 弹性搜索本身
- 基巴纳
这是一个基本的堆栈,虽然基本仍然非常灵活,可以用于实际项目。非常感谢。现在,我使用winston将日志写入节点应用程序中的一个文件。因此,它在应用程序根目录中创建
error.log
和combined.log
(根据我的docker文件WORKDIR/usr/src/app
)。现在我已经安装了filebat,但它需要Nginx和其他东西的所有日志,但不是这个。如何告诉它准确地获取这两个文件?我没有使用filebeat,但我相信您应该配置要读取的日志模式(他们称之为“源”或“浏览者”),您应该找到一个filebeat.yml文件,其中包含此文件的配置。。。看起来已对浏览者进行了清理。它给了我一个错误,说:“filebeat.prospectors”已被删除
,可能这取决于您使用的filebeat版本。这里是最新文档的链接:还可以查看文件/etc/filebeat/filebeat.reference.yml。它应该包含一个您可以从中引用的示例