如何配置Sensu与RabbitMQ及InfluxDB?配置Sensu-InfluxDB遇阻求助
问题分析与解决方案
从你的描述来看,这套监控架构的核心逻辑是通顺的,但确实漏掉了一个关键组件——Sensu InfluxDB Handler,这大概率就是你卡在Sensu与InfluxDB配置环节的核心原因。
1. 补全架构缺失环节
完整的数据流链路应该是:
- Client [Sensu] → RabbitMQ → Sensu Server → Sensu InfluxDB Handler → InfluxDB → Grafana
这个Handler是Sensu Server将监控指标转发到InfluxDB的专属桥梁,没有它的话,Sensu收集到的指标根本无法投递到InfluxDB中。
2. 一步步完成配置修复
第一步:安装Sensu InfluxDB Handler插件
根据你使用的Sensu版本选择对应的安装方式:
- 如果你用的是传统Sensu(Ruby版),在Sensu Server节点执行:
gem install sensu-plugins-influxdb
- 如果你用的是Sensu Go版本,执行:
sensuctl asset add sensu/sensu-influxdb-handler
第二步:完善influx.json配置文件
你提供的配置片段不完整,这里给你一个标准的单节点场景配置示例(放在Sensu的/etc/sensu/conf.d/目录下):
{ "influxdb": { "host": "192.168.1.1", "port": 8086, "database": "sensu_metrics", "username": "sensu", "password": "your_influxdb_password", "retention_policy": "autogen", "use_ssl": false, "verify_ssl": false }, "handlers": { "influxdb": { "type": "pipe", "command": "influxdb-handler" } } }
注意:配置前要先在InfluxDB上手动创建
sensu_metrics数据库,以及对应的sensu用户并赋予读写权限;另外你的原配置里同时写了hosts和host,单节点场景用host即可,多节点集群才需要hosts数组。
第三步:绑定Handler到监控检查项
要确保你的Sensu检查配置里指定使用这个influxdb handler,比如在检查的JSON配置中添加:
{ "checks": { "cpu_usage_check": { "command": "check-cpu.rb -w 80 -c 90", "subscribers": ["web_servers"], "interval": 60, "handlers": ["influxdb", "default"] } } }
这样检查产生的指标数据才会被自动转发到InfluxDB。
第四步:验证配置有效性
- 重启Sensu Server服务:
systemctl restart sensu-server
- 手动触发一次监控检查,然后登录InfluxDB执行查询语句验证:
USE sensu_metrics; SELECT * FROM cpu_usage LIMIT 10;
如果能查到数据,说明配置成功;如果没有数据,去查看Sensu Server日志(通常在/var/log/sensu/sensu-server.log),排查是否存在InfluxDB连接失败、权限不足等报错。
另外补充:你已经配置好的Uchiwa是Sensu的事件看板,和Grafana的指标可视化是互补关系,不会影响数据流向,继续保留即可。
内容的提问来源于stack exchange,提问作者case
相关产品推荐
相关产品推荐

