本文最后更新于 2024-06-28,文章内容可能已经过时。

前言

大家好,这里是可爱的Cherry。

我们在日常使用NAS中,往往希望有一套高性能、高颜值的仪表盘项目,可以将服务器性能、数据库、应用服务情况进行监控展示,

HertzBeat是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。
i.png
status.png

项目特征:

  • 集 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控阈值告警通知一步到位。
  • 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
  • 将 Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 K8s 或 Docker 等新的监控类型吗?
  • 兼容 Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。
  • 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
  • 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook Server酱 等方式消息及时送达。
  • 提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。
  • HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助用户快速搭建自有监控系统。

项目地址:Fetching Title#6z4x


系统部署

🟡开始前确保文件及已经新建,结构如下
image.png

一、docker run代码

🔻通过SSH工具访问NAS,输入以下指令

docker run -itd \
--name hertzbeat 
-p 56789:1157 \ #自定义webui端口
-p 56788:1158 \#自定义集群api端口
-e LANG=en_US.UTF-8 \
-e TZ=Asia/Shanghai \
-v /volume1/docker/hertzbeat/data:/opt/hertzbeat/data \
-v /volume1/docker/hertzbeat/logs:/opt/hertzbeat/logs \
tancloud/hertzbeat

二、使用群晖任务计划部署

🔻如果你不会使用SSH工具和docker cli,可以通过群晖的任务计划执行脚本。将上述docker run 代码复制到任务计划中单次执行即可。记住,每一行代码最后都要加上反斜杠“\”
任务计划.png


系统使用

一、系统初始化

🔻使用默认账号admin/hertzbeat登录。除了admin以外,还有另外2个默认账号,分别是tom/hertzbeat和`guest/hertzbeat“
image.png

二、配置监控

🔻监控仪表板首页
image.png
🔻设置监听,对于NAS来说,常用的主要是应用服务监控,hertzbeat中包含有:websocket、http api、nginx、DNS服务器、端口、pop3、SSL、ping、FTP、SMTP、NTP、UDP等等。其它监控的配置大同小异,因此就介绍一下应用服务监控。
image.png
🔻监控新增面板,包括目标host(域名或ip)、任务名称(唯一性)、端口、采集器(集群选择)、标签等。
image.png
🔻其它监控内容。大致分为应用程序(spring、JVM、dynamic),数据库(国内外常用的都有),缓存(redis、memcached),操作系统(暂时不包括国产,其它都有),中间件(zookeeper等都有),大数据,web服务(tomcat等),云原生(k8s、docker),网络设备(华三、思科、tp、华为等交换机),最重要的是有提供官方api,可以用于自定义监控。
image.png
🔻告警中心与消息通知,消息通知已经囊括所有主要通道。如短信、邮件、webhook、微信、钉钉等。
image.png
image.png

三、监控中心自定义配置

🔻hertzbeat提供了仪表盘的自定义编辑模块,允许将所有模块进行调整,方便二次开发或个性化调整。
image.png

四、采集器集群

🔻hertzbeat为解决采集器单节点故障问题,提供了多节点部署方案,用户可以自定义采集调度方案。
因此不论在哪个设备上,只要连接到主节点的服务,即可成为一个采集结点,对于不同网络环境下的服务采集,如内外网前置机区域,提供极大地帮助。
image.png
🔻采集服务的单独部署指令

docker run -dit \
-e IDENTITY=unraid \  #采集结点名称
-e MANAGER_HOST=cgakki.top \ #主采集点的ip或域名
-e MANAGER_PORT=56786 \  #主采集采集服务的端口
--name hertzbeat-collector \
tancloud/hertzbeat-collector