可自定义实时监控系统HertzBeat

什么是 HertzBeat ?

HertzBeat是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。集 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。更自由化的阈值规则(计算表达式),邮件、DiscordSlackTelegram、钉钉、微信、飞书、短信、Webhook等方式及时送达。

如果你不想自己搭建,可以去试试官方的云服务:https://tancloud.cn

安装

在群晖上以 Docker 方式安装。

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

本文写作时, latest 版本对应为 v1.3.1

docker 文件夹中,创建一个新文件夹 hertzbeat,并在其中建两个子文件夹 datalogs

文件夹 装载路径 说明
docker/hertzbeat/data /opt/hertzbeat/data 存放 H2数据库
docker/hertzbeat/logs /opt/hertzbeat/logs 日志目录

端口

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

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

环境

可变
LANG 默认未 C.UTF-8,改设为 zh_CN.UTF-8
TZ 设为 Asia/Shanghai

命令行安装

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

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

# 进入 hertzbeat 目录
cd /volume2/docker/hertzbeat

# 运行容器
docker run -d \
--restart unless-stopped \
--name hertzbeat \
-p 1157:1157 \
-v $(pwd)/data:/opt/hertzbeat/data \
-v $(pwd)/logs:/opt/hertzbeat/logs \
-e LANG=zh_CN.UTF-8 \
-e TZ=Asia/Shanghai \
tancloud/hertzbeat

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

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

services:
hertzbeat:
image: tancloud/hertzbeat
container_name: hertzbeat
restart: unless-stopped
ports:
- 1157:1157
volumes:
- ./data:/opt/hertzbeat/data
- ./logs:/opt/hertzbeat/logs
environment:
- LANG=zh_CN.UTF-8
- TZ=Asia/Shanghai

然后执行下面的命令

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

# 进入 hertzbeat 目录
cd /volume2/docker/hertzbeat

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:1157 就能看到登录界面

默认账号密码 admin/hertzbeat

PING连通性

监控 –> 应用服务监控 –> PING连通性 –> 新增PING连通性

填入要监控的主机 IP监控名称,然后测试一下

没问题的话,直接 确定

MariaDB数据库

监控 –> 数据库监控 –> MariaDB数据库 –> 新增MariaDB数据库

老苏准备测试群晖自带的 MariaDB 10

填入要监控的主机 IP监控名称、端口,然后测试一下

没问题的话,直接 确定

Docker

打开 /var/packages/Docker/etc/dockerd.json

增加一行

1
"hosts" : [ "tcp://192.168.0.197:2375", "unix:///var/run/docker.sock" ],

其中:192.168.0.197 为群晖的主机 IP

保存后,执行一次,当然你也可以在 套件中心 重启 Docker 套件

1
2
# 重启docker
synoservice --restart pkgctl-Docker

监控 –> 云原生监控 –> Docker –> 新增 Docker

填入要监控的主机 IP监控名称、端口,然后测试一下

没问题的话,直接 确定

过一段时间在 Dashboard 可能会有一些事件

消息通知

HertzBeat 的消息通知支持很多种

官方提供了详细的说明,而且是中文的,大家仔细研究吧

https://hertzbeat.com/zh-cn/docs/help/alert_email

无论在哪个页面上遇到问题,都可以直接点右上角的 帮助 按钮,默认是英文的,但是可以切换为中文

参考文档

dromara/hertzbeat: A real-time monitoring system with custom-monitor and agentless. Support web service, database, os, middleware and more. 一个拥有强大自定义监控能力,无需Agent的实时监控系统。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。
地址:https://github.com/dromara/hertzbeat

HertzBeat · An open source, real-time monitoring tool with custom-monitor and agentLess. | HertzBeat
地址:https://hertzbeat.com/

TANCLOUD探云 · 易用友好的高性能监控云 | TANCLOUD探云
地址:https://tancloud.cn/

通过 Docker 方式安装 HertzBeat | HertzBeat
地址:https://hertzbeat.com/zh-cn/docs/start/docker-deploy/