参考文档地址:https://edu.51cto.com/course/30254.html
rabbitmq_exporter监控rabbitmq时,获取不到监控指标数据,查看报错信息,发现有如下报错信息:
..........
Error while retrieving data from rabbitHost
..........
可能有如下原因:
原因1
rabbitmq没有拥有“monitoring”角色的用户,而且还可能存在这种情况:即使你给rabbitmq创建了一个拥有monitoring角色的用户,但是rabbitmq_exporter依然获取不到rabbitmq的监控指标数据,日志里边显示rabbitmq_exporter监控指标数据默认使用的是guest用户。
碰到这种情况的一种解决方案是:给guest用户授予“monitoring”角色,然后rabbitmq_exporter启动时指定guest的用户名和密码。
#查看当前所有用户
rabbitmqctl list_users
#没有guest用户的话创建一个
rabbitmqctl add_user name passwd
#赋予其minitoring角色
rabbitmqctl set_user_tags guest minitoring
#启动rabbitmq_exporter时指定guest的用户名和密码
nohup ./rabbitmq_exporter RABBIT_USER=guest RABBIT_PASSWORD=guest OUTPUT_FORMAT=json RABBIT_CAPABILITIES=compat PUBLIC_PORT=9090 RABBIT_URL=http://xx.xx.xx.xx:5672 &
原因2
根据rabbitmq_exporter官方的说法,默认情况下,此导出器期望来自 rabbitmq 3.6.8 或更高版本的功能。如果您运行的版本早于 3.6.8,则必须设置 RABBIT_CAPABILITIES=compat。相见其官方文档:https://github.com/kbudde/rabbitmq_exporter/