解析日志文件并将信息发送到sensu
是否有一种方法可以进行Sensu检查,将.log文件作为输入并对其进行解析并将选定的信息返回到InfluxDB。解析日志文件并将信息发送到sensu
我很新,所以也许我没有描述我的问题最好的方法。
我发现最好的方法是使用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