侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

搭建uptime-kuma服务监控面板

千城
2022-07-09 / 0 评论 / 0 点赞 / 239 阅读 / 0 字

1. uptime-kuma 简介

uptime-kuma是一款开源监控工具,类似于“Uptime Robot”,UI简洁美观,支持TCP/PING/HTTP监控等,支持多语言其中包括中文。当服务出现故障时,可自动通过 Telegram、Discord、Gotify、Slack、Pushover、Email (SMTP) 等多种服务发送通知消息。

项目地址:https://github.com/louislam/uptime-kuma

官方演示:https://demo.uptime.kuma.pet
QQ截图20220709095856

2. 搭建前的准备

VPS服务器一枚
系统用的是ubuntu 20.04

2.1 Docker搭建

$ apt-get update -y && apt-get install curl -y  # 安装curl
$ curl https://get.docker.com | sh -   # 安装docker
$ sudo systemctl start docker  # 启动docker服务
$ docker version # 查看docker版本(客户端要与服务端一致)

2.2 申请Telegram Bot

这个是用于消息通知的,如果你不打算用TG进行消息通知,略过本节即可。具体教程可以查看此处

3. 搭建 uptime-kuma 面板

3.1 使用 Docker 部署服务

$ 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

3.2 设置反向代理并开启HTTPS

3.2.1 新建网站

宝塔面板——网站——添加站点——填写域名即可(其他的都不需要,我们只是用它来做反向代理和配置HTTPS)

3.2.2 给网站开启HTTPS

宝塔面板——网站——设置——SSL——申请证书,强制https。

3.2.3 设置反向代理

宝塔面板——网站——设置——反向代理——添加反向代理——填写代理名称和目标URL(http://127.0.0.1:3001)

注意:与其他 Web 应用程序不同,Uptime Kuma 基于 WebSocket。还需要在 Nginx 里配置 “Upgrade” and “Connection” 才能反向代理 WebSocket。具体操作步骤如下:

宝塔面板——网站——设置——配置文件,在location /内添加上”Upgrade” and “Connection”的那两行配置。

server {
  listen 443 ssl http2;
  server_name www.qiancheng.ml;
  ssl_certificate     /path/to/ssl/cert/crt;
  ssl_certificate_key /path/to/ssl/key/key;

  location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass         http://localhost:3001/;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
  }
}

4. 使用 uptime-kuma 面板

4.1 面板基本配置
浏览器访问:https://域名,即可查看 uptime-kuma 服务监控面板,初始界面如下:
uptime-kuma73b3e0d83f846479
点击设置按钮,根据个人爱好可以对语言、主题、时区、是否允许搜索引擎索引、是否需要身份验证等多个方面进行个性化配置。

5.设置Telegram 消息通知

5.1 国外服务器设置TG消息通知

我们可以点击设置,通知,设置通知,通知类型选择telegram,填写 Bot Token 和 Chat ID 即可配置好 Telegram 消息通知。
QQ截图20220709102503

5.2 解决国内部署无法发送TG通知的问题

由于国内GFW的原因,如果把 uptime-kuma 部署在国内服务器,则无法成功发送TG通知。我们可以用CloudFlare的workers部署Telegram Bot消息通知的反向代理来解决这个问题。

  1. 解析一个子域名备用(即反代域名)

在CloudFlare的网站DNS处解析一个域名,注意这里的 IPv4 地址填写成随机的例如(2.2.2.2),而不是你的服务器IP。
image
注意要开启小云朵

  1. 创建CloudFlare workers并配置路由
    打开账号下的Workers侧边栏,点击创建服务,起一个服务名称,选择HTTP处理程序
    image-1657334015416

进去之后,点击“快速编辑”,在此配置js脚本,将Telegram官方地址转发到你的反代地址上。

脚本内容如下,注意将第一行bot之后的数字换成你TG token的数字部分。只需要数字部分即可

const whitelist = ["/bot2222222222:"];
const tg_host = "api.telegram.org";

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

