【问题标题】:sending logs to logstash via http input from node application通过节点应用程序的 http 输入将日志发送到 logstash
【发布时间】:2018-08-01 00:51:32
【问题描述】:

我在 linux 机器上安装了 elk,并且我已经将我的节点应用程序托管在同一台机器上。现在我想通过http输入或restful api将我的节点应用程序日志发送到logstash。有人知道吗??

提前致谢。

【问题讨论】:

  • 为什么不将您的节点日志转储到文件中并让 Logstash 跟踪它们?通过 HTTP 同步发送日志不是一个好主意。如果 Logstash 由于某种原因宕机了怎么办?如果 Logstash 由于某种原因变慢了怎么办?您的节点应用程序会无缘无故地受到影响。
  • 感谢您的回复 Val。无论你说什么都是完美的和真棒的。但是我还有一个问题,即我想在每个函数中异步维护该http方法,并且我也想将日志存储在文件中,然后我会将它们发送到logstash。好吗 ???如果我的想法不好,请告诉我。对不起我愚蠢的英语。

标签: node.js elasticsearch logstash filebeat


【解决方案1】:

你试过使用logstash-input-http插件吗?

在logstash.conf中

input {
  http {
    host => "0.0.0.0"
    port => 8080
  }
}

【讨论】:

  • 没有哥们,能解释一下如何在node应用中配置吗??
  • 首先,你应该安装logstash-input-http插件并在logstash conf中设置这个,之后,你可以使用logstash machin的ip向logstash发送http post请求。 var request = require('request'); request.post("http:/logstashIP:8080", { data: { key: 'value' } }, function (error, response, body) { if (!error && response.statusCode == 200) { console.log (正文) } } );
  • hai yountae,我想在linux机器和我的节点应用程序中安装logstash-input-http吗???
  • hai youtae 你知道如何在centos 上安装logstash-input-http 吗??我没有找到安装它的命令。
  • 找到你的logstash路径,比如"/usr/share/logstash/bin/" 进入这个文件夹并执行logstash-plugin install logstash-input-http
【解决方案2】:

我同意 @val ,写到 Logstash http 并不理想 在中间添加像Kafka这样的消息代理,可以帮助你,Logstash可以从kafka中读取

【讨论】:

  • 谢谢你兄弟。是否有机会创建一个必须在每个功能中调用的 http 方法,并且这些日志应该转到我们的应用程序文件,然后是 logstash。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多