将日志发送到远程弹性堆栈实例

时间:2019-03-05 18:59:04

标签: node.js elasticsearch kibana filebeat winston

我最近已配置一个独立的环境来托管我的弹性堆栈,如此处所述

https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elastic-stack-on-ubuntu-18-04

概述

设置如下

NGinx(:80)

因此,要访问我的日志,我只需在浏览器中转到<machine-ip>:80,然后使用我在指南中设置的kibana凭据登录。

我的日志记录服务器已正确设置为使用文件拍将系统日志发送到日志存储等-我不确定是在远程计算机上复制此行为的正确方法

问题

我现在想将日志从另一台机器发布到我的日志服务器,但是我不确定实现此目的的最佳方法-这是我的理解。

1)在我要发送日志的机器上安装log-stash + filebeat

2)使用日志存储中的filebeat +格式从Docker容器读取STDOUT

3)将日志存储输出发送到我的日志记录服务器

现在最后一点是我不确定的部分(或者其他部分也不是最好的方法!)

我的问题是

问题1)我也应该在哪里发布日志-我应该点击<machine-ip>:80并直接通过kibana进行对话,还是应该打开9200端口直接与弹性搜索进行对话(并且如果是这样,我应该如何通过凭据对这种通信进行身份验证,例如Kibana)

第二季度 是从Docker容器(本例中为nodeJS)进行日志记录的最佳实践是什么。我应该像上面提到的第1点和第2点那样设置,在那台机器上运行logstash / file-beat还是有更好的方法

非常感谢您的帮助!

e / Q1解决方案

我为未来的任何人都提出了Q1解决方案

1)设置一个侦听弹性堆栈日志服务器上端口8080的NGINX代理 -仅允许来自我的应用程序服务器的流量与之通信

2)转发流量到运行在端口9200上的elasticsearch实例

nginx配置看起来像这样

server {
    listen 8080;
    allow xxx.xxx.xxx.xx;
    deny all;
    location / {
      proxy_pass http://localhost:9200;
    }
}

1 个答案:

答案 0 :(得分:0)

https://www.npmjs.com/package/winston-transport-udp-logstash(如果要尝试),我创建了这个npm包以将数据发送到ups logstash端点