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

问题描述 投票:0回答:1

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

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

概观

设置如下

NGinx(:80)<Kibana(:5601)<Elastic Search(:9200)<Log Stash

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

我的日志服务器设置正确,使用文件节拍将系统日志发送到log-stash等 - 我不确定在远程机器上复制此行为的正确方法

我现在想从另一台机器上将日志发布到我的日志服务器上,但我不确定最好的方法来解决这个问题 - 这是我的理解。

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

2)使用logbeash中的filebeat + format从docker container / s中读取STDOUT

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

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

我的问题是

Q1)我应该在哪里发布我的日志 - 我应该打我的<machine-ip>:80并直接通过kibana说话,还是应该打开端口9200来直接与弹性搜索交谈(如果是这样的话,我应该如何通过凭证来验证这种通信,如Kibana )

Q2)从docker容器登录的最佳实践是什么(在我的例子中是nodeJS)。我应该设置像点1 + 2那样我在那台机器上运行logstash / file-beat还是有更好的方法

任何帮助深表感谢!

e/ Solution for 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;
    }
}

node.js elasticsearch kibana filebeat winston
1个回答
0
投票

https://www.npmjs.com/package/winston-transport-udp-logstash如果你想尝试我创建这个npm包来发送数据到ups logstash端点

© www.soinside.com 2019 - 2024. All rights reserved.