OpenUptime

Uptime monitoring for agencies

An agency watches many sites that belong to different people. The useful parts are keeping clients apart, sending the right alert to the right person, and showing clients their own status.

What to monitor

One workspace or project per client

Create a workspace for the agency and a project for each client, or a workspace per client if you need to hand it over. Members get roles and are invited by email. API keys and agent grants can be limited to selected projects, so a script for one client touches only that client.

  • workspaces
  • projects
  • roles

A standard set of monitors, copied per site

Build the monitors you add for every site once: the home page with a keyword check, the login page, DNS and a contact-form endpoint. Export them as JSON and import the file into the next client's project, then change the targets.

  • JSON export
  • JSON import

The right alert to the right person

Create an email or Slack channel for each client contact or for your own on-duty person, and choose per monitor which channels it notifies. A client can get the alert for their site and nothing else.

  • per-monitor routing
  • Slack
  • email

Planned work without false alarms

Schedule a maintenance window before a migration or a launch. Checks continue, but no incidents open and no alerts go out for the monitors it covers.

  • maintenance windows

Status page

Give each client a status page that shows only their monitors, with a title and a light or dark theme. The page can carry a link to the client's own site. Whether the OpenUptime branding can be hidden depends on the hosted plan; a self-hosted instance can always hide it. A client's status page lives under your domain unless you self-host it on theirs.

Alert routing

Alert channels belong to a project, so each client's channels stay separate from the others. Use email for clients, Slack or Telegram for your own team, and add PagerDuty only for the clients whose sites you carry an on-call duty for.

Limits to know about

  • Custom domains for status pages are not offered as a setting; a client's status page is served from the OpenUptime address you use.
  • No built-in client reports or PDF exports.
  • Import copies monitors only, not channels or status pages.

Questions

Can one account monitor several clients' sites?

Yes. A workspace holds projects, and each project has its own monitors, alert channels and status pages. Members have roles, and you can invite people to the workspace by email.

How do I set up the same monitors for every new client?

Export the monitors of a project as JSON from the Monitors page, then import the file into the new project and edit the targets. Alert channels and status pages are created separately.

Can I remove the OpenUptime branding from a client's status page?

Status pages have a hide-branding setting. On the hosted service it depends on the plan; on a self-hosted instance it is always available.

Set it up in OpenUptime

Start on the hosted service, or run it yourself. The source is on GitHub under the MIT license.

代理机构的可用性监控

代理机构要照看属于不同客户的许多站点。关键在于把客户区分开,把正确的告警发给正确的人,并让客户看到自己的状态。

监控什么

每个客户一个工作区或项目

为机构创建一个工作区,再为每个客户建一个项目;如果需要移交,也可以每个客户一个工作区。成员有各自的角色并通过邮件邀请。API 密钥和 Agent 授权可限定在选定的项目内,因此某个客户的脚本只会涉及该客户。

  • workspaces
  • projects
  • roles

标准监控集,逐站复制

把每个站点都要加的监控项建好一次:带关键字检测的首页、登录页、DNS 以及联系表单接口。将它们导出为 JSON,再导入下一个客户的项目,然后改一下目标地址即可。

  • JSON export
  • JSON import

正确的告警发给正确的人

为每个客户联系人或你自己的值班人员创建邮件或 Slack 渠道,并按监控项选择通知哪些渠道。客户只会收到自己站点的告警。

  • per-monitor routing
  • Slack
  • email

计划内维护不产生误报

在迁移或上线前安排维护窗口。检测会继续,但窗口覆盖的监控项不会创建事件,也不会发送告警。

  • maintenance windows

状态页

为每个客户创建只展示其监控项的状态页,可设置标题以及浅色或深色主题,并附上指向客户官网的链接。能否隐藏 OpenUptime 品牌标识取决于托管套餐;自托管实例始终可以隐藏。除非你把它自托管在客户的域名下,否则客户的状态页位于你的域名之下。

告警路由

告警渠道属于项目,因此各客户的渠道互不干扰。客户用邮件,自己的团队用 Slack 或 Telegram,只有你承担值班责任的客户才添加 PagerDuty。

需要了解的限制

  • 状态页的自定义域名目前不是可配置项;客户的状态页使用你所用的 OpenUptime 地址。
  • 没有内置的客户报告或 PDF 导出。
  • 导入只复制监控项,不含告警渠道和状态页。

常见问题

一个账号能监控多个客户的站点吗?

可以。一个工作区包含多个项目,每个项目有自己的监控项、告警渠道和状态页。成员有各自的角色,你可以通过邮件邀请他们加入工作区。

如何给每个新客户设置同样的监控项?

在监控页把某个项目的监控项导出为 JSON,再导入新项目并修改目标地址。告警渠道和状态页需要另行创建。

能去掉客户状态页上的 OpenUptime 品牌标识吗?

状态页有隐藏品牌标识的设置。在托管服务上取决于套餐;在自托管实例上始终可用。

在 OpenUptime 中设置

可以直接使用托管服务,也可以自己运行。源码在 GitHub,采用 MIT 许可证。