如何查看logstash日志?

时间:2016-05-19 06:22:59

标签: elasticsearch logstash

对于我的企业应用程序分布式和结构化日志记录,我使用logstash进行日志聚合,使用elastic search作为日志存储。我有清晰的控制将日志从我的应用程序推送到logstash。另一方面,从logstash到弹性搜索具有非常薄的控制。

假设,如果我的elasticsearch由于某些愚蠢的原因而失败,则logstash日志(/var/log/logstash/logstash.log)正在清楚地记录原因,如下所示。

Attempted to send a bulk request to Elasticsearch configured at '["http://localhost:9200/"]', but Elasticsearch appears to be unreachable or down! {:client_config=>{:hosts=>["http://localhost:9200/"], :ssl=>nil, :transport_options=>{:socket_timeout=>0, :request_timeout=>0, :proxy=>nil, :ssl=>{}}, :transport_class=>Elasticsearch::Transport::Transport::HTTP::Manticore, :logger=>nil, :tracer=>nil, :reload_connections=>false, :retry_on_failure=>false, :reload_on_failure=>false, :randomize_hosts=>false}, :error_message=>"Connection refused", :class=>"Manticore::SocketException", :level=>:error}

如何从logstash中收到error级别日志的通知或通知?

1 个答案:

答案 0 :(得分:0)

应该可以通过以下3个步骤来实现:

1)取决于您希望如何获得通知。如果电子邮件足够,您可以使用Logstash email output-plugin。 但there还有更多可用的输出插件。

2)要限制某些事件,您可以在Logstash配置中执行类似的操作(示例来自弹性支持site):

if [level] == "ERROR" {
  output {
     ...
  }
}

if子句不仅限于JSON的级别字段;您当然可以将它应用于任何JSON字段,这使它更强大。

3)要使其工作(而不是进入记录周期),您需要:

  • 在你的系统上启动第二个Logstash实例(只是观察Logstash ERROR日志),这应该可以写成here

  • 或者您只使用一个Logstash实例构建更复杂的配置。此配置必须将来自您的应用程序的日志语句转发到Elasitcsearch,而来自Logstash ERROR日志的日志记录将转发到例如。 Logstash电子邮件输出插件。

附注:你可能想看看Filebeat,它与Logstash(它也来自Elastic)非常有效,而且它比Logstash更加轻量级。它允许您的配置中包含include_lines: ["^ERR", "^WARN"]之类的内容。 要从Filebeat接收输入,您必须采用配置将数据发送到Logstash,对于Logstash,您必须激活并使用描述为here的Beats输入插件。

相关问题