【UptimeKuma】基于腾讯云轻量搭建开源的云监控&云拨测工具

发布于 / 信息应用 / 9 条评论

从2022年开始,以“降本增效”为目标的改革风席卷了整个国内的云计算市场,各路厂商纷纷收紧各自免费体验产品的额度,也加紧了边缘产品商业化的脚步。云监控(或者称云拨测)就是这样一个边缘化的产品,过去很多的厂商大多提供了非常充足的免费额度,这一年里的变故来的让人十分糟心……


一、倒霉经历

博主从2016年搞百度贴吧云签到执行计划任务用到云监控到现在,以时间为顺序列举一下博主用过的一些云监控服务:

360监控:在2020年以前产品就停更下线了
创宇监控:2019年大幅缩减到20条邮件/短信提醒,2021年改版后彻底取消免费额度
DNSPod:保持免费,但功能已停更多年
UptimeRobot:免费用户仅支持HEAD请求,2023年开始限制1个告警邮箱
MySSL证书监控:已商业化,免费20站点及30次/月告警额度
阿里云监控:国内版和国际版相继于2022年商业化,免费监控持续时长受限
腾讯云拨测:于2023年上半年正式商业化,仅保留限期的免费试用
百度云监控:于2023年中正式商业化,取消了免费额度

正如上面列举的这样,几年里我的云监控服务迁移了很多次,最长的也就相安无事一两年,从换到阿里之后更是每一个连几个月都没用到就商业化了。每一次的监控项目迁移都要花费很大的精力去设置告警组、告警规则、监控对象等等,然后在使用的过程中就是今天告诉你砍几个测试节点、明天砍一下监控周期、后天砍点通知额度,最后一竿子捅进来告诉你商业化啦,免费额度木大啦。

被折腾的身心俱疲之后,我先是把贴吧签到换成了crontab+curl,然后就开始物色一个比较好用的云监控程序。这时我看到了UptimeKuma的介绍,因为博主对Node.js和PM2一点都不熟,所以仅仅抱着试试看的态度在测试机上安装了一下。结果发现UptimeKuma的功能完成度极高,简直是自建云监控的完美解决方案,在稳定运行了半年以后忍不住给大家分享一下这个好看又好用的程序。

最近恰逢腾讯云双十一活动,国内Lighthouse最低仅需88元/年,香港低价专属套餐也已开放购买。整体活动虽然没有三周年活动力度大,但是性价比依然不错,用来个人学习使用还是非常划算的。

腾讯云双十一https://cloud.tencent.com/act/pro/2023double11


二、搭建教程

第零步 Docker一键安装

UptimeKuma已提供打包好的docker镜像供一键运行,由于与GitHub互联不稳定,强烈建议境内服务器使用此方式进行安装。若使用腾讯云轻量应用服务器的Docker-CE镜像或已安装docker,可以运行以下命令进行安装,安装完成后可直接跳至本节第四步。

第一步 配置Node.js环境

UptimeKuma支持Node.js 14及以上的版本,如果使用的是腾讯云轻量应用服务器,可以直接使用应用模板中的Node.js镜像。对于常见的系统,Node.js有多种安装方式,可以直接使用apt等包管理器进行二进制安装,可以从官网获取构建好的二进制文件进行安装,可以使用nvm进行管理,可以拉取源码编译安装(比如32位的i686,建议不高于16),也可以通过安装宝塔pm2管理器自动配置。条条大路通罗马,这里只列举几个典型的例子。

Node.js官方发布页面提供了当前最新版本的二进制包和源码的下载,历史版本需要前往官方下载站,进入以版本号命名的文件夹,根据系统和架构选择二进制压缩包如linux-x64.tar.gz ,在最下面如node-v16.9.1.tar.gz格式的包为源代码。

Node.js发布页https://nodejs.org/en/download
Node.js下载站https://nodejs.org/dist

第二步 安装UptimeKuma

UptimeKuma的源码需要从GitHub获取,若服务器访问GitHub存在障碍,则需要从release页面下载源码包(点击前往)手动上传到服务器并解压。

GitHubhttps://github.com/louislam/uptime-kuma

当Console中显示“Listening on 3001”服务即正常启动了,在防火墙中放行3001端口,使用http://ip:3001即可访问控制页面。

第三步 配置进程守护

Node.js一般使用pm2管理器进行进程守护和开机启动:

第四步 绑定域名

可以使用NGINX反向代理3001端口至常规的网站端口并在NGINX上绑定域名、设置证书等,以下是一个可用的示例配置。至此,UptimeKuma的搭建就正式完成了,可以进入具体内容的设置了。


三、使用教程

云监控功能

支持配置HTTP、TCP、Ping、DNS检测等功能,其中HTTP拨测支持证书到期监控、返回关键词监控等功能。

整体功能支持较为完整,UI交互体验也非常友好,美中不足是缺少像指定解析到IP的功能。

监控展示页

UptimeKuma支持设置公开的信息披露页面,和UptimeRobot一样简洁美观并且可以自定义。

告警通知渠道

UptimeKuma支持SMTP邮件、钉钉机器人、飞书、Discord、Telegram、企业微信等30余种现成的通知方式供你选择,总有一种适合你。博主是使用的SMTP邮件发送到手机的139邮箱,这样就实现了免费的短信提醒。

通过代理拨测

网络受限?UptimeKuma还支持前置http、socks5等代理进行测试。

备份管理

一键导入导出,更新、重装、启用新服务器都可以快速恢复已有的配置。


四、结语

UptimeKuma算是自建云监控的一个很好的选择了,基本能满足一般的使用场景需要。在国内安装最大的问题还是GitHub,官方的安装指引中调用的脚本有几个地方需要从GitHub拉取文件才能够继续。从这个上面也切实地感觉到了Docker一键的简便性,如果习惯的话不如使用Docker一键安装,这样反而能节约大把的时间。

博主的UptimeKuma运行了差不多有大半年了,内存占用在200m上下,程序本身是相当稳定的,也没有遇到什么明显的bug。现在才写出来也是因为最近没有什么题材了,就连同Node.js踩的一些坑一起整理起来了,如果觉得啰嗦就挑选着看吧~


*原创文章,转载请注明出处@luotianyi.vc

转载原创文章请注明,转载自: Luminous' Home » 【UptimeKuma】基于腾讯云轻量搭建开源的云监控&云拨测工具

  1. http可以指定ip啊,url写上具体ip,header那边设置好host应该就可以吧

    1. @OysterQAQ 对哦,脑子抽了,直接在header里指定host就可以……
      1. @Luminous 不过我实际测试了下,有时候就算这样做了还是解析到了dns返回的ip
  2. 之前有次更新好像是数据库直接损毁了,摆烂用Better Stack了

  3. 就是好奇SMTP发信的话,阿里云和腾讯云是不是封端口?

    1. @嫖嫖乐 通过465/587这样TLS加密的端口发信一直是不受限的,一般只限制25端口,腾讯云现在好像25已经是默认开放的了
  4. 之前就看过大佬也叫用的监控,不过我自己不在意东西断不断,倒是可以试试看,可以用在工作站检测一下服务

    1. @七十载 单节点uptimekuma好用,分布式多节点grafana好用,愿意折腾都可以试试
  5. 好好好,学到了捏