网站一体化监控工具Tianji

什么是 Tianji ?

Tianji 是一个多功能的网站和服务器监控工具,旨在帮助用户进行网站流量统计、状态监控以及服务器状态监控运维。此外,Tianji 还支持自定义脚本,可以监控包括 OpenAI 余额、GitHub 星标数量在内的各种数值信息,并在监控失败时发送通知。

一般在观察网站的过程中,经常需要同时使用多个应用程序。例如,我们需要像 GA/umami 这样的分析工具来检查 pv/uv 和每个页面的访问次数,我们需要一个运行时间监控器来检查服务器的网络质量和连接性,我们还需要使用 prometheus 来获取服务器报告的状态以检查服务器的质量。此外,如果我们开发一个允许开源部署的应用程序,我们通常需要一个遥测系统来帮助我们收集其他人部署情况的最基本信息。

所以作者开发了 Tianji 这么一个一体化应用程序,在中文中意味着天赐良机策略,功能包含了网站分析 + 运行时间监控 + 服务器状态 ,对于大多数只有轻量级需求的用户来说,Tianji 比专业工具更加方便和易于使用。

反向代理

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

域名 局域网地址 备注
tj.laosu.tech http://192.168.0.197:12345 Tianji 的访问地址

本次采用的是 cloudflared tunnel + npm 方案,因为被分析的网站需要向 Tianji 发数据,需要 Tianji 有一个可公网访问的地址

文章传送门:免费的Cloudflared实现外网访问群晖(续)

按我们预设置的域名、局域网 IP 和端口,在 npm 中进行设置

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 v0.9.0

采用 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
32
version: '3'

services:
tianji:
image: moonrailgun/tianji
container_name: tianji-app
restart: always
ports:
- "12345:12345"
environment:
DATABASE_URL: postgresql://tianji:tianji@postgres:5432/tianji
JWT_SECRET: replace-me-with-a-random-string
ALLOW_REGISTER: "false"
ALLOW_OPENAPI: "true"
depends_on:
- postgres

postgres:
image: postgres:15.4-alpine
container_name: tianji-postgres
restart: always
volumes:
- ./data:/var/lib/postgresql/data
environment:
POSTGRES_DB: tianji
POSTGRES_USER: tianji
POSTGRES_PASSWORD: tianji
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
  • DATABASE_URL:数据库连接地址;
  • JWT_SECRET :改成随机字符串 ;
  • ALLOW_REGISTER: 是否允许注册;
  • ALLOW_OPENAPI :是否允许 API 访问;

然后执行下面的命令

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

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 https://tj.laosu.tech 就能看到登录界面

默认的账号/密码:admin/admin

如果环境变量设置为了 ALLOW_REGISTER: "true",会多出 Register 按钮

可以注册自己的账号

登录后的主界面

中文

左下角菜单中找到 Language

选择 简体中文 后,主界面会立即切到中文

网站

这部分的功能和 Website analytics 是一样的;

找到 添加网站,还是以老苏的博客为例

添加完成后,点右上角的代码

会看到一段 跟踪代码

1
<script async defer src="https://tj.laosu.tech/tracker.js" data-website-id="cm1w6lgu30004w30mgze99fw7"></script>

将代码放入网站的 <head> 部分,过一会儿应该就有数据了

Monitor

这部分的功能和 Uptime Monitor 是一样的;

找到 添加监控,还是以老苏的博客为例

添加成功后

按照我们默认的设定,会每 60 秒检测一次,所以几分钟之后

当然 Tianji 的功能不止这些,有兴趣的可以深入研究,官方文档支持简体中文:https://tianji.msgbyte.com/zh-Hans/docs/intro

参考文档

msgbyte/tianji: Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives
地址:https://github.com/msgbyte/tianji

Tianji = Website Analytics + Uptime Monitor + Server Status | Tianji
地址:https://tianji.msgbyte.com/

介绍 | Tianji
地址:https://tianji.msgbyte.com/zh-Hans/docs/intro