将Sensu数据发送到流入数据库失败

时间:2016-12-22 02:02:52

标签: sensu

我一直在尝试将数据从Sensu发送到Influx DB。 我为Sensu创建了DB,并且在我的情况下也更新为侦听端口8090。 用户登录在Influxdb上看起来很好 我配置了几乎所有类似于此链接的内容 https://libraries.io/github/nohtyp/sensu-influxdb

我没有取得任何成功,也没有在数据库中看到任何数据。 有人试过吗?

1 个答案:

答案 0 :(得分:0)

如果默认配置不起作用,您也可以使用自定义脚本。它提供了只编写要保存的数据的选项,在运行脚本之前,安装InfluxDBClient(sudo apt-get install python-Influxdb)

from influxdb import InfluxDBClient
import fileinput
import json
import string
import datetime

json_body = " "

for line in fileinput.input():
   json_body = json_body + string.replace(line, '\n', ' ')

json_body = json.loads(json_body)

alert_in_ip = str(json_body["client"]["name"])
alert_in_ip = 'ip-' + string.replace(alert_in_ip, '.', '-')
alert_type = json_body["check"]["name"]
status = str(json_body['check']['status'])
time_stamp =(datetime.datetime.fromtimestamp(int(json_body["timestamp"])).strftime('%Y-%m-%d %H:%M:%S'))

json_body = [{ "measurement": alert_type,
    "tags": {
        "host": alert_in_ip
    },
    "time": time_stamp,
    "fields": {
        "value": int(status)
    }
}]

client = InfluxDBClient('localhost', 8086, 'root', 'root', 'sensu')

client.write_points(json_body)

从你的处理程序调用上面的脚本。

例如:

"sendinflux":{
               "type": "pipe",
               "command": "echo $(cat) | /usr/bin/python /home/ubuntu/save_to_influx.py",
               "severites": ["critical", "unknown"]
 }

希望它有所帮助!!