当您在火山引擎云服务器(ECS)中部署业务时,允许接入托管 Prometheus,实现对 ECS 实例基础资源和业务的监控。本文为您介绍如何监控 ECS 实例中搭建的业务。
当您的应用(例如:数据库、中间件等)部署在 ECS 实例中时,由于应用可能分散部署在一个或多个 VPC 内,且每个 VPC 内也有可能配置了多个 ECS 实例。此时,为了保证应用工作正常,您需要实现对这些 ECS 实例、基础组件和业务应用本身进行统一的观测。
基于应用本身的特点,托管 Prometheus 支持如下方法实现 ECS 实例和应用的观测:
说明
为了保证托管的采集器能够正确采集到 ECS 实例的监控数据,您需要首先配置指标采集使用的安全组。步骤如下:
登录 私有网络控制台。
在左侧导航栏中选择 安全组。
在安全组列表中,单击 创建安全组,配置托管采集器使用的安全组。该安全组会在配置集成任务时,绑定在托管采集器的 Pod 网卡上,允许托管采集器访问指定的目标 IP 网段和端口。
172.16.0.0/12
,端口号为 TCP 协议9419
端口。配置 ECS 实例使用的安全组,本文以 Default 安全组为例。在 入方向规则中,添加规则,放通指标采集端口。其中,源地址为上文中配置的采集器的安全组,端口为 TCP9419
端口。
说明
您也可以创建一个新的安全组,并将托管采集器和 ECS 实例均加入到该安全组。此时,无需配置新的访问规则,新创建安全组中的默认的出规则和入规则,即可实现托管采集器和 ECS 实例之间的互访。
为了保证托管采集器能够正确的采集到 ECS 实例中 RabbitMQ 的指标,需要在 ECS 实例中安装 rabbitmq_exporter。
wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v1.0.0-RC19/rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz
tar -zxvf rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz
config.example.json
,并完成配置。sudo vi 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_exchanges": ".*", "skip_exchanges": "^$", "include_queues": ".*", "skip_queues": "^$", "skip_vhost": "^$", "include_vhost": ".*", "rabbit_capabilities": "no_sort,bert", "aliveness_vhost": "/", "enabled_exporters": [ "exchange", "node", "overview", "queue", "aliveness" ], "timeout": 30, "max_queues": 0 }
需要重点关注和修改的参数,如下表所示。
参数 | 说明 |
---|---|
rabbit_url | RabbitMQ 所在 ECS 实例的 IP 地址和端口号。由于本例中 RabbitMQ 与 rabbitmq_exporter 部署在相同的 ECS 实例中,因此配置为http://127.0.0.1:15672 。 |
rabbit_user | RabbitMQ 登录的用户名。该用户需要具备administrator 或monitoring 权限,配置方式请参见 搭建 RabbitMQ。 |
rabbit_pass | RabbitMQ 登录的密码。 |
publish_port | RabbitMQ 指标暴露端口号,默认为9419 。 |
说明
rabbitmq_exporter 更多参数配置,请参见 官方文档。
./rabbitmq_exporter -config-file config.example.json &
预期反馈结果如下,能够看到 rabbitmq_exporter 可以正确地采集指标。
6. 在 ECS 实例中执行以下命令,确定 rabbitmq_exporter 工作正常,查看监控数据。
curl 127.0.0.1:9419/metrics
预期反馈结果如下,能够正常查看到监控信息,说明 rabbitmq_exporter 工作正常。
配置项 | 说明 |
---|---|
任务名称 | 配置集成任务的名称。支持中文、英文大小写、数字和下划线_ ,取值范围为 1~40 个字符。 |
工作区 | 选择已创建的托管 Prometheus 工作区。 |
ECS VPC | 选择 ECS 实例所在的 VPC。 |
安全组 | 选择托管采集器使用的安全组,允许托管采集器访问用户 VPC 中的资源。支持多选。 注意 为确保托管采集器能够正确采集到 ECS 中的指标,请将目标网段、端口添加到所选的安全组出访问规则中。 |
子网 | 选择进行服务发现的 VPC 子网。系统会在选择的子网下进行 ECS 服务发现,监控所有符合要求的 ECS 实例。支持多选。 |
global: scrape_interval: 15s scrape_timeout: 10s scrape_configs: - job_name: ecs scheme: http metrics_path: /metrics volc_sd_configs: - port: 9419
说明
配置完成后,您可以查看任务状态和任务详情。确定目标 ECS 实例是否正确接入 Promethues 服务。
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。
说明
RabbitMQ 的常见指标,请参见 官方文档。
您可以自建 Grafana,并通过 Grafana 查看 RabbitMQ 的指标和创建大盘。包括:
您可以在托管 Prometheus 的告警中心配置 RabbitMQ 的相关告警。详情请参见 创建告警规则。