解析日志文件并将信息发送到sensu

时间:2015-10-05 13:09:05

标签: parsing logging sensu

有没有办法进行Sensu检查,将.log文件作为输入并解析它并将所选信息返回到InfluxDB。

我是新手,所以也许我没有用最好的方式描述我的问题。

1 个答案:

答案 0 :(得分:0)

我发现最好的方法是使用Logstash(主要是因为我使用ELK进行常规日志聚合)。

设置Logstash服务器。 https://www.elastic.co/products/logstash

在客户端上安装logstash-forwarder。配置logstash-forwarder以读取所需的日志并将其发送到logstash服务器。 https://github.com/elastic/logstash-forwarder

在Logstash服务器的配置中;

为要发送给sensu(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-lumberjack.html)的日志定义伐木工人输入。

例如:     输入{

  lumberjack {
    port => 5555
    type => "logs"
    tags => ["lumberjack", "influxdb"]
  }
}

进行处理/过滤。 例如:

filter {
  if ("influxdb" in [tags]) {
      ...
  }
}

定义InfluxDB输出(https://www.elastic.co/guide/en/logstash/current/plugins-outputs-influxdb.html)。 例如:

output {
  influxdb {
      ...
   }
}

此方法将一起跳过Sensu。如果您确实要将日志发送到Sensu并查看Uchiwa的输出,则需要在您的logstash过滤器中设置一些Sensu友好信息:

filter {
  if ("influxdb" in [tags]) {
      add_field => { "name" => "SensuCheckName" }
      add_field => { "handler" => "SensuHandlerName" }
      add_field => { "output" => "the stuff you want to send to sensu" }
      add_field => { "status" => "1" }
  }
}

将日志发送到sensu的RabbitMQ传输(https://www.elastic.co/guide/en/logstash/current/plugins-outputs-rabbitmq.html):

output {
  rabbitmq {
      exchange => "results"
      exchange_type => "direct"
      host => "192.168.0.5 or whatever it is"
      vhost => "/sensu"
      user => "sensuUser"
      password => "whateverItIs"
   }
}

为此定义一个Sensu处理程序(logstash过滤器中的名称)并在将其传递给InfluxDB之前进行任何额外的处理。 如果您还没有Sensu向已经设置的InfuxBD发送数据,请转到此处:https://github.com/sensu-plugins/sensu-plugins-influxdb