rabbitmq-exporter部署方式

本文介绍如何使用docker部署RabbitMQ Prometheus导出器并配置相关参数,包括使用环境变量或配置文件的方式。此外还介绍了扩展RabbitMQ功能以提高监控效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

rabbitmq-exporter部署方式

来源

https://github.com/kbudde/rabbitmq_exporter/

说明

RabbitMQ 指标的 Prometheus 导出器。数据由prometheus 抓取。

请注意这是一个非官方插件。还有一个来自RabbitMQ.com的官方插件。查看与官方出口商的比较

部署方式

docker部署:

rabbitmq_exporter 与 rabbitmq 容器共享网络接口 -> 可以使用 localhost 和默认用户/密码(guest)。

  1. 启动rabbitMQ

    docker run -d -e RABBITMQ_NODENAME=my-rabbit --name my-rabbit -p 9419:9419 rabbitmq:3-management

  2. 在容器中启动 rabbitmq_exporter

    docker run -d --net=container:my-rabbit kbudde/rabbitmq-exporter

现在您的指标通过http://host:9419/metrics公开

配置文件配置

文件下载:
https://github.com/kbudde/rabbitmq_exporter/releases/download/v1.0.0-RC8/rabbitmq_exporter-1.0.0-RC8.linux-amd64.tar.gz
解压后进入目录;
Rabbitmq_exporter 可以使用 json 配置文件或环境变量进行配置。
Rabbitmq_exporter 需要“conf/rabbitmq.conf”中的配置文件。如果您在容器 (docker/kubernetes) 中运行导出器,则配置必须在“/conf/rabbitmq.conf”中。文件名可以用标志覆盖:

./rabbitmq_exporter -config-file config.example.json

具体格式如下:

{
    "rabbit_url": "http://127.0.0.1:15672",
    "rabbit_user": "guest",
    "rabbit_pass": "guest",
    "publish_port": "9419",
    "publish_addr": "",
    "output_format": "TTY",
    "ca_file": "ca.pem",
    "cert_file": "client-cert.pem",
    "key_file": "client-key.pem",
    "insecure_skip_verify": false,
    "exlude_metrics": [],
    "include_queues": ".*",
    "skip_queues": "^$",
    "skip_vhost": "^$",
    "include_vhost": ".*",
    "rabbit_capabilities": "no_sort,bert",
    "enabled_exporters": [
            "exchange",
            "node",
            "overview",
            "queue"
    ],
    "timeout": 30,
    "max_queues": 0
}

注:

Environment

variable

default description

RABBIT_URL

http://127.0.0.1:15672

url to rabbitMQ management plugin (must start with http(s)??/)

RABBIT_USER

guest

username for rabbitMQ management plugin. User needs monitoring tag!

RABBIT_PASSWORD

guest

password for rabbitMQ management plugin

RABBIT_USER_FILE

location of file with username (useful for docker secrets)

RABBIT_PASSWORD_FILE

location of file with password (useful for docker secrets)

PUBLISH_PORT

9419

Listening port for the exporter

PUBLISH_ADDR

“”

Listening host/IP for the exporter

OUTPUT_FORMAT

TTY

Log ouput format. TTY and JSON are suported

LOG_LEVEL

info

log level. possible values: “debug”, “info”, “warning”, “error”, “fatal”, or “panic”

CAFILE

ca.pem

path to root certificate for access management plugin. Just needed if self signed certificate is used. Will be ignored if the file does not exist

CERTFILE

client-cert.pem

path to client certificate used to verify the exporter’s authenticity. Will be ignored if the file does not exist

KEYFILE

client-key.pem

path to private key used with certificate to verify the exporter’s authenticity. Will be ignored if the file does not exist

SKIPVERIFY

false

true/0 will ignore certificate errors of the management plugin

SKIP_VHOST

^$

regex, matching vhost names are not exported. First performs INCLUDE_VHOST, then SKIP_VHOST

INCLUDE_VHOST

.*

regex vhost filter. Only queues in matching vhosts are exported

INCLUDE_QUEUES

.*

regex queue filter. Just matching names are exported

SKIP_QUEUES

^$

regex, matching queue names are not exported (useful for short-lived rpc queues). First performed INCLUDE, after SKIP

RABBIT_CAPABILITIES

bert,no_sort

comma-separated list of extended scraping capabilities supported by the target RabbitMQ server

RABBIT_EXPORTERS

exchange,node,queue

List of enabled modules. Possible modules: connections,shovel,federation,exchange,node,queue,memory

RABBIT_TIMEOUT

30

timeout in seconds for retrieving data from management plugin.

MAX_QUEUES

0

max number of queues before we drop metrics (disabled if set to 0)

EXCLUDE_METRICS

