首页
/ fzaninotto/uptime 监控系统配置详解与最佳实践指南

fzaninotto/uptime 监控系统配置详解与最佳实践指南

2025-07-09 05:47:02作者:咎岭娴Homer

fzaninotto/uptime 是一个功能强大的 Node.js 应用监控系统,它可以帮助开发者实时监控网站和 API 的可用性。本文将深入解析其核心配置文件 default.yaml 的各项参数,帮助您根据实际需求进行定制化配置。

一、基础服务配置

1.1 服务地址配置

url: 'http://localhost:8082'

此参数定义了监控系统的 Web 界面访问地址。在生产环境中,您应该将其修改为实际的域名或 IP 地址,例如 https://monitor.yourdomain.com

1.2 数据库配置

mongodb:
  server:   localhost
  database: uptime
  user:     root 
  password:
  connectionString:

uptime 使用 MongoDB 作为数据存储后端,支持两种配置方式:

  • 分项配置:分别指定服务器地址、数据库名、用户名和密码
  • 连接字符串:通过 connectionString 直接提供完整的 MongoDB 连接字符串

生产环境建议:

  1. 使用认证连接,设置强密码
  2. 考虑使用副本集提高可用性
  3. 定期备份数据库

二、监控核心参数

2.1 监控器基础配置

monitor:
  name: origin
  apiUrl: 'http://localhost:8082/api'
  pollingInterval: 10000
  timeout: 5000
  userAgent: NodeUptime/3.0

关键参数解析:

  • pollingInterval:监控检查间隔(毫秒),默认10秒
  • timeout:请求超时时间(毫秒),默认5秒
  • userAgent:监控请求的用户代理标识

调整建议:

  • 对关键服务可缩短轮询间隔(如5000ms)
  • 根据网络状况调整超时时间
  • 自定义userAgent以便识别监控流量

2.2 分析器配置

analyzer:
  updateInterval: 60000
  qosAggregationInterval: 600000
  pingHistory: 8035200000

参数说明:

  • updateInterval:分析数据更新频率(1分钟)
  • qosAggregationInterval:服务质量聚合间隔(10分钟)
  • pingHistory:历史数据保留时间(约3个月)

存储优化建议:

  • 根据存储容量调整历史数据保留时间
  • 高频监控可适当增加聚合间隔减轻负载

三、插件系统配置

uptime 提供了灵活的插件机制,默认启用了三个核心插件:

3.1 控制台插件

- ./plugins/console

在控制台输出监控日志,适合开发和调试环境使用。

3.2 模式匹配插件

- ./plugins/patternMatcher

允许定义响应内容的正则匹配规则,验证服务返回的正确性。

3.3 HTTP选项插件

- ./plugins/httpOptions

扩展HTTP监控能力,支持自定义请求头、方法等。

3.4 可选插件配置

邮件通知插件

# - ./plugins/email
email:
  method: SMTP
  transport:
    service: Gmail
    auth:
      user: 
      pass: 
  event:
    up: true
    down: true
  message:
    from:
    to:

配置要点:

  • 支持SMTP、SES和Sendmail三种发送方式
  • 可配置触发通知的事件类型(上线、下线等)
  • 建议使用专用邮箱账户并启用应用专用密码

基础认证插件

# - ./plugins/basicAuth
basicAuth:
  username: admin
  password: password

为Web界面添加HTTP基本认证,生产环境强烈建议启用并修改默认凭证。

四、WebPageTest集成

webPageTest:
  server: 'http://www.webpagetest.org'
  key:
  testOptions:

可选配置,用于集成WebPageTest性能测试服务,需要申请API密钥。

五、生产环境部署建议

  1. 安全配置

    • 启用HTTPS
    • 修改所有默认密码和凭证
    • 限制数据库访问IP
  2. 性能优化

    • 根据监控目标数量调整轮询间隔
    • 考虑分布式部署应对大规模监控需求
  3. 高可用保障

    • 部署多个监控节点避免单点故障
    • 设置监控系统自身的健康检查
  4. 日志与审计

    • 配置详细的日志记录
    • 定期审查监控事件

通过合理配置这些参数,您可以构建一个稳定可靠的监控系统,确保及时发现并解决服务可用性问题。建议初次部署后,先在小规模环境中测试各项配置,确认无误后再推广到生产环境。