docker系列 搭建基于uptime和bark的应用实时健康监测及报警系统
本文最后更新于 101 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

当我们内部应用越来越多,越来越复杂的时候,一个必须解决的问题就是如何实时把控所有应用的运行健康情况,并在应用出现问题的时候能够第一时间收到报警。要解决这个问题,我们就需要搭建自己的应用实时健康监测及报警系统,这就需要用到2个应用配合:uptime-kuma和bark-server。

部署uptime-kuma

首先通过docker方式部署uptime-kuma,命令如下:

docker run --name uptime-kuma  -d --restart=always \
-p 3001:3001 \
-v /docker/uptime-kuma/data:/app/data \
louislam/uptime-kuma 

参数解释:
-p 3001:3001
这个端口是指定容器映射的宿主机端口,大家可以根据自己的实际情况进行修改。
-v /docker/uptime-kuma/data:/app/data
是将宿主机的/docker/uptime-kuma/data这个目录映射到容器内部的/app/data目录,所有uptime-kuma上配置的应用健康监测配置都在这个目录里,以后如果需要迁移容器,只需要把这个目录拷贝过去,已经配置的数据就不会丢失。

确认容器状态

容器搭建完成以后,可以通过Portainer查看容易是否成功建立,也可以通过以下命令查看:

docker ps -f name=uptime-kuma

如果状态显示up和healthy,既表示成功建立和运行,如下图:

image.png

初始化uptime-kuma

成功建立docker以后,使用浏览器通过http://宿主机IP:3001 进行访问。第一次登录会要求创建管理员用户名和密码,创建完成以后登录进入,默认页面是英文,可以在右上角下拉菜单,选Settings-Appearance-Language里选择“简体中文”即可,如下图:

image.png

image.png

更改语言之后,整个界面变成了中文,如下图:
image.png

上图左边红框中的内容是已经添加的监控项,右边则是设置项。

添加监控项

我们以新添加一个www.example.com域名的监控为例来演示如何添加监控项。

首先点击上图左上角的添加监控项按钮,出现了如下界面:

image.png

在上图中只需填写"显示名称"和"URL"即可,其他都可以保留默认值,最后点击下方的绿色按钮保存即可:
image.png

关键设置项

监控类型:

uptime-kuma支持多种监控类型,具体如下图:

image.png

默认的是常规的HTTP(S)类型,而HTTP(S)还有关键字和JSON查询两种方式,其中关键字方式可以是可以根据响应页面中特定字符是否存在来判断应用是否正常。其他的还有非常多的类型可以选择,这个需要的朋友自己研究即可。

有效状态码:

常规的HTTP(S)类型是靠站点响应代码来简单判断站点是否正常,默认的网站有效响应代码是200-299,这个可以根据需要进行修改

通知:

当uptime监测到站点状态改变的时候,用什么方式通知管理员,这个我在另一篇文章(参见:docker系列 搭建基于bark server的消息推送服务器 )中有详细介绍过,这里就不展开了。

代理:

如果需要监测的网站需要经过代理服务器才能访问,则就在这里配置

HTTP选项:

默认是GET方式,还可以选择其他方式

image.png

验证:

如果监测的网页需要认证并且是否能够登录也作为是否健康的判断依据,则需要在这里设置:

image.png

用得最多的,其实就是常规的HTTP(S)方式,如果大家没有特殊需求,基本就用默认配置就可以。

其实要实现实时报警的功能,关键还是在通知方式的选择上。个人推荐bark的方式,在手机(ios,安卓),pad(pados,安卓)上都可以安装app,非常方便。唯一的麻烦是搭建bark-server需要公网IP,如果家庭宽带没有公网IP,那就建议买一个便宜的云主机即可。具体bark-server的搭建方式见:docker系列 搭建基于bark server的消息推送服务器

配置公网访问

如果要发布到公网上的,大家需要根据实际环境和自己使用的反向代理选择最适合自己的发布方式,可以参考我以前的几篇文章:
1、docker系列 使用docker基于NPM搭建自己的反向代理
2、linux面板系列 配置反向代理并使用非443端口进行发布
3、家庭数据中心系列 通过国内备案云主机白嫖cloudflare实现国外快速访问国内站点
4、家庭数据中心系列 通过无公网IP的家庭宽带白嫖cloudflare实现快速建站(通用)

其中第1,2种方式适合有公网ip却没有合法443端口的环境(家庭宽带、未备案的云主机),需要在url后面加非标端口(如果使用cloudflare建站的不需要加端口,但是需要自定义源站端口,这个可以参考:家庭数据中心系列 通过cloudflare的Origin Rules解决建站有公网IP却没有合法的80、443端口的问题)。第3种方式适合有备案的云主机,第4种方式适合所有环境(包括没有公网IP的环境),也是我建议的方式(不管你的环境有没有公网IP,因为这种方式不需要直接在公网上跑https流量)。

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       
error:
zh_CN
春节
快乐