自托管状态页面工具Kener

什么是 Kener ?

Kener 是开源的 Node.js 状态页面工具,旨在轻松监控服务和处理事故。它提供了一个时尚且用户友好的界面,简化了对服务中断的跟踪,并改善了我们在事故期间的沟通方式。而最好的部分是,KenerGitHub 无缝集成,使事故管理成为团队合作的一部分,让我们更容易在协作友好的环境中一起跟踪和解决问题。Kener 使用文件来存储数据。其他适配器即将推出。

Kener 功能和老苏介绍的 Uptime Kuma 相似,用于监控网站是否在线

文章传送门:网站在线监控工具Uptime Kuma

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 rajnandan1/kener ,选择第一个 rajnandan1/kener,版本选择 latest

本文写作时, latest 版本对应为 0.0.8

docker 文件夹中,创建一个新文件夹 kener,并在其中建一个子文件夹 config

文件夹 装载路径 说明
docker/kener/config /config 存放设置文件、图片等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3212 3000

环境

可变
TZ 时区设置

下拉找到 TZ ,默认值为 Etc/GMT

改为 Asia/Shanghai

更多的环境变量设置请参考官方文档:https://kener.ing/docs#h2environment-variable

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 kener 和 子目录
mkdir -p /volume1/docker/kener/config

# 进入 kener 目录
cd /volume1/docker/kener

# 运行容器
docker run -d \
--restart unless-stopped \
--name kener \
-p 3212:3000 \
-v $(pwd)/config:/config \
-e TZ=Asia/Shanghai \
rajnandan1/kener:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
version: '3.7'

services:
kener:
image: rajnandan1/kener:latest # assuming this is final namespace/image
container_name: kener
environment:
- TZ=Asia/Shanghai
#- GH_TOKEN=
#- API_TOKEN=
#- API_IP

# If running on a LINUX HOST and not podman rootless these MUST BE SET
# run "id $user" from command line and replace numbers below with output from command
#- PUID=1000 # gid
#- PGID=1000 # uid

### Most likely DO NOT need to change anything below this ###

#- PORT=3000 Port app listens on IN CONTAINER

### If any of the below are changed make sure the bound volume is correct as well ###
#- CONFIG_DIR=/config
#- PUBLIC_KENER_FOLDER=/config/static
#- MONITOR_YAML_PATH=/config/monitors.yaml
#- SITE_YAML_PATH=/config/site.yaml

ports:
- '3212:3000/tcp'
volumes:
- './config:/config:rw'

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 kener 和 子目录
mkdir -p /volume1/docker/kener/config

# 进入 kener 目录
cd /volume1/docker/kener

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3212 就能看到主界面

/config 目录中有两个文件,其中

  • monitors.yaml :可以在这个文件中添加要监控的站点,但是需要注意,yaml 必须有效。
  • site.yaml:此文件包含了站点相关的设置,可以通过修改此文件以拥有自己的品牌

添加监控站点

需要修改 monitors.yaml 文件,但是修改之前要记得改权限,要给 Everyone 文件写入的权限

还是以老苏的博客为例,因为描述中有中文,所以编码必须是 UTF-8 格式

1
2
3
4
5
6
7
- name: laosu's blog
description: 老苏的博客,主要记录了各种折腾的过程。
tag: "blog"
image: "https://laosu.tech/images/laosu_wx.jpg"
api:
method: GET
url: https://laosu.tech

完整的参数介绍,请看官方文档:https://kener.ing/docs#h1add-monitors,当然页面上也有,地址是 http://群晖IP:3212/docs#h1add-monitors

名称 必填 说明
name 必填,唯一值 只是监视器的名称,会显示在界面上
description 可选 简介,会显示在名字下面
tag 必填,唯一值 用于使用评论在 GitHub 上标记创建的事故
image 可选 显示在名字前面的 logo
api.method 可选 HTTP 方法
api.url 可选 需要监控站点的 HTTP 地址

上面只是一个最简单的示例,保存后还需要重启容器,使得设置生效。再次刷新网页就会看到设置生效了

名字下面有两个按钮,一个显示简介,另一个是分享

有兴趣可以改改 site.yaml 玩,道理和 monitors.yaml 是一样的。

目前的功能不多,从 Roadmap 看,后续应该还会增加数据库的监测和消息发送。

参考文档

rajnandan1/kener: Kener is a Modern Self hosted Status Page, batteries included
地址:https://github.com/rajnandan1/kener

Kener - Modern Open Source Status Page
地址:https://kener.ing/