diff --git a/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml b/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml index b8f6353b016..7566f78d49f 100644 --- a/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml +++ b/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml @@ -29,8 +29,8 @@ help: zh-TW: Hertzbeat 對 Redis Sentinel 的通用指標進行采集監控。
您可以點擊 “新建 Redis Sentinel” 並進行配置,或者選擇“更多操作”,導入已有配置。 ja-JP: Hertzbeat は Redis Sentinel の一般的なパフォーマンスのメトリクスを監視します。
新規 Redis Sentinel」をクリックしてパラメタを設定した後、新規することができます。 helpLink: - zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/influxdb_promql - en-US: https://hertzbeat.apache.org/docs/help/influxdb_promql + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/redis_sentinel + en-US: https://hertzbeat.apache.org/docs/help/redis_sentinel # Input params define for monitoring(render web ui by the definition) params: # field-param field key @@ -805,31 +805,37 @@ metrics: fields: # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field - field: sentinel_masters - type: 1 + type: 0 i18n: zh-CN: 主节点 en-US: Masters ja-JP: マスターノード - field: sentinel_tilt - type: 1 + type: 0 i18n: zh-CN: 倾斜 en-US: Tilt ja-JP: マスターをダウン状態としてマークする前の待機時間 - field: sentinel_running_scripts - type: 1 + type: 0 i18n: zh-CN: 运行脚本 en-US: Running Scripts ja-JP: 実行するスクリプト + - field: sentinel_timedout_scripts + type: 0 + i18n: + zh-CN: 超时脚本数 + en-US: Timedout Scripts + ja-JP: タイムアウトスクリプト数 - field: sentinel_scripts_queue_length - type: 1 + type: 0 i18n: zh-CN: 脚本队列长度 en-US: Scripts Queue Length ja-JP: 実行するスクリプトのキューの長さ - field: sentinel_simulate_failure_flags - type: 1 + type: 0 i18n: zh-CN: 模拟失败标志 en-US: Simulate Failure Flags diff --git a/home/docs/en/help/redis_sentinel.md b/home/docs/en/help/redis_sentinel.md new file mode 100644 index 00000000000..10b048e0f3b --- /dev/null +++ b/home/docs/en/help/redis_sentinel.md @@ -0,0 +1,106 @@ +--- +id: redis_sentinel +title: Monitoring Redis Sentinel +sidebar_label: Redis Sentinel +keywords: [open-source monitoring system, open-source database monitoring, Redis Sentinel monitoring] +--- + +> Collect and monitor Redis Sentinel instances for key performance metrics. + +## Pre-monitoring Requirements + +> Before adding the Redis Sentinel monitor, please ensure the following: + +1. The Redis Sentinel service is running and the sentinel port (default **26379**) is accessible from the HertzBeat server. +2. If authentication is configured on the Sentinel instance, prepare the username and password. +3. No firewall rules are blocking the sentinel port between HertzBeat and the target host. + +## Configuration Parameters + +| Parameter | Parameter Help Description | +| --------- | -------------------------- | +| Target Host | The IPv4, IPv6 address or domain name of the host being monitored. Note: do not include protocol headers, e.g. `192.168.0.1`. | +| Port | The listening port of the Redis Sentinel instance. Default: **26379**. | +| Timeout | Timeout value for the connection, in milliseconds. Default: `3000`. | +| Username | The username used to authenticate with the Redis Sentinel instance. Optional. | +| Password | The password used to authenticate with the Redis Sentinel instance. Optional. | +| Collection Interval | How often HertzBeat polls this monitor, in seconds. Minimum value: 30s. | +| Description/Remarks | Additional notes and descriptions for this monitor. | + +## Collection Metrics + +### Metric Set: sentinel + +> Sentinel overview metrics collected via `INFO sentinel`. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| sentinel_masters | None | Total number of Redis master nodes monitored by this Sentinel instance. | +| sentinel_tilt | None | Whether the Sentinel is currently in TILT mode (time-skew safety mode). `1` means TILT is active, `0` means normal. | +| sentinel_running_scripts | None | Number of Lua scripts currently being executed by the Sentinel. | +| sentinel_timedout_scripts | None | Number of scripts that have timed out. | +| sentinel_scripts_queue_length | None | Number of scripts currently waiting in the execution queue. | +| sentinel_simulate_failure_flags | None | Bitmask flags used for failure simulation testing (via `SENTINEL SIMULATE-FAILURE`). | + +### Metric Set: master_status + +> Status information for each monitored Redis master node. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| master0 | None | Status string for the first monitored master, e.g. `name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=3`. | +| master1 | None | Status string for the second monitored master (if present). | +| master2 | None | Status string for the third monitored master (if present). | + +### Metric Set: server + +> Server-level information for the Sentinel process, collected via `INFO server`. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| redis_version | None | Version string of the Redis (Sentinel) binary. | +| os | None | Operating system on which the Sentinel is running. | +| arch_bits | None | CPU architecture (32 or 64 bits). | +| process_id | None | PID of the Sentinel server process. | +| tcp_port | None | The TCP port on which the Sentinel is listening. | +| uptime_in_seconds | s | Number of seconds since the Sentinel process started. | +| uptime_in_days | d | Number of days since the Sentinel process started. | +| hz | None | Frequency of the server's background event loop (calls per second). | +| executable | None | Absolute path to the server executable. | +| config_file | None | Absolute path to the sentinel configuration file. | + +### Metric Set: clients + +> Client connection statistics, collected via `INFO clients`. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| connected_clients | None | Number of client connections currently open (excluding connections from replicas). | +| blocked_clients | None | Number of clients blocked waiting on a blocking command (e.g. BLPOP, WAIT). | +| maxclients | None | The configured maximum number of client connections allowed. | +| client_recent_max_input_buffer | None | Largest input buffer size (in bytes) seen across all current client connections. | +| client_recent_max_output_buffer | None | Largest output buffer size (in bytes) seen across all current client connections. | + +### Metric Set: stats + +> General statistics, collected via `INFO stats`. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| total_connections_received | None | Total number of connections accepted by the server since startup. | +| total_commands_processed | None | Total number of commands processed by the server since startup. | +| instantaneous_ops_per_sec | None | Number of commands processed per second (real-time snapshot). | +| rejected_connections | None | Number of connections rejected because the `maxclients` limit was reached. | +| total_net_input_bytes | None | Total bytes of data received from clients since startup. | +| total_net_output_bytes | None | Total bytes of data sent to clients since startup. | + +### Metric Set: cpu + +> CPU consumption statistics, collected via `INFO cpu`. + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- | ----------- | ----------------------- | +| used_cpu_sys | None | System CPU time consumed by the Sentinel server process (kernel mode). | +| used_cpu_user | None | User CPU time consumed by the Sentinel server process (user mode). | +| used_cpu_sys_children | None | System CPU time consumed by the background child processes (kernel mode). | +| used_cpu_user_children | None | User CPU time consumed by the background child processes (user mode). | diff --git a/home/docs/zh-cn/help/redis_sentinel.md b/home/docs/zh-cn/help/redis_sentinel.md new file mode 100644 index 00000000000..87367c92852 --- /dev/null +++ b/home/docs/zh-cn/help/redis_sentinel.md @@ -0,0 +1,106 @@ +--- +id: redis_sentinel +title: 监控 Redis 哨兵 +sidebar_label: Redis 哨兵监控 +keywords: [开源监控系统, 开源数据库监控, Redis哨兵监控] +--- + +> 对 Redis Sentinel(哨兵)实例的关键性能指标进行采集监控。 + +## 监控前置要求 + +> 在添加 Redis 哨兵监控之前,请确保以下条件已满足: + +1. Redis Sentinel 服务已正常运行,且哨兵监听端口(默认为 **26379**)可从 HertzBeat 服务器访问。 +2. 如果哨兵实例配置了身份认证,请提前准备好用户名和密码。 +3. HertzBeat 服务器与目标主机之间不存在阻断哨兵端口的防火墙规则。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +| -------- | ------------ | +| 目标Host | 被监控主机的 IPv4、IPv6 地址或域名。注意:不需要填写协议头,例如 `192.168.0.1`。 | +| 端口 | Redis Sentinel 实例的监听端口。默认值:**26379**。 | +| 超时时间 | 连接的超时时长,单位为毫秒。默认值:`3000`。 | +| 用户名 | 连接 Redis Sentinel 实例时使用的用户名。可选。 | +| 密码 | 连接 Redis Sentinel 实例时使用的密码。可选。 | +| 采集间隔 | HertzBeat 轮询此监控的间隔时间,单位为秒。最小值:30s。 | +| 描述备注 | 此监控的附加备注和说明信息。 | + +## 采集指标 + +### 指标集合:sentinel(哨兵概况) + +> 通过 `INFO sentinel` 命令采集哨兵整体概况指标。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| sentinel_masters | 无 | 当前 Sentinel 实例监控的 Redis 主节点总数量。 | +| sentinel_tilt | 无 | Sentinel 是否处于 TILT 模式(时钟偏斜安全模式)。`1` 表示 TILT 已激活,`0` 表示正常运行。 | +| sentinel_running_scripts | 无 | 当前 Sentinel 正在执行的 Lua 脚本数量。 | +| sentinel_timedout_scripts | 无 | 已超时的脚本数量。 | +| sentinel_scripts_queue_length | 无 | 当前等待执行的脚本队列长度。 | +| sentinel_simulate_failure_flags | 无 | 用于故障模拟测试的位掩码标志(通过 `SENTINEL SIMULATE-FAILURE` 命令设置)。 | + +### 指标集合:master_status(主节点状态) + +> 每个被监控 Redis 主节点的状态信息。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| master0 | 无 | 第一个被监控主节点的状态字符串,例如:`name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=3`。 | +| master1 | 无 | 第二个被监控主节点的状态字符串(如存在)。 | +| master2 | 无 | 第三个被监控主节点的状态字符串(如存在)。 | + +### 指标集合:server(服务器信息) + +> 通过 `INFO server` 命令采集 Sentinel 进程的服务器级别信息。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| redis_version | 无 | Redis(Sentinel)二进制文件的版本字符串。 | +| os | 无 | Sentinel 所运行的操作系统信息。 | +| arch_bits | 无 | CPU 架构位数(32位或64位)。 | +| process_id | 无 | Sentinel 服务器进程的 PID。 | +| tcp_port | 无 | Sentinel 监听的 TCP 端口号。 | +| uptime_in_seconds | s | Sentinel 进程启动后的运行时长(秒)。 | +| uptime_in_days | d | Sentinel 进程启动后的运行时长(天)。 | +| hz | 无 | 服务器后台事件循环的频率(每秒调用次数)。 | +| executable | 无 | 服务器可执行文件的绝对路径。 | +| config_file | 无 | Sentinel 配置文件的绝对路径。 | + +### 指标集合:clients(客户端信息) + +> 通过 `INFO clients` 命令采集客户端连接统计信息。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| connected_clients | 无 | 当前已建立的客户端连接数量(不包括副本节点的连接)。 | +| blocked_clients | 无 | 正在等待阻塞命令(如 BLPOP、WAIT)的客户端数量。 | +| maxclients | 无 | 配置允许的最大客户端连接数量。 | +| client_recent_max_input_buffer | 无 | 所有当前客户端连接中最大的输入缓冲区大小(字节)。 | +| client_recent_max_output_buffer | 无 | 所有当前客户端连接中最大的输出缓冲区大小(字节)。 | + +### 指标集合:stats(全局统计信息) + +> 通过 `INFO stats` 命令采集服务器全局统计数据。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| total_connections_received | 无 | 服务器启动以来接受的连接总数。 | +| total_commands_processed | 无 | 服务器启动以来处理的命令总数。 | +| instantaneous_ops_per_sec | 无 | 每秒处理的命令数量(实时快照)。 | +| rejected_connections | 无 | 因达到 `maxclients` 限制而被拒绝的连接数量。 | +| total_net_input_bytes | 无 | 服务器启动以来从客户端接收的总字节数。 | +| total_net_output_bytes | 无 | 服务器启动以来发送给客户端的总字节数。 | + +### 指标集合:cpu(CPU 消耗信息) + +> 通过 `INFO cpu` 命令采集 CPU 使用统计数据。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------ | +| used_cpu_sys | 无 | Sentinel 服务器进程消耗的内核态(系统态)CPU 时间。 | +| used_cpu_user | 无 | Sentinel 服务器进程消耗的用户态 CPU 时间。 | +| used_cpu_sys_children | 无 | 后台子进程消耗的内核态(系统态)CPU 时间。 | +| used_cpu_user_children | 无 | 后台子进程消耗的用户态 CPU 时间。 |