monit-agent 后,平台会自动展示 Agent 能诊断的主机、数据库和中间件对象。
为什么需要 monit-agent
传统可观测性数据通常包括指标、日志、链路追踪和告警事件。这些数据能帮助你判断“发生了什么”,但在实际排障时,经常还需要进一步确认现场状态,例如:- 当前机器上哪些进程占用 CPU 或内存较高。
- 某个端口、域名或服务是否能从目标机器访问。
- 磁盘、挂载点、网卡、连接数等运行状态是否异常。
- MySQL 当前变量、连接状态、关键指标或只读 SQL 查询结果。
- Redis 内存、命中率、慢查询或任意只读命令执行结果。
- PostgreSQL 连接活动、锁等待、慢查询或只读 SQL 查询结果。
- MongoDB 副本集状态、当前操作、只读管理命令执行结果。
- Kafka 集群 Broker 状态、消费者延迟、Topic 和 Group 详情。
- Elasticsearch 集群健康、节点指标、索引统计和分片分配。
monit-agent 就是为这个场景设计的。
在 AI-SRE 场景下,可以把 LLM 理解为诊断大脑,把 monit-agent 理解为部署在用户环境里的现场执行端。用户用自然语言提出问题后,LLM 负责理解问题、选择合适的诊断工具并解释结果;monit-agent 负责在目标主机或目标服务附近执行受控查询,并把结构化结果返回给系统。
技术架构
monit-agent 通过 WebSocket 连接到同网络区域内的 monitedge。monitedge 再通过 WebSocket 连接到 SaaS 中心。通常每个网络区域部署一套 monitedge,同一个 EngineName 的多个 monitedge 实例会被视为同一套引擎集群。
支持的对象类型
| 对象类型 | 含义 | 页面上的地址示例 |
|---|---|---|
| 主机 | 安装并运行 monit-agent 的服务器 | 10.0.1.12、host-prod-01.example.com |
| MySQL | 在 agent.yaml 中配置的 MySQL 实例 | db-prod-01.example.com:3306 |
| Redis | 在 agent.yaml 中配置的 Redis 实例 | redis-prod-01.example.com:6379 |
| Redis Sentinel | 在 agent.yaml 中配置的 Redis Sentinel 进程 | 10.1.2.10:26379 |
| PostgreSQL | 在 agent.yaml 中配置的 PostgreSQL 实例 | pg-prod-01.example.com:5432 |
| MongoDB | 在 agent.yaml 中配置的 MongoDB 实例(mongod) | 10.1.3.10:27017 |
| MongoDB Mongos | 在 agent.yaml 中配置的 MongoDB 路由进程(mongos) | 10.1.3.20:27017 |
| Kafka | 在 agent.yaml 中配置的 Kafka 集群 | prod-order-kafka(cluster_name) |
| Elasticsearch | 在 agent.yaml 中配置的 Elasticsearch 集群 | 自动从集群获取 cluster_name |
monit-agent 后,页面上至少会出现一个主机对象。其他对象类型需要在 agent.yaml 中配置后才会出现。
对象如何出现在页面上
监控对象不需要在页面上手工创建。你只需要在目标机器上安装并启动monit-agent。Agent 成功连接到 Edge 后,会自动把自己能诊断的对象上报到平台,页面就会展示这些对象。
因此,新用户首次进入监控对象页面时列表为空,通常表示还没有任何 Agent 成功接入。接入第一台 Agent 后,页面一般会先出现一个主机对象;如果后续在配置文件中增加 MySQL、Redis、PostgreSQL 等服务,对应的对象也会自动出现。
建议接入路径
相关文档
安装 monit-agent
准备 Edge 地址,下载 Agent,并配置前台启动或系统服务。
配置监控对象
配置主机、数据库、中间件和自定义脚本工具。