Metric names to exclude from export. comma-seperated. e.g. “recv_oct, recv_cnt”. See exporter_*.go for names

示例和推荐设置:

SKIP_QUEUES="RPC_.*" MAX_QUEUES=5000 ./rabbitmq_exporter

扩展的 RabbitMQ 功能

较新版本的 RabbitMQ 可以提供一些功能,以减少因抓取此导出器所需的数据而造成的开销。RABBIT_CAPABILITIESenv var目前支持以下功能 :

  • no_sort:默认情况下,RabbitMQ 管理插件使用 vhost/name 的默认排序顺序对结果进行排序。sort=从版本 3.6.8 开始,可以通过将空排序参数 ( )传递给 RabbitMQ来避免这种排序开销。在早期的 3.6.X 版本上可以安全地启用此选项,但它不会提供任何性能改进。它与 3.4.X 和 3.5.X 不兼容。

  • bert:从 3.6.9(参见 https://github.com/rabbitmq/rabbitmq-management/pull/367)开始,RabbitMQ 支持 BERT 编码作为 JSON 替代方案。鉴于 BERT 编码是在 Erlang VM 中用 C 实现的,它比纯 Erlang JSON 编码更有效。所以当我们在 RabbitMQ 中有很多对象时,这大大减少了监控开销。
    rabbmitmq < 3.6 用户注意事项
    默认情况下启用 no_sort 和 bert。您必须使用以下内容覆盖默认设置:

    RABBIT_CAPABILITIES=nobert ./rabbitmq_exporter

所有指标(golang/prometheus 指标除外)都以“rabbitmq_”为前缀。

好的,下面是在Linux上部署RabbitMQ的步骤: 1. 安装 Erlang RabbitMQ 是使用 Erlang 语言编写的,因此需要先安装 Erlang。可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install erlang ``` 2. 添加 RabbitMQ 的 APT 源 在 Ubuntu 上可以使用以下命令添加 RabbitMQ 的 APT 源: ``` echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list ``` 3. 导入 RabbitMQ 的公钥 使用以下命令导入 RabbitMQ 的公钥: ``` wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - ``` 4. 安装 RabbitMQ 使用以下命令安装 RabbitMQ: ``` sudo apt-get update sudo apt-get install rabbitmq-server ``` 5. 启动 RabbitMQ 使用以下命令启动 RabbitMQ: ``` sudo service rabbitmq-server start ``` 6. 验证 RabbitMQ 是否运行 使用以下命令验证 RabbitMQ 是否正在运行: ``` sudo rabbitmqctl status ``` 如果输出类似于以下内容,则说明 RabbitMQ 正在运行: ``` Status of node rabbit@localhost ... [{pid,14114}, {running_applications,[{rabbitmq_management,"RabbitMQ Management Console","3.7.16"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.16"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.16"}, {rabbit,"RabbitMQ","3.7.16"}, {rabbit_common,[],"3.7.16"}, {cowboy,"Small, fast, modern HTTP server.","1.0.1"}, {amqp_client,"RabbitMQ AMQP Client","3.7.16"}, {rabbitmq_auth_backend_ldap,"RabbitMQ LDAP Authentication Backend","3.7.16"}, {rabbitmq_auth_mechanism_ssl,"RabbitMQ SSL Authentication Mechanism","3.7.16"}, {rabbitmq_auth_backend_cache,"RabbitMQ Caching Authentication Backend","3.7.16"}, {rabbitmq_web_mqtt,"RabbitMQ MQTT over WebSockets Transport","3.7.16"}, {rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.7.16"}, {mnesia,"MNESIA CXC 138 12","4.15.5"}, {os_mon,"CPO CXC 138 46","2.4.7"}, {rabbitmq_web_stomp,"RabbitMQ STOMP Web Transport","3.7.16"}, {rabbitmq_stomp,"RabbitMQ STOMP Adapter","3.7.16"}, {rabbitmq_peer_discovery_aws,"RabbitMQ AWS Peer Discovery Backend","3.7.16"}, {rabbitmq_peer_discovery_common, "Peer Discovery Plug-In : Common","3.7.16"}, {rabbitmq_peer_discovery_k8s, "Kubernetes Peer Discovery Backend","3.7.16"}, {rabbitmq_event_exchange,"RabbitMQ Event Exchange","3.7.16"}, {rabbitmq_tracing,"RabbitMQ Tracing","3.7.16"}, {rabbitmq_prometheus,"RabbitMQ Prometheus exporter","3.7.16"}, {prometheus,"Prometheus","4.2.1"}, {prometheus_httpd,"Prometheus httpd","2.0.0"}, {prome ``` 到此为止,RabbitMQ 已成功安装并启动,可以开始使用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值