使用这个直观、轻量级的程序检查您的站点

在本文中,我想分享我为我的网站设置监控的经验。虽然其他监控堆栈(例如将 prometheus、node-exporter 和 graphana 与警报结合使用)提供了大量很酷的功能,但我想展示一个轻量级且简单的堆栈。这个堆栈的核心组件是一个名为 uptime-kuma 的项目。它是用 node.js 和 vue 编写的,并带有一个非常漂亮的 UI。说服我运行 uptime-kuma 的主要论据是:

  • 超级简单的设置和配置

  • 很棒的用户界面

  • 电报通知的简单集成

  • 一套整洁的网站检查配置

因此,让我们开始部署 uptime-kuma。我喜欢使用traefik作为使用docker-compose部署的反向代理。这种简单的单主机设置允许您自动为域颁发 LetsEncrypt 证书。

因此,这就是设置所需的全部内容:具有公共 IP 地址的主机、可以访问您的监控的域以及将域指向相应主机的 A 记录。在主机上,您需要安装 docker 和 docker-compose。有几个关于为不同操作系统安装这两种工具的指南,例如docker和docker-compose。而已。

Traefik Docker-Compose 部署

对于 traefik,只有大量不同的撰写文件,因此您可以选择您喜欢的任何内容。如果您只想遵循本指南,请让我向您展示我的指南。我喜欢将 docker-compose 部署放在/usr/docker下。所以对于traefik,我们在/usr/docker/traefik下有以下文件。首先需要在docker-compose.yml中放入以下内容:

compose 文件包含一个服务和一个网络。该服务是带有一些命令行标志的 traefik 容器。主要是,您只需要更改您的电子邮件。如果您想在使用您的设置进行测试时避免遇到 LetsEncrypt 的速率限制,您可以将 acme 解析器更改为暂存(请参阅要点中的注释)。您可以请求任意数量的证书而不受速率限制,但会获得浏览器不会自动信任的证书。

所以它不用于生产用途。 traefik 服务为 HTTPS 流量转发ports 80443,为仪表板转发127.0.0.1:8080,只能从 localhost 访问。此外,还有一个名为reverseproxy的外部 docker 网络。我们会将 traefik 用作反向代理的所有容器附加到该网络。我们需要放入此文件夹的第二个文件是traefik.toml:

此配置设置 HTTP 和 HTTPS 流量和日志记录的入口点。这就是traefik。

您现在可以在/usr/docker/traefik文件夹中运行以下命令:

-docker network create -d bridge reverseproxy

-touch access.log

-docker-compose up -d

Uptime-Kuma Docker-Compose 部署

对于 uptime-kuma,作者提供了一个开箱即用的docker-compose文件。要使用 LetsEncrypt 证书在 traefik 后面运行它,我们只需要将其更改为以下/usr/docker/uptime-kuma/docker-compose.yml文件:

我们需要配置一些 traefik 标签,让 traefik 为域获取正确的证书。此外,需要将 uptime-kuma 容器添加到反向代理网络中,以便 traefik 可以将传入流量转发给它。最后,只需在 uptime-kuma 文件夹中运行以下命令即可启动容器:docker-compose up -d

配置 Uptime-Kuma

首次访问 uptime-kuma 实例时,您必须配置一个安全的管理员密码。完成后,您可以开始添加端点。 UI 看起来像这样。您可以定义 uptime-kuma 检查您网站的方式和频率的特定行为,例如,HTTP 返回码、证书验证等。这很棒。

添加第一个端点后,我建议配置电报通知。这样一来,只要一个或多个端点未按预期工作,您就会收到通知。设置电报通知非常容易。您需要创建一个群组、一个机器人,并在 uptime-kuma 中配置群组的聊天 ID 和机器人令牌。

所以,让我们一步一步来。要创建机器人,您需要编写Botfather。转到电报(或网络电报),打开与 Botfather 的聊天(按照文档中的链接),然后将/newbot作为命令写入机器人。您需要按照要求为其命名和用户名。您可以看到您的令牌,这是 uptime-kuma 所需配置的第一部分。

现在,创建一个新的电报组并将机器人添加到其中。您现在可以按照此处的说明获取聊天 ID。基本上,你需要在群聊中写一条消息,用你喜欢的任何工具向https://api.telegram.org/bot<YourBOTToken>/getUpdates发出get请求,然后寻找聊天字段。有时这个数字是负数。别担心,这很好。

有了chatId,就可以完成配置了。您可以使用设置对话框中的按钮测试电报通知。

总结

本文将向您展示如何结合 traefik 反向代理安装 uptime-kuma 以及如何配置电报通知。在我看来,它是监控具有许多有用设置的网站的好工具。如果您只需要确保您的网站正常运行,我绝对可以推荐使用它。

请随时分享任何反馈。我很乐意将其添加到本文中。

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