2015-10-05 168 views

回答

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 { 
     ... 
    } 
} 

这种方法将跳过扇子一起。如果你想将日志发送给扇子,看到了输出团扇,将涉及您的logstash过滤器设置了一些扇子友好的信息:

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" } 
    } 
} 

并发送日志意义上的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" 
    } 
} 

定义这个(上述logstash过滤器名称)一个扇子处理程序,并把它传递给InfluxDB之前做任何多余的处理有。 如果您还没有Sensu发送数据到InfuxBD已经设置,请到这里:https://github.com/sensu-plugins/sensu-plugins-influxdb

相关问题