什么是 HertzBeat ?
HertzBeat
是一个拥有强大自定义监控能力,无需Agent
的开源实时监控告警系统。集 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。更自由化的阈值规则(计算表达式),邮件、Discord
、Slack
、Telegram
、钉钉、微信、飞书、短信、Webhook
等方式及时送达。
如果你不想自己搭建,可以去试试官方的云服务:https://tancloud.cn
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 hertzbeat
,选择第一个 tancloud/hertzbeat
,版本选择 latest
。
本文写作时,
latest
版本对应为v1.3.1
;
卷
在 docker
文件夹中,创建一个新文件夹 hertzbeat
,并在其中建两个子文件夹 data
和 logs
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/hertzbeat/data | /opt/hertzbeat/data | 存放 H2 数据库 |
docker/hertzbeat/logs | /opt/hertzbeat/logs | 日志目录 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
1157 | 1157 |
环境
可变 | 值 |
---|---|
LANG | 默认未 C.UTF-8 ,改设为 zh_CN.UTF-8 |
TZ | 设为 Asia/Shanghai |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 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
文件
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
然后执行下面的命令
# 新建文件夹 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
增加一行
"hosts" : [ "tcp://192.168.0.197:2375", "unix:///var/run/docker.sock" ],
其中:192.168.0.197
为群晖的主机 IP
保存后,执行一次,当然你也可以在 套件中心
重启 Docker
套件
# 重启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/