本页面记录了 Uptime Kuma 中可用的不同监控类型、它们的功能和配置选项。监控类型决定了 Uptime Kuma 如何检查各种服务、网站和系统的可用性和功能。每种监控类型都专门用于使用适当的协议和方法来监控特定类型的服务。
有关监控心跳和它们收集的数据的信息,请参阅心跳。有关影响监控状态的维护窗口的信息,请参阅维护窗口。
Uptime Kuma 中的监控类型遵循模块化架构,其中专门的实现处理不同的服务检查。该系统同时利用中央 Monitor 类和特定的 MonitorType 实现。
来源:server/uptime-kuma-server.js112-118 server/model/monitor.js37-324 server/monitor-types/snmp.js1-64
监控过程遵循此序列图,展示了监控器如何按固定间隔检查服务。
来源:server/model/monitor.js327-412 server/monitor-types/snmp.js11-58
监控可以具有以下四种状态值之一
| 状态 | 值 | 描述 |
|---|---|---|
| DOWN | 0 | 服务不可访问或工作不正常 |
| UP | 1 | 服务可访问且工作正常 |
| 待处理 (PENDING) | 2 | 监控正在等待首次检查或足够的信息 |
| MAINTENANCE | 3 | 服务正在维护中 |
来源:src/util.js25-28 server/model/monitor.js31-36
Uptime Kuma 将监控类型分为三类
来源:src/pages/EditMonitor.vue14-95
HTTP 监控类型检查 Web 服务是否可达并返回预期的响应。
配置选项
实现细节:HTTP 监控使用 Axios 来发出 HTTP 请求并检查响应。
来源:server/model/monitor.js416-454 server/model/monitor.js551-571 src/pages/EditMonitor.vue116-119
TCP 端口监控检查 TCP 端口是否打开且可访问。
配置选项
实现细节:TCP 端口监控使用 util-server.js 中的 tcping 函数来检查端口是否打开。
来源:server/model/monitor.js614-618 server/util-server.js98-117 src/pages/EditMonitor.vue285-295
Ping 监控使用 ICMP ping 来检查主机是否可达。
配置选项
实现细节:Ping 监控使用 ping 函数,该函数内部调用 @louislam/ping 模块。
来源:server/model/monitor.js619-622 server/util-server.js125-170 src/pages/EditMonitor.vue285-296
SNMP 监控从 SNMP 启用设备中检查值。
配置选项
实现细节:SNMP 监控在 SNMPMonitorType 类中使用 net-snmp 模块实现。
来源:server/monitor-types/snmp.js5-59 db/knex_migrations/2024-04-26-0000-snmp-monitor.js1-16 src/pages/EditMonitor.vue306-318
HTTP 关键字监控检查 HTTP 响应中是否包含特定关键字或不包含。
配置选项
实现细节:HTTP 关键字监控扩展了 HTTP 监控,并增加了在响应中搜索关键字的逻辑。
来源:server/model/monitor.js578-598 src/pages/EditMonitor.vue141-158
HTTP JSON Query 监控检查 JSON 响应是否包含预期值。
配置选项
实现细节:HTTP JSON Query 监控扩展了 HTTP 监控,并增加了从 JSON 响应中提取和比较值的逻辑。
来源:server/model/monitor.js600-611 src/util.js393-420
gRPC 关键字监控检查 gRPC 服务是否可用以及是否包含预期的响应。
配置选项
来源: src/pages/EditMonitor.vue122-125 src/pages/EditMonitor.vue141-158
DNS 监控检查 DNS 记录是否存在并与预期值匹配。
配置选项
实现细节: DNS 监控使用 Node.js 的 dns 模块执行 DNS 解析。
来源: server/util-server.js291-316 src/pages/EditMonitor.vue285-296
Docker 容器监控检查 Docker 容器是否正在运行。
配置选项
来源: server/uptime-kuma-server.js18 src/pages/EditMonitor.vue42-44
真实浏览器监控使用无头 Chrome/Chromium 浏览器检查网站。
配置选项
实现细节: 真实浏览器监控使用 Playwright 进行浏览器自动化。
来源: server/uptime-kuma-server.js112 src/pages/EditMonitor.vue46-48 src/pages/EditMonitor.vue161-181
组监控聚合子监控的状态。
配置选项
实现细节: 组监控检查其所有子监控的状态,并报告其中最差的状态。
来源: server/model/monitor.js383-414 src/pages/EditMonitor.vue15-17
推送监控等待外部服务向 Uptime Kuma 发送心跳。
配置选项
实现细节: 推送监控不主动检查服务。相反,它期望服务向特殊 URL 发送 HTTP 请求来报告其状态。
来源: server/model/monitor.js623-653 src/pages/EditMonitor.vue128-138
Microsoft SQL Server 监控检查 SQL Server 数据库是否可访问。
配置选项
实现细节: 使用 mssql 模块连接到数据库并执行查询。
来源: server/util-server.js325-341 src/pages/EditMonitor.vue73-75
PostgreSQL 监控检查 PostgreSQL 数据库是否可访问。
配置选项
实现细节: 使用 pg 模块连接到数据库并执行查询。
来源: server/util-server.js350-399 src/pages/EditMonitor.vue76-78
MySQL/MariaDB 监控检查 MySQL 或 MariaDB 数据库是否可访问。
配置选项
实现细节: 使用 mysql2 模块连接到数据库并执行查询。
来源: server/util-server.js408-437 src/pages/EditMonitor.vue79-81
MongoDB 监控检查 MongoDB 数据库是否可访问。
配置选项
实现细节: 在 MongodbMonitorType 类中使用 mongodb 模块实现。
来源: server/uptime-kuma-server.js117 src/pages/EditMonitor.vue82-84
Redis 监控检查 Redis 服务器是否可访问。
配置选项
实现细节: 使用 redis 模块连接到 Redis 服务器并执行 PING 命令。
来源: server/util-server.js492-522 src/pages/EditMonitor.vue88-90
MQTT 监控检查 MQTT 代理是否可访问。
配置选项
实现细节: 在 MqttMonitorType 类中使用 mqtt 模块实现。
来源: server/uptime-kuma-server.js115 src/pages/EditMonitor.vue64-66
RabbitMQ 监控检查 RabbitMQ 服务器是否可访问。
配置选项
实现细节: 在 RabbitMqMonitorType 类中实现。
来源: server/uptime-kuma-server.js118 src/pages/EditMonitor.vue67-69 src/pages/EditMonitor.vue246-281
Kafka Producer 监控通过生产一条消息来检查 Kafka 代理是否可访问。
配置选项
实现细节: 使用 kafkajs 模块连接到 Kafka 并生产消息。
来源: server/util-server.js186-261 src/pages/EditMonitor.vue70-72 src/pages/EditMonitor.vue195-244
Steam Game Server 监控检查 Steam 游戏服务器是否在线。
配置选项
实现细节: 使用 Steam API 检查服务器是否在线。
来源: server/model/monitor.js655-670 src/pages/EditMonitor.vue58-60
GameDig 监控检查各种游戏服务器是否在线。
配置选项
实现细节: 使用 gamedig 模块检查游戏服务器。
来源: package.json94 src/pages/EditMonitor.vue61-63 src/pages/EditMonitor.vue186-193
Radius 监控检查 RADIUS 认证服务器是否可访问。
配置选项
实现细节: 使用 node-radius-client 模块检查 RADIUS 服务器。
来源: server/util-server.js451-484 src/pages/EditMonitor.vue85-87
Tailscale Ping 监控检查 Tailscale 节点是否可达。
配置选项
实现细节: 在 TailscalePing 类中实现。
来源: server/uptime-kuma-server.js113 src/pages/EditMonitor.vue91-93 src/pages/EditMonitor.vue105-107
所有监控类型共享这些通用配置选项
| 选项 | 描述 |
|---|---|
| Friendly Name | 监控的用户友好名称 |
| 间隔 | 监控应检查服务的频率(秒) |
| Retry Interval | 服务中断时重试的频率(秒) |
| Max Retries | 将服务标记为下游之前的重试次数 |
| 超时 | 响应的最大等待时间(秒) |
| 描述 | 监控目的的可选描述 |
| Upside Down Mode | 启用后,DOWN 被视为 UP,反之亦然 |
来源: server/model/monitor.js108-158 src/pages/EditMonitor.vue110-113
此图说明 Uptime Kuma 如何确定监控的状态
来源: server/model/monitor.js327-412 src/util.js106-114
要创建自定义监控类型
MonitorType 的类check 方法以实现监控逻辑UptimeKumaServer.monitorTypeList 中注册监控类型EditMonitor.vue 中添加监控类型的 UI 元素示例(简化版)
来源: server/monitor-types/snmp.js5-59 server/uptime-kuma-server.js112-118
刷新此 Wiki
最后索引时间2025 年 4 月 18 日 (510056)