• rabbitmq-exporter部署方式


    目录

    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
    
    • 1

    具体格式如下:

    {
        "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
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    注:

    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
    
    • 1

    扩展的 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_”为前缀。

  • 相关阅读:
    好习惯助你编写高质量 Java 代码
    【李航统计学习笔记】第九章:EM算法
    公共管理学的名词解释
    Python数据分析培训班介绍
    ISO16000-9建筑产品和家具中挥发性有机物的测试
    node npm install引用安装依赖包更改为私有库地址
    利用非递归遍历统计二叉树的结点数
    Java 18中简单 Web 服务器
    Kafka 的应用场景
    基于 java+springboot+vue 的酒店⺠宿⽹站250910
  • 原文地址:https://blog.csdn.net/web13618542420/article/details/126483568