function validate(path) {
    for (var i = 0; i < whitelist.length; i++) {
        if (path.startsWith(whitelist[i]))
            return true;
    }
    return false;
}

async function handleRequest(request) {
    var u = new URL(request.url);
    u.host = tg_host;
    if (!validate(u.pathname))
        return new Response('Unauthorized', {
            status: 403
        });
    var req = new Request(u, {
        method: request.method,
        headers: request.headers,
        body: request.body
    });
    const result = await fetch(req);
    return result;
}

image-1657334250075

配置好这里之后,点击“保存并部署”。

打开根域名下的Workers侧边栏,点击添加路由,路由填写成反代域名/*,服务选择我们刚才配置的那个,环境选择production,保存即可。
image-1657334356858

  1. 修改uptime-kuma的代码
$ docker exec -it uptime-kuma /bin/bash
$ apt-get update
$ apt-get install vim -y             // 安装vim
$ vim /app/src/components/notifications/Telegram.vue   // 找到:api.telegram.org,将其替换成你的反代域名(只有一处)
$ vim /app/server/notification-providers/telegram.js   // 找到:api.telegram.org,将其替换成你的反代域名(只有一处)
$ exit 
$ docker restart uptime-kuma

然后再次使用 uptime-kuma 的消息通知,即可正常发送到你的 Telegram Bot上了。

6.面板更新

只需要如下命令即可更新,其他配置无需更改,数据也不会丢失

$ docker pull louislam/uptime-kuma:1
$ docker stop uptime-kuma
$ docker rm uptime-kuma
$ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

安卓手机搭建教程

下载安装APP并登录root

首先先下载alpine-term,github上的
下载安装和安装后初始化开机都需要等一会儿
开机后,登录系统,用户 alpine 密码: alpine
然后切换到root账户,输入sudo -s
密码为 alpine ,接着修改root密码, 输入 passwd ,可以输入一个简单的密码123456,需要输入两次。

开启root登录SSH

系统默认是禁止ssh密码登录的,所以需要先开启她,输入:

sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

如果还需要开机root用户登录的话,输入

sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config

然后重启启动sshd服务,输入

service sshd restart
映射ssh的22端口

因为是Qemu套娃,所以需要映射ssh的22端口,开机完成后,手指在软件的左上方向右滑,会出现菜单,如下图所示:
image-1657502986675
然后映射ssh的22端口到手机的2222端口,选择 [1]QEMU,输入

hostfwd_add tcp::2222-:22

【注意】这个映射端口的命令每次重启Alpine Term 都需要重新设置一次!建议常驻后台

执行上面的指令后就可以远程ssh手机的2222端口。接下来的操作也强烈建议在电脑上远程ssh操作,毕竟电脑方便。

配置APK源和DNS

因为Alpine默认的都是国外的源和DNS,所以这里都需要改成国内的。
更换阿里云的源

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

更换114DNS,两条都换了

1. sed -i 's/nameserver 185.120.22.15/nameserver 114.114.114.114/g' /etc/resolv.conf
2. sed -i 's/nameserver 94.16.114.254/nameserver 114.114.115.115/g' /etc/resolv.conf

这样网络就正常可以使用了,接下来设置时区

setup-timezone

等到提示 Which timezone are you in? (‘?’ for list) [UTC],然后输入

Asia/Shanghai

执行完成后,输入date测试下时间。

更新软件包
- apk update
- apk upgrade

更新之后设置docker开机启动

rc-update add docker

然后启动docker

service docker start

上面的步骤挺慢的,完成后输入docker version,打印版本号则启动成功。

然后就可以按照vps的方法就可以搭建面板了,测试过程中,面板docker下载和安装都挺慢,启动也很慢,不过启动后网页打开挺流畅的,所以准备好耐心。
中途如果守护进程报错那就重启下docker

systemctl restart  docker

最后就是装完面板也需要映射端口:

hostfwd_add tcp::3001-:3001
0

评论区