开源服务运行监控工具Lunalytics

简介

什么是 Lunalytics ?

Lunalytics 是一个开源监控工具,使用 Node.jsReact 构建,专注于为开发者提供优先体验,支持多个用户。Lunalytics 目前可以监控 HTTP(s)/TCP 连接,未来会添加更多连接。除了 ping 👀 之外,还在研究不同的监控系统。

主要特点

  • 支持多用户:允许多个用户同时使用和管理监控功能。
  • HTTP(s)/TCP 监控:可以监控 HTTPTCP 连接,未来将添加更多监控选项。
  • 角色基于访问控制:实现不同用户权限管理。
  • 简洁易用的用户界面:提供清晰、友好的用户体验。
  • 可定制的用户界面和配置:用户可以根据需要自定义界面和个人资料。

Lunalytics 旨在克服现有监控工具的不足,提供一个现代化、易于使用的解决方案。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 lunalytics ,选择第一个 ksjaay/lunalytics,版本只有一个 latest,所以双击直接下载。

docker 文件夹中,创建一个新文件夹 lunalytics,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/lunalytics/data /app/data 存放数据库和设置文件
docker/lunalytics/logs /app/logs 存放日志文件

端口

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

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

命令行安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 lunalytics 和 子目录
mkdir -p /volume1/docker/lunalytics/{data,logs}

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

# 运行容器
docker run -d \
--restart unless-stopped \
--name lunalytics \
-p 2308:2308 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
ksjaay/lunalytics:latest

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

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'

services:
lunalytics:
image: ksjaay/lunalytics:latest
container_name: lunalytics
restart: unless-stopped
ports:
- 2308:2308
volumes:
- ./data:/app/data
- ./logs:/app/logs

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 lunalytics 和 子目录
mkdir -p /volume1/docker/lunalytics/{data,logs}

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

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

# 一键启动
docker-compose up -d

反向代理

简单测试了一下,使用 http://群晖IP:2308 注册时会报错 Please enter a valid URL.,而且登录也不能成功。老苏尝试用 nginx proxy manager 做反代后,可以正常登录

假设实际访问地址为: https://lunalytics.laosu.tech

域名 局域网地址 备注
lunalytics.laosu.tech http://192.168.0.197:2308 Lunalytics 的访问地址

npm 中的设置

SSL 都勾选了

运行

在浏览器中输入反代的域名,就能看到注册向导界面

  • Email:填入 Email 地址
  • Uasename:填入用户名

设置密码

设置按照类型

如果选择了 Advanced Setup

  • 可以选择不同的数据库,SQLitePostgreSQL
  • 数据库名默认就可以

接下来是网页设置

  • JWT Secret :相当是一个密钥,用于对 Token 进行签名验证。是一个长且随机的字符串。
  • Website URL:这里必须要用域名,否则会报错 Please enter a valid URL.,下图中尚未做修改,是错误的范例

监控

设置完成后的主界面

NEW 新建监控,以老苏的博客为例

  • Name :不能使用中文,不能有空格
  • Monitor Type:支持 httptcp
  • URL :需要监控的网址
  • Method :支持 HEADDELETEGETOPTIONS

设置完成后,开始是没有数据的

慢慢的就有数据了

再多等一会儿

虽然支持多种通知,但对国内用户并不友好

参考文档

KSJaay/Lunalytics: 🚀 Open source monitoring tool built with Node.js
地址:https://github.com/KSJaay/Lunalytics

Lunalytics
地址:https://lunalytics.xyz/

Welcome to Lunalytics documentation | Lunalytics
地址:https://lunalytics.xyz/intro.html

博壹BOYY - Telegram 创建 bot 获取 token 和 chatId 以及发送消息简明教程
地址:https://www.boyy.org/notebook/mark/141118.html