监控报警项说明
概述
Rainbond 监控服务由组件 rbd-monitor 完成,在 monitor 组件中采用 Sidecar 设计模式思想整合 Prometheus 服务,并基于 ETCD 动态发现 需要监控的 targets,自动配置与管理 Prometheus 服务。monitor 会定期到每个 targets 刮取指标数据,并将数据持久化在本地,提供灵活的 PromQL 查询与 RESTful API 查询。
架构图:

访问方式
默认监听端口 9999,默认安装已添加 Service 对象,在集群获取到 ServiceIP 后在平台添加 第三方服务 打开对外端口即可访问。
获取 ServiceIP 方式
$ kubectl get service rbd-monitor -n rbd-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rbd-monitor ClusterIP 10.68.140.5 <none> 9999/TCP 7h11m

具体监控报警项请访问 rbd-monitor 查看,以下仅作为参考。
监控项
节点资源监控项
| 监控项 | 所属组件 | 说明 |
|---|---|---|
| cadvisor_version_info | cadvisor | 节点系统信息 |
| machine_memory_bytes | cadvisor | 当前主机内存大小 |
| machine_cpu_cores | cadvisor | 当前节点 CPU 数目 |
| node_filesystem_size | node | 存储 |
| node_load1 | node | 负载 1m |
| node_load5 | node | 负载 5m |
| node_load5 | node | 负载 15m |
| node_memory_MemTotal | node | 节点内存 total |
| node_memory_MemFree | node | 节点内存 free |
| node_uname_info | node | 节点信息 |
Rainbond 服务组件监控项
| 监控项 | 所属组件 | 说明 |
|---|---|---|
| acp_mq_dequeue_number | rbd-mq | |
| acp_mq_enqueue_number | rbd-mq | |
| acp_mq_exporter_health_status | rbd-mq | |
| acp_mq_exporter_last_scrape_error | rbd-mq | |
| acp_mq_exporter_scrapes_total | rbd-mq | |
| builder_exporter_builder_task_error | rbd-chaos | 源码构建任务失败数 |
| builder_exporter_builder_task_number | rbd-chaos | 源码构建任务数 |
| builder_exporter_health_status | rbd-chaos | 组件状态 1 为健康 |
| event_log_exporter_chan_cache_size | rbd-eventlog | |
| event_log_exporter_collector_duration_seconds | rbd-eventlog | |
| event_log_exporter_container_log_store_cache_barrel_count | rbd-eventlog | |
| event_log_exporter_container_log_store_log_count | rbd-eventlog | |
| event_log_exporter_event_store_barrel_count | rbd-eventlog | |
| event_log_exporter_event_store_cache_barrel_count | rbd-eventlog | |
| event_log_exporter_event_store_log_count | rbd-eventlog | |
| event_log_exporter_health_status | rbd-eventlog | |
| event_log_exporter_last_scrape_error | rbd-eventlog | |
| event_log_exporter_monitor_store_barrel_count | rbd-eventlog | |
| event_log_exporter_monitor_store_log_count | rbd-eventlog | |
| event_log_exporter_scrapes_total | rbd-eventlog | |
| gateway_request_duration_seconds_bucket | rbd-gateway | 在规定请求时间(bucket)内, 客户端请求的数量 |
| gateway_request_duration_seconds_count | rbd-gateway | 客户端请求的总数 |
| gateway_request_duration_seconds_sum | rbd-gateway | 客户端请求时间的总数 |
| gateway_request_size_bucket | rbd-gateway | 在规定出请求大小(bucket)内, 满足条件的请求的数量 |
| gateway_request_size_count | rbd-gateway | 客户端请求的总数 |
| gateway_request_size_sum | rbd-gateway | 客户端请求大小的总数 |
| gateway_requests | rbd-gateway | 客户端访问的次数 |
| gateway_response_duration_seconds_bucket | rbd-gateway | 在规定响应时间(bucket)内, 响应的次数 |
| gateway_response_duration_seconds_count | rbd-gateway | 响应的总次数 |
| gateway_response_duration_seconds_sum | rbd-gateway | 响应的总时间 |
| gateway_response_size_bucket | rbd-gateway | 在规定出响应大小(bucket)内, 满足条件的响应的次数 |
| gateway_response_size_count | rbd-gateway | 响应的总次数 |
| gateway_response_size_sum | rbd-gateway | 响应的总大小 |
| gateway_upstream_latency_seconds | rbd-gateway | 在规定出延迟时间(bucket)内, 满足条件的延迟的次数 |
| gateway_upstream_latency_seconds_count | rbd-gateway | 延迟的总次数 |
| gateway_upstream_latency_seconds_sum | rbd-gateway | 延迟时间的总和 |
| worker_exporter_health_status | rbd-worker | |
| worker_exporter_worker_task_number | rbd-worker | |
| worker_exporter_collector_duration_seconds | rbd-worker | |
| worker_exporter_last_scrape_error | rbd-worker | |
| worker_exporter_scrapes_total | rbd-worker | |
| worker_exporter_worker_task_error | rbd-worker | |
| worker_exporter_worker_task_number | rbd-worker | |
| worker_up | rbd-worker | |
| scrape_samples_scraped | ||
| scrape_samples_post_metric_relabeling | ||
| scrape_duration_seconds | ||
| statsd_exporter_build_info | ||
| statsd_exporter_events_total | ||
| statsd_exporter_lines_total | ||
| statsd_exporter_loaded_mappings | ||
| statsd_exporter_samples_total | ||
| statsd_exporter_tag_errors_total | ||
| statsd_exporter_tags_total | ||
| statsd_exporter_tcp_connection_errors_total | ||
| statsd_exporter_tcp_connections_total | ||
| statsd_exporter_tcp_too_long_lines_total | ||
| statsd_exporter_udp_packets_total | ||
| up | 组件状态 |
应用级监控项
| 监控项 | 说明 |
|---|---|
| app_resource_appmemory | 应用内存,根据 service_id,tenant_id 筛选 |
| app_resource_appfs | 应用 |
| app_resource_appmemory | 应用 |
| app_client_request | 应用 |
| app_client_requesttime | 应用 |
| app_request | 应用 |
| app_request_unusual | 应用 |
| app_requestclient | 应用 |
| app_requesttime | 应用 |
应用级基于 CAvisor 获取典型监控指标
| 监控项 | 类型 | 说明 |
|---|---|---|
| container_cpu_load_average_10s | gauge | 过去 10 秒容器 CPU 的平均负载 |
| container_cpu_usage_seconds_total | counter | 容器在每个 CPU 内核上的累积占用时间 (单位:秒) |
| container_cpu_system_seconds_total | counter | System CPU 累积占用时间(单位:秒) |
| container_cpu_user_seconds_total | counter | User CPU 累积占用时间(单位:秒) |
| container_fs_usage_bytes | gauge | 容器中文件系统的使用量(单位:字节) |
| container_fs_limit_bytes | gauge | 容器可以使用的文件系统总量(单位:字节) |
| container_fs_reads_bytes_total | counter | 容器累积读取数据的总量(单位:字节) |
| container_fs_writes_bytes_total | counter | 容器累积写入数据的总量(单位:字节) |
| container_memory_max_usage_bytes | gauge | 容器的最大内存使用量(单位:字节) |
| container_memory_usage_bytes | gauge | 容器当前的内存使用量(单位:字节 |
| container_spec_memory_limit_bytes | gauge | 容器的内存使用量限制 |
| container_network_receive_bytes_total | counter | 容器网络累积接收数据总量(单位:字节) |
| container_network_transmit_bytes_total | counter | 容器网络累积传输数据总量(单位:字节) |
其他监控项
| 监控项 | 说明 |
|---|---|
| process_cpu_seconds_total | |
| process_max_fds | |
| process_open_fds | |
| process_virtual_memory_bytes | |
| process_start_time_seconds | |
| process_resident_memory_bytes | |
| process_open_fds | |
| process_max_fds | |
| process_cpu_seconds_total |
报警规则说明
组件监控报警
| 报警项 | 报警信息 |
|---|---|
| api 服务下线 | APIDown |
| chaos 服务下线 | BuilderDown |
| chaos 组件状态异常 | BuilderUnhealthy |
| 源码构建异常任务数大于 30 | BuilderTaskError |
| ETCD 服务下线 | EtcdDown |
| ETCD Leader 节点下线 | EtcdLoseLeader |
| ETCD 集群成员异常 | InsufficientMembers |
| ETCD 集群 Leader 变更 | HighNumberOfLeaderChanges |
| ETCD GPRC 失败请求大于 0.05 | HighNumberOfFailedGRPCRequests |
| ETCD 1 分钟内 HTTP 请求失败数大于 0.05 | HighNumberOfFailedHTTPRequests |
| ETCD 1 分钟内 GPRC 慢查询数量大于 0.15 | GRPCRequestsSlow |
| ETCD 磁盘空间占用超过 80% | DatabaseSpaceExceeded |
| eventlog 组件状态异常 | EventLogUnhealthy |
| eventlog 服务下线 | EventLogDown |
| gateway 服务下线 | GatewayDown |
| gateway 请求大小超过 10M | RequestSizeTooMuch |
| gateway 每秒请求数量超过 200 | RequestMany |
| gateway 10s 内错误请求数量大于 5 | FailureRequestMany |
| mq 服务下线 | MqDown |
| mq 组件状态异常 | MqUnhealthy |
| mq 消息队列中存在时间大于 1 分钟的任务 | MqMessageQueueBlock |
| webcli 服务下线 | WebcliDown |
| webcli 组件状态异常 | WebcliUnhealthy |
| webcli 执行命令时发生的错误数大于每秒 5 次 | WebcliUnhealthy |
| worker 服务下线 | WorkerDown |
| worker 组件状态异常 | WorkerUnhealthy |
| worker 执行任务错误数大于 50 | WorkerTaskError |
集群监控报警
| 报警项 | 报警信息 |
|---|---|
| Rainbond 集群 node 节点不健康 | RbdNodeUnhealth |
| K8s 集群 node 节点不健康 | KubeNodeUnhealth |
| 收集集群信息时间超过 10s | ClusterCollectorTimeout |
| 租户使用资源超出资源限额 | InsufficientTenantResources |
| Node 节点下线 | NodeDown |
| 节点 5 分钟内 CPU 使用率大于 70% | HighCpuUsageOnNode |
| 集群可用内存资源小于 2GB | InsufficientClusteMemoryResources |
| 集群 CPU 可用量小于 500m | InsufficientClusteCPUResources |
| 节点 5 分钟内负载大于 5 | HighLoadOnNode |
| 节点 Inode 剩余可用量小于 0.3 | InodeFreerateLow |
| 节点根分区磁盘使用率大于 85% | HighRootdiskUsageOnNode |
| 节点 Docker 磁盘分区使用率大于 85% | HighDockerdiskUsageOnNode |
| 节点内存使用量大于 80% | HighMemoryUsageOnNode |
集群监控报警配置参见 监控报警部署