为什么
- 前段时间,有博友老说我站点无法访问,但是腾讯云也没有报警之类的,在加上本身我也是小网管,公司的公网IP主电信IP断网的时候会立即提醒,但是备用联通网络挂了话,老是没有什么提醒,这就造成了前段时间电信网通知要优化断网,然后备用联通网挂了好几天,那一刻我懵逼了。赶紧给联通机房打电话,让派人过来整,不过还好,本地运行商对我们这些大客户,还是响应非常快的!
- 所以,让我下定决心自建一个监控程序!能监控站点IP的连通性,及时通知到我!
项目简介
Uptime-kuma
- 项目地址:超链接
特性(浏览器翻译)
- 监控 HTTP/TCP / HTTP(s) 关键字 / Ping / DNS 记录 / 推送 / Steam 游戏服务器 / Docker 容器的正常运行时间
- 花哨的、反应式的、快速的 UI/UX
- 通过电报,Discord,Gotify,Slack,Pushover,电子邮件(SMTP)和90 +通知服务的通知
- 20 秒间隔
- 多种语言
- 多个状态页面
- 将状态页面映射到特定域
- Ping图
- 证书信息
- 代理支持
- 2FA 支持
项目安装
- 由于该项目部署到我本地的树莓派上了,所以我采用了docker安装!本地树莓派使用4G上网,断网的可能性较小,除非当地运行商网络故障!
- SSH到树莓派或者你自己的服务器上,输入以下命令:
docker volume create uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
- 如无报错,安装完毕后通过IP:3001,即可访问到面板,简单注册一下,就进入后台了。
- 我们可以对需要监控的站点IP项目进行设置
- 选择通知类型,可以对每个项目进行单独通知,可以一起通知!基本上国内主流机器人都是支持的,这点还是非常值得肯定的。
- 根据需求设置,我这里选择入口是状态页面。
域名访问
- 1、如果你使用的是云服务器并且安装宝塔面板,那么先将域名解析到服务器,宝塔创建相关域名的网站,打开这个
网站设置
-反向代理
,将127.0.0.1:3001,反向代理出去就行了,顺便将SSL证书自动装一下。 - 2、内网设备,如果自己有内网穿透服务器的话,那么可以参考我之前的文章使用Docker搭建NPS内网穿透自己搭建一个就好了,很简单!
- 3、内网设备,如果自己没有带IP服务器的话,那么可以考虑买别人的Ngrok、Frp、NPS服务,详细我就不写了,具体参考:傻瓜式ngrok或者frp让树莓派实现内网穿透-网友小宋,唯一区别就是Ngrok隧道设置的本地端口后面的80改成3001。
- 4、我自建的站点监控已经穿透出去了,使用的是之前的在ngrok上买的,一直也没用,感觉不是很快。就暂时给这个用吧!站点监控,链接三个月后可能就失效了。到时可能会重新调整。
扩展知识
- 中间遇到了一个问题,由于我前几天用ngrok绑定了一个网盘程序,并且后台运行了。我改完后需要重启脚本才能生效,但我是非专业人士,所以查了下解决办法,顺便记录一下。
- 以下为演示
- 后台运行text.sh
setsid sh test.sh
查找后台运行text.sh脚本
ps -aux|grep test.sh| grep -v grep
终止进程
终止进程
- kill 1219
强制终止进程
kill -9 1219
- 然后正常开启一遍脚本即可!看来改天要好好学学Linux系统了。我这水平也就能操作一下简单的命令。
结语
- 这个监控程序已经可以正常满足我的需求了,主要是对站点和IP进行检测,昨天搭建成功后,中间前段时间买的香港小鸡半夜就出现解析问题了,第一时间通过钉钉机器人发送过来了。要的就是这种效果哈!有需求的可以自己搭建一下玩玩哈!
- 另外有没有什么好用的网盘程序,最好可以在docker安装,能够对接各家云存储的。准备搭建一个,前两天做了nextcloud,但是感觉不是很好用。
28 条评论
监控请求建议使用HEAD可减少流量消耗!
没事 2000个G正在想怎么消耗
壕无人性!
最近看到一则新闻是关于docker的,好像这家公司又在花式作死,?竟然要删除所有没有付钱的开源组织的镜像。
没事哈 都不用哈
是有这个说法,普通用户创建的不受影响,但是以组织名义创建的要么缴费,要么删除。
没事哈 我们都是个人用户
嗯嗯,是的。我都没有创建过docker的镜像OωO
又是一大工程,向大佬学习学习
什么大工程哈 就是一个小应用
终于又看到方糖了,kill -9前几天可帮了我大忙
之前团购了一年还是两年的方糖订阅,本来可以直接钉钉机器人的,想想还是方糖中转一下吧!不过刚刚已经替换了钉钉的token了