将heroku日志消耗连接到logstash

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将heroku日志消耗连接到logstash相关的知识,希望对你有一定的参考价值。

我在Elastic Cloud上创建了一个elasticsearch集群,并尝试从Heroku发送日志。到目前为止,我没有收到数据。

我有以下问题:

  1. 运行heroku drains时,我应该使用什么URL进行日志消耗:添加?当我访问Kibana时,我的网址是https://my_id.us-east-1.aws.found.io:9243。我应该用吗?或者删除端口?
  2. 我应该如何设置我的Logstash配置?现在我在GitHub上使用this gist进行设置。

感谢您帮助实现这一目标。

答案

运行heroku时,我应该使用什么URL来记录日志

它应该是运行Logstash的实例的URL。该URL应包含Logstash正在侦听的端口。

例如,如果您使用https://my_id.us-east-1.aws.found.io作为实例地址,并使用您提到的作为logstash配置的要点,则URL应为:

https://my_id.us-east-1.aws.found.io:1514

我应该如何设置我的Logstash配置?

这得看情况。你提到的要点可能是一个好的开始。但它很过时了。因此,如果它不起作用,请考虑以下事项:

  • 根据Heroku官方文档的“Log Drains”页面中的“HTTPS drains”部分,heroku发送的日志是syslog格式: 使用HTTPS消息,Logplex会缓冲日志消息,并通过POST请求将批量消息提交到HTTPS端点。 POST正文包含syslog格式的消息...
  • 在ElasticSearch官方文档的“Logstash配置示例”页面的“处理Syslog消息”部分中,有一个Logstash配置示例将解析syslog格式的消息。 这是完整的例子: filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:[%{POSINT:syslog_pid}])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } } output { elasticsearch { hosts => ["localhost:9200"] } stdout { codec => rubydebug } } 注意:在此配置中,您需要将localhost:9200更改为Elastic Cloud上Elasticsearch集群的地址。

另外,这是一个用sample编写的应用程序代码。它不涉及Logstash。相反,它会自定义处理日志数据。

以上是关于将heroku日志消耗连接到logstash的主要内容,如果未能解决你的问题,请参考以下文章

ini Logstash配置使用编解码器多线解析Scala / Java日志,以将异常和堆栈跟踪消息连接到单个事件和gro中

是啥导致了这个 Heroku mysql 连接错误? (尝试将前端连接到后端 POST 请求)

Heroku 没有连接到 Mongo Atlas DB?

Heroku 没有连接到 Mongo Atlas DB?

postgres服务器拒绝连接到heroku

Nodejs App 崩溃 heroku - 错误无法连接到 localhost:27017