有没有办法进行Sensu检查,将.log文件作为输入并解析它并将所选信息返回到InfluxDB。
我是新手,所以也许我没有用最好的方式描述我的问题。
答案 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