diff --git a/README.md b/README.md index 4d9eceacddb..8d826d83a0d 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## HertzBeat | [中文文档](README_CN.md) -An open-source, real-time monitoring system with custom monitoring and agentless capabilities. | 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力. +> An open-source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities. | 易用友好的开源实时监控告警系统,无需Agent,高性能集群,强大自定义监控能力. [![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) [![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) @@ -30,17 +30,19 @@ An open-source, real-time monitoring system with custom monitoring and agentless ## 🎡 Introduction -[HertzBeat](https://github.com/dromara/hertzbeat) is an open source, real-time monitoring system with custom monitoring and agentless capabilities. -It combines **monitoring, alarm, and notification** features into one platform, and supports monitoring for web service, database, os, middleware, cloud-native, network and more. +[HertzBeat](https://github.com/dromara/hertzbeat) is an open source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities. ### Features -* Easy to use, offering full web-based operations for monitoring and alerting with just a click of a mouse, all at zero learning cost. -* Provides a more flexible threshold rules and timely notifications delivered via `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. -* Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, allowing you to collect any desired metrics by simply configuring the `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat. -* Powerful customization, multi-type support, easy expansion, and low coupling. +* Combines **monitoring, alarm, and notification** features into one platform, and supports monitoring for web service, database, os, middleware, cloud-native, network and more. +* Easy to use and agentless, offering full web-based operations for monitoring and alerting with just a click of a mouse, all at zero learning cost. +* Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, allowing you to collect any metrics by simply configuring the template `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat. +* High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration. +* Provides flexible alarm threshold rules and timely notifications delivered via `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. -HertzBeat aims to help developers and teams quickly build their own monitoring system. We also provide **[Monitoring SaaS Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system to monitor their resources. **[Get started for free](https://console.tancloud.cn)**. + +> HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help developers and teams quickly build their own monitoring system. +> We also provide **[SaaS Monitoring Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system to monitor their resources. **[Get started online for free](https://console.tancloud.cn)**. ---- @@ -93,7 +95,7 @@ HertzBeat aims to help developers and teams quickly build their own monitoring s ## 🐕 Quick Start -- If you prefer to use HertzBeat directly without deploying it, we provide [SAAS Monitoring Cloud-TanCloud](https://console.tancloud.cn), **[Log In For Free](https://console.tancloud.cn)**. +- If you prefer to use HertzBeat directly without deploying it, we provide SAAS Monitoring Cloud-TanCloud, **[Log In For Free](https://console.tancloud.cn)**. - If you wish to deploy HertzBeat locally, please refer to the following Deployment Documentation for instructions. ### 🍞 Install HertzBeat @@ -110,17 +112,42 @@ HertzBeat aims to help developers and teams quickly build their own monitoring s ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` -2. Access `localhost:1157` to start, default account: `admin/hertzbeat` +2. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` + +3. Deploy collector clusters + +``` +docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector +``` +- `-e IDENTITY=custom-collector-name` : set the collector unique identity name. +- `-e MANAGER_IP=127.0.0.1` : set the main hertzbeat server ip. +- `-e MANAGER_PORT=1158` : set the main hertzbeat server port, default 1158. Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.com/docs/start/docker-deploy) ##### 2:Install via package -1. Download the installation package [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) -2. Need `Java11` Environment +1. Download the release package `hertzbeat-xx.zip` [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. Need `java jdk11` Environment 3. Configure the HertzBeat configuration yml file `hertzbeat/config/application.yml` (optional) -4. Run shell `$ ./startup.sh ` or `startup.bat` -5. Access `localhost:1157` to start, default account: `admin/hertzbeat` +4. Run command `$ ./bin/startup.sh ` or `bin/startup.bat` +5. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` +6. Deploy collector clusters + - Download the release package `hertzbeat-collector-xx.zip` to new machine [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - Need `java jdk11` Environment + - Configure the collector configuration yml file `hertzbeat-collector/config/application.yml`: unique `identity` name, hertzbeat `manager-ip`, hertzbeat `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - Run command `$ ./bin/startup.sh ` or `bin/startup.bat` + - Access `http://localhost:1157` and you will see the registered new collector in dashboard Detailed config refer to [Install HertzBeat via Package](https://hertzbeat.com/docs/start/package-deploy) @@ -129,7 +156,7 @@ Detailed config refer to [Install HertzBeat via Package](https://hertzbeat.com/d 1. Local source code debugging needs to start the back-end project `manager` and the front-end project `web-app`. 2. Backend:need `maven3+`, `java11`, `lombok`, start the `manager` service. 3. Web:need `nodejs npm angular-cli` environment, Run `ng serve --open` in `web-app` directory after backend startup. -4. Access `localhost:4200` to start, default account: `admin/hertzbeat` +4. Access `http://localhost:4200` to start, default account: `admin/hertzbeat` Detailed steps refer to [CONTRIBUTING](CONTRIBUTING.md) diff --git a/README_CN.md b/README_CN.md index 936302f8f3c..41cdf8654cf 100644 --- a/README_CN.md +++ b/README_CN.md @@ -8,7 +8,7 @@ ## HertzBeat 赫兹跳动 | [English Documentation](README.md) -> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 +> 易用友好的开源实时监控告警系统,无需Agent,高性能集群,强大自定义监控能力。 [![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) [![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) @@ -30,16 +30,19 @@ ## 🎡 介绍 -> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 -> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 -> 易用友好,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。 -> 更自由化的阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 +[HertzBeat 赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。 -> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 -> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? +### 特点 -> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 +- 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。 +- 易用友好,无需 `Agent`,全 `WEB` 页面操作,鼠标点一点就能监控告警,零上手学习成本。 +- 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 +- 自由的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式消息及时送达。 + + +> `HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云服务](https://console.tancloud.cn)**,中小团队和个人无需再为监控自有资源而去部署一套监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 ---- @@ -90,7 +93,7 @@ ## 🐕 快速开始 -- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻 **[登录注册](https://console.tancloud.cn)** 免费使用。 +- 如果您不想部署而是直接使用,我们提供SAAS监控云服务-TanCloud探云,**[即刻登录注册免费使用](https://console.tancloud.cn)**。 - 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 ### 🍞 HertzBeat安装 @@ -106,24 +109,51 @@ ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` -2. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +2. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +3. 部署采集器集群 + +``` +docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector +``` + - `-e IDENTITY=custom-collector-name` : 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。 + - `-e MANAGER_IP=127.0.0.1` : 配置连接主HertaBeat服务的对外IP。 + - `-e MANAGER_PORT=1158` : 配置连接主HertzBeat服务的对外端口,默认1158。 更多配置详细步骤参考 [通过Docker方式安装HertzBeat](https://hertzbeat.com/docs/start/docker-deploy) ##### 方式二:通过安装包安装 -1. 下载您系统环境对应的安装包 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) -2. 需要已安装`java11`环境 + +1. 下载您系统环境对应的安装包`hertzbeat-xx.zip` [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. 需要提前已安装`java jdk11`环境 3. 配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml`(可选) -4. 部署启动 `$ ./startup.sh ` 或 `startup.bat` -5. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +4. 部署启动 `$ ./bin/startup.sh ` 或 `bin/startup.bat` +5. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +6. 部署采集器集群 + - 下载采集器安装包`hertzbeat-collector-xx.zip`到规划的另一台部署主机上 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - 需要提前已安装`java jdk11`环境 + - 配置采集器的配置文件 `hertzbeat-collector/config/application.yml` 里面的连接主HertzBeat服务的对外IP,端口,当前采集器名称(需保证唯一性)等参数 `identity` `manager-ip` `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - 启动 `$ ./bin/startup.sh ` 或 `bin/startup.bat` + - 浏览器访问主HertzBeat服务 `http://localhost:1157` 查看概览页面即可看到注册上来的新采集器 更多配置详细步骤参考 [通过安装包安装HertzBeat](https://hertzbeat.com/docs/start/package-deploy) ##### 方式三:本地代码启动 + 1. 此为前后端分离项目,本地代码调试需要分别启动后端工程`manager`和前端工程`web-app` 2. 后端:需要`maven3+`, `java11`和`lombok`环境,修改`YML`配置信息并启动`manager`服务 3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在`web-app`目录下启动 `ng serve --open` -4. 浏览器访问 `localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` +4. 浏览器访问 `http://localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` 详细步骤参考 [参与贡献之本地代码启动](CONTRIBUTING.md) diff --git a/collector/src/main/resources/application.yml b/collector/src/main/resources/application.yml index 4ea398ffb7b..3d73b1c0c01 100644 --- a/collector/src/main/resources/application.yml +++ b/collector/src/main/resources/application.yml @@ -36,6 +36,7 @@ collector: entrance: netty: enabled: true + identity: ${IDENTITY} manager-ip: ${MANAGER_IP:127.0.0.1} manager-port: ${MANAGER_PORT:1158} diff --git a/home/docs/introduce.md b/home/docs/introduce.md index a534f92648c..cf280c266d0 100644 --- a/home/docs/introduce.md +++ b/home/docs/introduce.md @@ -5,7 +5,7 @@ sidebar_label: Introduce slug: / --- -> An open source, real-time monitoring system with custom-monitoring and agentLess. +> An open-source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities. | 易用友好的开源实时监控告警系统,无需Agent,高性能集群,强大自定义监控能力. [![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) [![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) @@ -25,16 +25,20 @@ slug: / ## 🎡 Introduction -> [HertzBeat](https://github.com/dromara/hertzbeat) is an open source, real-time monitoring system with custom-monitor and agentLess. -> **Monitoring+Alarm+Notify** all in one. Support monitoring web service, database, os, middleware, cloud-native, network and more. -> Easy to use, full web-based operation, monitoring and alerting at the click of a mouse, zero learning cost. -> More flexible threshold rule(calculation expression), timely notification delivery by `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. +[HertzBeat](https://github.com/dromara/hertzbeat) is an open source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities. -> We make protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, and you only need to configure `YML` online to collect any metrics you want. -> Do you believe that you can immediately adapt a new monitoring type such as K8s or Docker just by configuring online? +### Features + +* Combines **monitoring, alarm, and notification** features into one platform, and supports monitoring for web service, database, os, middleware, cloud-native, network and more. +* Easy to use and agentless, offering full web-based operations for monitoring and alerting with just a click of a mouse, all at zero learning cost. +* Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, allowing you to collect any metrics by simply configuring the template `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat. +* High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration. +* Provides flexible alarm threshold rules and timely notifications delivered via `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. + + +> HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help developers and teams quickly build their own monitoring system. +> We also provide **[SaaS Monitoring Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system to monitor their resources. **[Get started online for free](https://console.tancloud.cn)**. -> `HertzBeat`'s powerful custom-define, multi-type support, easy expansion, low coupling, hope to help developers and micro teams to quickly build their own monitoring system. -> We also provide **[Monitoring SaaS Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system in order to monitor resources. **[Get started for free](https://console.tancloud.cn)**. ---- @@ -60,9 +64,10 @@ slug: / - **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** Provide web ui. > Angular Web UI. +![hertzBeat](/img/docs/hertzbeat-arch.png) + ![hertzBeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat/home/static/img/docs/hertzbeat-stru-en.svg) -![hertzBeat](/img/docs/hertzbeat-arch.png) ## ⛄ Supported diff --git a/home/docs/others/hertzbeat.md b/home/docs/others/hertzbeat.md index 17f377842b3..49c45e595b8 100644 --- a/home/docs/others/hertzbeat.md +++ b/home/docs/others/hertzbeat.md @@ -1,15 +1,12 @@ --- id: hertzbeat -title: HertzBeat 开源监控 -sidebar_label: HertzBeat 开源监控 +title: HertzBeat 开源实时监控系统 +sidebar_label: HertzBeat 实时监控 --- -> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 +> 易用友好的开源实时监控告警系统,无需Agent,高性能集群,强大自定义监控能力。 -[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) -[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) ![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) ![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) ![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) @@ -18,35 +15,40 @@ sidebar_label: HertzBeat 开源监控 ![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) ![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) ![hertzbeat](https://img.shields.io/badge/monitor-network-red) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) ![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) ## 🎡 介绍 -> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 -> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 -> 更自由化的阈值规则(计算表达式),`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 +[HertzBeat 赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。 -> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 -> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? +### 特点 -> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 +- 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。 +- 易用友好,无需 `Agent`,全 `WEB` 页面操作,鼠标点一点就能监控告警,零上手学习成本。 +- 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 +- 自由的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式消息及时送达。 + + +> `HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云服务](https://console.tancloud.cn)**,中小团队和个人无需再为监控自有资源而去部署一套监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 ---- -## 完全开源 +### 完全开源 - 使用`Apache2`协议,由自由开放的开源社区主导维护的开源协作产品。 -- 无监控数量`License`,监控类型等人为限制。 +- 无监控数量`License`,监控类型等伪开源限制。 - 基于`Java+SpringBoot+TypeScript+Angular`主流技术栈构建,方便的二次开发。 +- 但开源不等同于免费,如果基于HertzBeat二次开发修改了logo,名称,版权等,[请找我们授权,否则会有法律风险](https://hertzbeat.com/docs/others/private)。 -## 强大的监控模版 +### 强大的监控模版 -> 开始我们就说 hertzbeat 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 hertzbeat 的不一样的监控模版。而正是因为这样的监控模版设计,才会有了后面的高级特性。 +> 开始我们就说 HertzBeat 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 HertzBeat 的不一样的监控模版。而正是因为这样的监控模版设计,才会有了后面的高级特性。 -hertzbeat 自身并没有去创造一种采集数据协议,让对端来适配它。而是充分使用了现有的生态,SNMP采集网络交换机路由器信息,JMX采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析接口信息,IPMI采集服务器信息等等。 -hertzbeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标信息。 +HertzBeat 自身并没有去创造一种采集数据协议,让对端来适配它。而是充分使用了现有的生态,SNMP采集网络交换机路由器信息,JMX采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析接口信息,IPMI采集服务器信息等等。 +HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标信息。 ![hertzbeat](/img/blog/multi-protocol.png) @@ -55,7 +57,7 @@ hertzbeat 使用这些已有的标准协议或规范,将他们抽象规范可 ![hertzbeat](/img/home/9.png) -## 已支持 +### 内置监控类型 **一款监控类型对应一个YML监控模版** @@ -86,52 +88,199 @@ hertzbeat 使用这些已有的标准协议或规范,将他们抽象规范可 - 和更多自定义监控模版。 - 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 -## 强大自定义功能 +### 强大自定义功能 -> 由前面的**监控模版**介绍,大概清楚了 hertzbeat 拥有的强大自定义功能。 +> 由前面的**监控模版**介绍,大概清楚了 HertzBeat 拥有的强大自定义功能。 > 我们将每个监控类型都视为一个监控模版,不管是官方内置的还是后期用户自定义新增的。用户都可以方便的通过修改监控模版来新增修改删除监控指标。 > 模版里面包含各个协议的使用,指标别名转换,指标计算,单位转换等一系列功能,帮助用户能采集到自己想要的监控指标。 -![hertzbeat](/img/docs/hertzbeat-arch.png) +![hertzbeat](/img/docs/custom-arch.png) -## 无需 Agent +### 无需 Agent > 对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试了。 > 每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。 > agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。 -hertzbeat 的原理就是使用不同的协议去直连对端系统,采集 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter等。 -比如监控 linux, 在 hertzbeat 端输入IP端口账户密码或密钥即可。 -比如监控 mysql, 在 hertzbeat 端输入IP端口账户密码即可。 +HertzBeat 的原理就是使用不同的协议去直连对端系统,采集 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter等。 +比如监控 linux, 在 HertzBeat 端输入IP端口账户密码或密钥即可。 +比如监控 mysql, 在 HertzBeat 端输入IP端口账户密码即可。 **密码等敏感信息全链路加密** -## 易用友好 +### 高性能集群 + +> 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。 +> 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。 +> 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 云边协同 + +> 支持部署边缘采集器集群,与主 HertzBeat 服务云边协同提升采集能力。 + +在多个网络不相通的隔离网络中,在以往的方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 +HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主 HertzBeat 服务统一调度管理展示。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 易用友好 > 集 **监控+告警+通知** All in one, 无需单独部署多个组件服务。 > 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。 > 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。 > 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。 -> 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 +> 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 + ----- -**`HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** +**`HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** + +----- + +## 即刻体验一波 + +Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat` +浏览器访问 `http://localhost:1157` 默认账户密码 `admin/hertzbeat` + +### 登陆页面 + +- HertzBeat 的用户管理统一由配置文件 `sureness.yml` 维护,用户可以通过修改此文件来新增删除修改用户信息,用户角色权限等。默认账户密码 admin/hertzbeat ![hertzbeat](/img/home/0.png) +### 概览页面 + +- 全局概览页面,分类展示了当前监控大类别数量分布,用户可直观查看当前的监控类型与数量并点击跳转至对应监控类型进行维护管理。 +- 展示当前注册的采集器集群状态,包括采集器的上线状态,监控任务,启动时间,IP地址,名称等。 +- 下发展示了最近告警信息列表,告警级别分布情况,告警处理率情况。 + ![hertzbeat](/img/home/1.png) +### 监控中心 + +- 监控入口,支持对应用服务,数据库,操作系统,中间件,网络,自定义等监控的管理。 +- 以列表的形式展示当前已添加的监控,支持对监控的新增,修改,删除,取消监控,导入导出,批量管理等。 +- 支持标签分组,查询过滤,查看监控详情入口等。 + +内置支持的监控类型包括: + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) + ![hertzbeat](/img/home/2.png) +### 新增修改监控 + +- 新增或修改指定监控类型的监控实例,配置对端监控的IP,端口等参数,设置采集周期,采集任务调度方式,支持提前探测可用性等。 +- 页面上配置的监控参数由对应监控类型的监控模版所定义,用户可以通过修改监控模版来修改页面配置参数。 +- 支持关联标签,用标签来管理监控分组,告警匹配等。 + +![hertzbeat](/img/home/10.png) + +### 监控详情 + +- 监控的数据详情页面,展示了当前监控的基本参数信息,监控指标数据信息。 +- 监控实时数据报告,以小卡片列表的形式展示了当前监控的所有指标实时值,用户可根据实时值参考配置告警阈值规则。 +- 监控历史数据报告,以趋势图表的形式展示了当前监控数值类型的指标的历史值,支持查询小时,天,月的历史数据,支持配置页面刷新时间。 +- ⚠️注意监控历史图表需配置外置时序数据库才能获取完整功能,时序数据库支持: IOTDB, TDengine, InfluxDB, GreptimeDB + ![hertzbeat](/img/home/3.png) ![hertzbeat](/img/home/4.png) +### 告警中心 + +- 已触发告警消息的管理展示页面,使用户有直观的展示当前告警情况。 +- 支持告警处理,告警标记未处理,告警删除清空等批量操作。 + +![hertzbeat](/img/home/7.png) + +### 阈值规则 + +- 对于监控的可用性状态设置阈值规则,特定指标的值超过我们预期范围时发出告警,这些都可以在阈值规则这里配置。 +- 告警级别分为三级:通知告警,严重告警,紧急告警。 +- 阈值规则支持可视化页面配置或表达式规则配置,灵活性更高。 +- 支持配置触发次数,告警级别,通知模版,关联指定监控等。 + ![hertzbeat](/img/home/6.png) -![hertzbeat](/img/home/7.png) +![hertzbeat](/img/home/11.png) + +### 告警收敛 + +- 当通过阈值规则判断触发告警后,会进入到告警收敛,告警收敛会根据规则对特定时间段的重复告警消息去重收敛,已避免大量重复性告警导致接收人告警麻木。 +- 告警收敛规则支持重复告警生效时间段,标签匹配和告警级别匹配过滤。 + +![hertzbeat](/img/home/12.png) + +![hertzbeat](/img/home/13.png) + + +### 告警静默 + +- 当通过阈值规则判断触发告警后,会进入到告警静默,告警静默会根据规则对特定一次性时间段或周期性时候段的告警消息屏蔽静默,此时间段不发送告警消息。 +- 此应用场景如用户在系统维护中,无需发已知告警。用户在工作日时间才会接收告警消息,用户在晚上需避免打扰等。 +- 告警静默规则支持一次性时间段或周期性时间段,支持标签匹配和告警级别匹配。 + +![hertzbeat](/img/home/14.png) + +![hertzbeat](/img/home/15.png) + +### 消息通知 + +- 消息通知功能是把告警消息通过不同媒体渠道通知给指定的接收人,告警消息及时触达。 +- 功能包含接收人信息管理和通知策略管理,接收人管理维护接收人信息以其通知方式信息,通知策略管理维护把哪些告警信息通知给哪些接收人的策略规则。 +- 通知方式支持 `邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式。 +- 通知策略支持标签匹配和告警级别匹配,方便的使不同标签的告警和告警级别分派给不同的接收处理人。 + +![hertzbeat](/img/home/16.png) + +![hertzbeat](/img/home/17.png) ![hertzbeat](/img/home/8.png) +### 监控模版 + +- HertzBeat 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 同理我们内置的所有监控类型(mysql,website,jvm,k8s)也一一映射为对应的监控模版,用户可以新增修改监控模版来自定义监控功能。 + ![hertzbeat](/img/home/9.png) + + +----- + +**`HertzBeat`更多强大的功能欢迎使用探索。Have Fun!** + +----- + +**官网: https://hertzbeat.com/** +**Github: https://github.com/dromara/hertzbeat** +**Gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/docs/others/legal.md b/home/docs/others/legal.md new file mode 100644 index 00000000000..f4cdc962a51 --- /dev/null +++ b/home/docs/others/legal.md @@ -0,0 +1,54 @@ +--- +id: legal +title: Legal Risks of Hertzbeat Infringement +sidebar_label: Legal Risks +--- + +:::tip +**Open source does not mean completely free. If you [modify HertzBeat's logo, name, copyright](https://github.com/dromara/hertzbeat/blob/master/NOTICE), etc., please ask us for authorization, otherwise there will be legal risks.** +**We have the right to pursue all illegal gains of individuals who destroy open source and profit from it.** +::: + +### HertzBeat Open Source License + +[Apache-2.0 license](https://github.com/dromara/hertzbeat/blob/master/LICENSE) + +### HertzBeat Open Source Notice + +[Notice](https://github.com/dromara/hertzbeat/blob/master/NOTICE) + +```text +HertzBeat-An open-source, real-time monitoring system. +HertzBeat-易用友好的实时监控系统。 + +HertzBeat Declaration / HertzBeat声明 + +It can be used directly without authorization. All copyrights, patents, trademarks and ownership statements in the product and source code must be retained. +可直接免费商用,但必须保留本作品及源码中的所有版权、专利、商标和归属声明。 + +The attribution statement and copyright notice in the footer cannot be ignored, otherwise it will be deemed as infringement. +页面等页脚中归属声明及版权声明不可忽略,否则视为侵权。 + +Copyright https://www.hertzbeat.com https://www.tancloud.cn All Rights Reserved. +``` + +### Contact Us for Authorization + +Please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name. + +### Welcome to Provide Infringement Clue Information + +We are committed to open source and trust each other, but someone will use our trust to use this product illegally and profit from it. +If you find such a situation, please contact us to provide us with their infringement and illegal clues, and we will give you 25% of the other party's illegal income as determined by the court as thanks. We will remain anonymous at your request, and you are welcome to support open source causes. + + +### HertzBeat Licensed Version (paid) + +We provide the community open source version of the monitoring product HertzBeat, which can be used by individuals and businesses for free, **Requires complete reservation of copyright, Logo, trademark, footer copyright statement, and attribution statement**. +In some cases, enterprises need to modify the copyright LOGO and attribution statement based on the open source version for secondary development. We have launched **HertzBeat Authorized Version** for such needs. +This authorization needs to be paid. We implement enterprise-scale tiered pricing, and will give away technical support, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name + +### Enterprise Edition TanCloud (Paid) + +The enterprise version of the monitoring system is a version specially launched by the TanCloud team for enterprise-level needs. It provides **user management, permissions, logs and other enterprise-level features**, and has received quick response and technical support from our maintenance team. +The enterprise version is a paid version. We implement enterprise-scale tiered pricing, and will give away technical support, free maintenance period, technical explanation, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: Enterprise Edition + team name diff --git a/home/docs/others/private.md b/home/docs/others/private.md index 3efcdf4a038..3c773ef4b7f 100644 --- a/home/docs/others/private.md +++ b/home/docs/others/private.md @@ -1,24 +1,25 @@ --- id: private -title: Privatization deployment -sidebar_label: Privatization deployment +title: Enterprise +sidebar_label: Enterprise --- -If your team wants to privatize and deploy this monitoring tool, we currently provide two solutions. -#### Community monitoring product HertzBeat (Free, copyright reserved) +:::tip +**Open source does not mean completely free. If you [modify HertzBeat's logo, name, copyright](https://github.com/dromara/hertzbeat/blob/master/NOTICE), etc., please ask us for authorization, otherwise there will be [legal risks](legal).** +**Open source is based on mutual trust, please don't let developers chill.** +::: -We provide community version monitoring product hertzbeat, which can be downloaded and deployed directly by referring to [HertzBeat deployment document](/docs). It is free for individuals or enterprises. -All copyrights, patents, trademarks and ownership statements in this work and the source code must be retained. -You can feed back or learn problems encountered during installation and deployment through [communities, wechat groups, QQ groups, etc.](/docs/others/contact). -We also provide paid remote installation and deployment services. +HertzBeat monitoring products are divided into open source community version and enterprise version. The enterprise version **provides more enterprise-level features such as user management and log auditing**. The maintenance team quickly responds to enterprise needs. -#### Cluster SAAS version of HertzBeat-TanCloud (paid) +## HertzBeat Licensed Version (paid) -This version is the corresponding version of [TanCloud Official website](https://console.tancloud.cn) environment. Compared with hertzbeat, it has functions of clustering, users, tenants and so on, which is suitable for medium and large-scale team enterprises. -This version is a paid version. For tancloud privatization deployment plan and price, please consult us on WeChat tan-cloud, and add WeChat please note: privatization + team name. +We provide the community open source version of the monitoring product HertzBeat, which can be used by individuals and businesses for free, **Requires complete reservation of copyright, Logo, trademark, footer copyright statement, and attribution statement**. +In some cases, enterprises need to modify the copyright LOGO and attribution statement based on the open source version for secondary development. We have launched **HertzBeat Authorized Version** for such needs. +This authorization needs to be paid. We implement enterprise-scale tiered pricing, and will give away technical support, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name -#### Privatized custom function development (paid) +## Enterprise Edition TanCloud (Paid) -Support the development of custom functions and features. Please contact us on WeChat tan-cloud, and please note: privatization + team name. +The enterprise version of the monitoring system is a version specially launched by the TanCloud team for enterprise-level needs. It provides **user management, permissions, logs and other enterprise-level features**, and has received quick response and technical support from our maintenance team. +The enterprise version is a paid version. We implement enterprise-scale tiered pricing, and will give away technical support, free maintenance period, technical explanation, etc. For specific plans and prices, please add us WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: Enterprise Edition + team name -**Welcome to introduce business and become a recommender. We will give the recommender 20% - 30% commission reward for orders** +Welcome to introduce business to become a recommendation officer, there will be rewards for successful transactions diff --git a/home/docs/others/resource.md b/home/docs/others/resource.md index 725d946e053..30700c4f098 100644 --- a/home/docs/others/resource.md +++ b/home/docs/others/resource.md @@ -4,15 +4,19 @@ title: Related resources sidebar_label: Related resources --- -## Icon resources +## HertzBeat Introduce PDF -### TANCLOUD-HertzBeat LOGO +Download: [PDF](http://cdn.hertzbeat.com/hertzbeat.pdf) + +## Icon Resources + +### TanCloud-HertzBeat Logo ![logo](/img/tancloud-logo.svg) Download: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.svg) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.jpg) -### TANCLOUD BRAND LOGO +### TanCloud Brand Logo ![logo](/img/tancloud-brand.svg) diff --git a/home/docs/others/tancloud.md b/home/docs/others/tancloud.md new file mode 100644 index 00000000000..4dc13634e8b --- /dev/null +++ b/home/docs/others/tancloud.md @@ -0,0 +1,272 @@ +--- +id: tancloud +title: TanCloud 高性能实时监控系统 +sidebar_label: TanCloud 实时监控 +--- + + +> 易用友好的高性能实时云监控服务,无需Agent,高性能集群,强大自定义监控能力。 + +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + +## 🎡 介绍 + +[TanCloud 探云](https://tancloud.cn) 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的高性能实时云监控服务。 + +### 特点 + +- 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。 +- 易用友好,无需 `Agent`,全 `WEB` 页面操作,鼠标点一点就能监控告警,零上手学习成本。 +- 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 +- 自由的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式消息及时送达。 + + +> `TanCloud`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云服务](https://console.tancloud.cn)**,中小团队和个人无需再为监控自有资源而去部署一套监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 + +---- + +### 强大的监控模版 + +> 开始我们就说 TanCloud 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 TanCloud 的不一样的监控模版。而正是因为这样的监控模版设计,才会有了后面的高级特性。 + +TanCloud 自身并没有去创造一种采集数据协议,让对端来适配它。而是充分使用了现有的生态,SNMP采集网络交换机路由器信息,JMX采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析接口信息,IPMI采集服务器信息等等。 +TanCloud 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标信息。 + +![hertzbeat](/img/blog/multi-protocol.png) + +你相信用户只需在UI页面编写一个监控模版,点击保存后,就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +![hertzbeat](/img/home/9.png) + + +### 内置监控类型 + +**一款监控类型对应一个YML监控模版** + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) +- 和更多自定义监控模版。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +### 强大自定义功能 + +> 由前面的**监控模版**介绍,大概清楚了 TanCloud 拥有的强大自定义功能。 +> 我们将每个监控类型都视为一个监控模版,不管是官方内置的还是后期用户自定义新增的。用户都可以方便的通过修改监控模版来新增修改删除监控指标。 +> 模版里面包含各个协议的使用,指标别名转换,指标计算,单位转换等一系列功能,帮助用户能采集到自己想要的监控指标。 + +![TanCloud](/img/docs/custom-arch.png) + +### 无需 Agent + +> 对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试了。 +> 每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。 +> agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。 + +TanCloud 的原理就是使用不同的协议去直连对端系统,采集 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter等。 +比如监控 linux, 在 TanCloud 端输入IP端口账户密码或密钥即可。 +比如监控 mysql, 在 TanCloud 端输入IP端口账户密码即可。 +**密码等敏感信息全链路加密** + +### 高性能集群 + +> 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。 +> 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。 +> 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 云边协同 + +> 支持部署边缘采集器集群,与主 TanCloud 服务云边协同提升采集能力。 + +在多个网络不相通的隔离网络中,在以往的方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 +TanCloud 提供云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主 TanCloud 服务统一调度管理展示。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 易用友好 + +> 集 **监控+告警+通知** All in one, 无需单独部署多个组件服务。 +> 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。 +> 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。 +> 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。 +> 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 + + + +----- + +**`TanCloud`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** + +----- + +## 功能描述 + +### 登陆页面 + +- TanCloud 的用户管理统一由配置文件 `sureness.yml` 维护,用户可以通过修改此文件来新增删除修改用户信息,用户角色权限等。默认账户密码 admin/tancloud + +![hertzbeat](/img/home/0.png) + +### 概览页面 + +- 全局概览页面,分类展示了当前监控大类别数量分布,用户可直观查看当前的监控类型与数量并点击跳转至对应监控类型进行维护管理。 +- 展示当前注册的采集器集群状态,包括采集器的上线状态,监控任务,启动时间,IP地址,名称等。 +- 下发展示了最近告警信息列表,告警级别分布情况,告警处理率情况。 + +![hertzbeat](/img/home/1.png) + +### 监控中心 + +- 监控入口,支持对应用服务,数据库,操作系统,中间件,网络,自定义等监控的管理。 +- 以列表的形式展示当前已添加的监控,支持对监控的新增,修改,删除,取消监控,导入导出,批量管理等。 +- 支持标签分组,查询过滤,查看监控详情入口等。 + +内置支持的监控类型包括: + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) + +![hertzbeat](/img/home/2.png) + +### 新增修改监控 + +- 新增或修改指定监控类型的监控实例,配置对端监控的IP,端口等参数,设置采集周期,采集任务调度方式,支持提前探测可用性等。 +- 页面上配置的监控参数由对应监控类型的监控模版所定义,用户可以通过修改监控模版来修改页面配置参数。 +- 支持关联标签,用标签来管理监控分组,告警匹配等。 + +![hertzbeat](/img/home/10.png) + +### 监控详情 + +- 监控的数据详情页面,展示了当前监控的基本参数信息,监控指标数据信息。 +- 监控实时数据报告,以小卡片列表的形式展示了当前监控的所有指标实时值,用户可根据实时值参考配置告警阈值规则。 +- 监控历史数据报告,以趋势图表的形式展示了当前监控数值类型的指标的历史值,支持查询小时,天,月的历史数据,支持配置页面刷新时间。 +- ⚠️注意监控历史图表需配置外置时序数据库才能获取完整功能,时序数据库支持: IOTDB, TDengine, InfluxDB, GreptimeDB + +![hertzbeat](/img/home/3.png) + +![hertzbeat](/img/home/4.png) + +### 告警中心 + +- 已触发告警消息的管理展示页面,使用户有直观的展示当前告警情况。 +- 支持告警处理,告警标记未处理,告警删除清空等批量操作。 + +![hertzbeat](/img/home/7.png) + +### 阈值规则 + +- 对于监控的可用性状态设置阈值规则,特定指标的值超过我们预期范围时发出告警,这些都可以在阈值规则这里配置。 +- 告警级别分为三级:通知告警,严重告警,紧急告警。 +- 阈值规则支持可视化页面配置或表达式规则配置,灵活性更高。 +- 支持配置触发次数,告警级别,通知模版,关联指定监控等。 + +![hertzbeat](/img/home/6.png) + +![hertzbeat](/img/home/11.png) + +### 告警收敛 + +- 当通过阈值规则判断触发告警后,会进入到告警收敛,告警收敛会根据规则对特定时间段的重复告警消息去重收敛,已避免大量重复性告警导致接收人告警麻木。 +- 告警收敛规则支持重复告警生效时间段,标签匹配和告警级别匹配过滤。 + +![hertzbeat](/img/home/12.png) + +![hertzbeat](/img/home/13.png) + + +### 告警静默 + +- 当通过阈值规则判断触发告警后,会进入到告警静默,告警静默会根据规则对特定一次性时间段或周期性时候段的告警消息屏蔽静默,此时间段不发送告警消息。 +- 此应用场景如用户在系统维护中,无需发已知告警。用户在工作日时间才会接收告警消息,用户在晚上需避免打扰等。 +- 告警静默规则支持一次性时间段或周期性时间段,支持标签匹配和告警级别匹配。 + +![hertzbeat](/img/home/14.png) + +![hertzbeat](/img/home/15.png) + +### 消息通知 + +- 消息通知功能是把告警消息通过不同媒体渠道通知给指定的接收人,告警消息及时触达。 +- 功能包含接收人信息管理和通知策略管理,接收人管理维护接收人信息以其通知方式信息,通知策略管理维护把哪些告警信息通知给哪些接收人的策略规则。 +- 通知方式支持 `邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式。 +- 通知策略支持标签匹配和告警级别匹配,方便的使不同标签的告警和告警级别分派给不同的接收处理人。 + +![hertzbeat](/img/home/16.png) + +![hertzbeat](/img/home/17.png) + +![hertzbeat](/img/home/8.png) + +### 监控模版 + +- TanCloud 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 同理我们内置的所有监控类型(mysql,website,jvm,k8s)也一一映射为对应的监控模版,用户可以新增修改监控模版来自定义监控功能。 + +![hertzbeat](/img/home/9.png) + + +----- + +**`TanCloud`更多强大的功能欢迎使用探索。Have Fun!** + +----- diff --git a/home/docs/start/docker-deploy.md b/home/docs/start/docker-deploy.md index 3e2fcf42e6f..2f28446ed5c 100644 --- a/home/docs/start/docker-deploy.md +++ b/home/docs/start/docker-deploy.md @@ -20,16 +20,18 @@ sidebar_label: Install via Docker or in [quay.io mirror repository](https://quay.io/repository/tancloud/hertzbeat) ```shell $ docker pull tancloud/hertzbeat + $ docker pull tancloud/hertzbeat-collector ``` or ```shell $ docker pull quay.io/tancloud/hertzbeat + $ docker pull quay.io/tancloud/hertzbeat-collector ``` 3. Mounted HertzBeat configuration file (optional) - Create `application.yml` in the host directory, eg:`/opt/application.yml` - For the complete content of the configuration file, see the project repository [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml). - You can modify the configuration file according to your needs. + Download and config `application.yml` in the host directory, eg:`$(pwd)/application.yml` + Download from [github/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) or [gitee/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml). + You can modify the configuration yml file according to your needs. - If you need to use email to send alarms, you need to replace the email server parameters `spring.mail` in `application.yml` - **Recommended** If you need to use an external Mysql database to replace the built-in H2 database, you need to replace the `spring.datasource` parameter in `application.yml` For specific steps, see [Using Mysql to replace H2 database](mysql-change) - **Recommended** If you need to use the time series database TDengine to store indicator data, you need to replace the `warehouse.store.td-engine` parameter in `application.yml` for specific steps, see [Using TDengine to store metrics data](tdengine-init) @@ -37,39 +39,56 @@ sidebar_label: Install via Docker 4. Mounted the account file(optional) HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` - If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. - Create `sureness.yml` in the host directory,eg:`/opt/sureness.yml` - The configuration file content refer to project repository [/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) + If you need update account or password, configure `sureness.yml`. Ignore this step without this demand. + Download and config `sureness.yml` in the host directory,eg:`$(pwd)/sureness.yml` + Download from [github/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) or [gitee/script/sureness.yml](https://gitee.com/dromara/hertzbeat/blob/master/script/sureness.yml) For detail steps, please refer to [Configure Account Password](account-modify) 5. Start the HertzBeat Docker container ```shell -$ docker run -d -p 1157:1157 \ - -e LANG=zh_CN.UTF-8 \ - -e TZ=Asia/Shanghai \ - -v /opt/data:/opt/hertzbeat/data \ - -v /opt/logs:/opt/hertzbeat/logs \ - -v /opt/application.yml:/opt/hertzbeat/config/application.yml \ - -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml \ +$ docker run -d -p 1157:1157 -p 1158:1158 \ + -v $(pwd)/data:/opt/hertzbeat/data \ + -v $(pwd)/logs:/opt/hertzbeat/logs \ + -v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml \ + -v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml \ --name hertzbeat tancloud/hertzbeat ``` This command starts a running HertzBeat Docker container with mapping port 1157. If existing processes on the host use the port, please modify host mapped port. - `docker run -d` : Run a container in the background via Docker - - `-p 1157:1157` : Mapping container ports to the host - - `-e LANG=zh_CN.UTF-8` : (optional) set the LANG - - `-e TZ=Asia/Shanghai` : (optional) set the TimeZone - - `-v /opt/data:/opt/hertzbeat/data` : (optional, data persistence) Important⚠️ Mount the H2 database file to the local host, to ensure that the data is not lost due creating or deleting container. - - `-v /opt/logs:/opt/hertzbeat/logs` : (optional, if you don't have a need, just delete it) Mount the log file to the local host, to ensure the log will not be lost due creating or deleting container. - - `-v /opt/application.yml:/opt/hertzbeat/config/application.yml` : (optional, if you don't have a need, just delete it) Mount the local configuration file into the container which has been modified in the previous step, namely using the local configuration file to cover container configuration file. - - `-v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (optional, if you don't have a need, just delete it) Mount account configuration file modified in the previous step into the container. Delete this command parameters if no needs. + - `-p 1157:1157 -p 1158:1158` : Mapping container ports to the host, 1157 is web-ui port, 1158 is cluster port. + - `-v $(pwd)/data:/opt/hertzbeat/data` : (optional, data persistence) Important⚠️ Mount the H2 database file to the local host, to ensure that the data is not lost due creating or deleting container. + - `-v $(pwd)/logs:/opt/hertzbeat/logs` : (optional, if you don't have a need, just delete it) Mount the log file to the local host, to ensure the log will not be lost due creating or deleting container. + - `-v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml` : (optional, if you don't have a need, just delete it) Mount the local configuration file into the container which has been modified in the previous step, namely using the local configuration file to cover container configuration file. + - `-v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (optional, if you don't have a need, just delete it) Mount account configuration file modified in the previous step into the container. Delete this command parameters if no needs. - `--name hertzbeat` : Naming container name hertzbeat - `tancloud/hertzbeat` : Use the pulled latest HertzBeat official application mirror to start the container. **Use `quay.io/tancloud/hertzbeat` instead if you pull `quay.io` docker image.** 6. Begin to explore HertzBeat - Access http://ip:1157/ using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access `http://ip:1157/` using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +7. Deploy collector cluster (Optional) + +```shell +$ docker run -d \ + -e IDENTITY=custom-collector-name \ + -e MANAGER_IP=127.0.0.1 \ + -e MANAGER_PORT=1158 \ + --name hertzbeat-collector tancloud/hertzbeat-collector +``` + + This command starts a running HertzBeat-Collector container. + - `docker run -d` : Run a container in the background via Docker + - `-e IDENTITY=custom-collector-name` : (optional) Set the collector unique identity name. Attention the clusters collector name must unique. + - `-e MANAGER_IP=127.0.0.1` : Important⚠️ Set the main hertzbeat server ip. + - `-e MANAGER_PORT=1158` : (optional) Set the main hertzbeat server port, default 1158. + - `-v $(pwd)/logs:/opt/hertzbeat-collector/logs` : (optional) Mount the log file to the local host, to ensure the log will not be lost due creating or deleting container. + - `--name hertzbeat-collector` : Naming container name hertzbeat-collector + - `tancloud/hertzbeat-collector` : Use the pulled latest HertzBeat-Collector official application mirror to start the container. **Use `quay.io/tancloud/hertzbeat-collector` instead if you pull `quay.io` docker image.** + +8. Access `http://localhost:1157` and you will see the registered new collector in dashboard. **HAVE FUN** diff --git a/home/docs/start/package-deploy.md b/home/docs/start/package-deploy.md index 3f9244acff2..4c4a793dad5 100644 --- a/home/docs/start/package-deploy.md +++ b/home/docs/start/package-deploy.md @@ -18,14 +18,16 @@ sidebar_label: Install via Package ``` 2. Download HertzBeat installation package - Download installation package corresponding to your system environment + Download installation package `hertzbeat-xx.zip` `hertzbeat-collector-xx.zip` corresponding to your system environment - download from [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) repository - download from [GITHUB Release](https://github.com/dromara/hertzbeat/releases) repository 3. Configure HertzBeat's configuration file(optional) Unzip the installation package to the host eg: /opt/hertzbeat ``` - $ tar zxvf hertzbeat-[version number].tar.gz + $ tar zxvf hertzbeat-[version].tar.gz + or + $ unzip -o hertzbeat-[version].zip ``` Modify the configuration file `hertzbeat/config/application.yml` params according to your needs. - If you need to use email to send alarms, you need to replace the email server parameters `spring.mail` in `application.yml` @@ -35,11 +37,11 @@ sidebar_label: Install via Package 4. Configure the account file(optional) HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` - If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. + If you need add, delete or modify account or password, configure `hertzbeat/config/sureness.yml`. Ignore this step without this demand. For detail steps, please refer to [Configure Account Password](account-modify) 5. Start the service - Execute the startup script `startup.sh` in the installation directory `hertzbeat/bin/` + Execute the startup script `startup.sh` in the installation directory `hertzbeat/bin/`, or `startup.bat` in windows. ``` $ ./startup.sh ``` @@ -50,7 +52,25 @@ In `startup.bat`, modify `javaw` to the path of `java11`, such as `C:\Users\user 6. Begin to explore HertzBeat - Access http://ip:1157/ using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access http://localhost:1157/ using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +7. Deploy collector clusters (Optional) + + - Download and unzip the collector release package `hertzbeat-collector-xx.zip` to new machine [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - Also need to install `java jdk11` environment like above. + - Configure the collector configuration yml file `hertzbeat-collector/config/application.yml`: unique `identity` name, hertzbeat `manager-ip`, hertzbeat `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - Run command `$ ./bin/startup.sh ` or `bin/startup.bat` + - Access `http://localhost:1157` and you will see the registered new collector in dashboard **HAVE FUN** diff --git a/home/docs/start/quickstart.md b/home/docs/start/quickstart.md index 41ddcc65c04..3806af04741 100644 --- a/home/docs/start/quickstart.md +++ b/home/docs/start/quickstart.md @@ -6,8 +6,8 @@ sidebar_label: Quick Start ### 🐕 Quick Start -- If you don’t want to deploy but use it directly, we provide [SAAS Monitoring Cloud-TanCloud](https://console.tancloud.cn), **[Log In And Register For Free](https://console.tancloud.cn)**. -- If you want to deploy HertzBeat local, please refer to the following Deployment Documentation for operation. +- If you prefer to use HertzBeat directly without deploying it, we provide SAAS Monitoring Cloud-TanCloud, **[Log In For Free](https://console.tancloud.cn)**. +- If you wish to deploy HertzBeat locally, please refer to the following Deployment Documentation for instructions. ### 🍞 Install HertzBeat @@ -17,32 +17,57 @@ sidebar_label: Quick Start 1. Just one command to get started: -```docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat``` +```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat``` ```or use quay.io (if dockerhub network connect timeout)``` -```docker run -d -p 1157:1157 --name hertzbeat quay.io/tancloud/hertzbeat``` +```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` -2. Access `localhost:1157` to start, default account: `admin/hertzbeat` +2. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` + +3. Deploy collector clusters + +``` +docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector +``` +- `-e IDENTITY=custom-collector-name` : set the collector unique identity name. +- `-e MANAGER_IP=127.0.0.1` : set the main hertzbeat server ip. +- `-e MANAGER_PORT=1158` : set the main hertzbeat server port, default 1158. Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.com/docs/start/docker-deploy) ##### 2:Install via package -1. Download the installation package [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) -2. Need Jdk Environment, `jdk11` -3. [optional]Configure the HertzBeat configuration yml file `hertzbeat/config/application.yml` -4. Run shell `$ ./startup.sh ` -5. Access `localhost:1157` to start, default account: `admin/hertzbeat` +1. Download the release package `hertzbeat-xx.zip` [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. Need `java jdk11` Environment +3. Configure the HertzBeat configuration yml file `hertzbeat/config/application.yml` (optional) +4. Run command `$ ./bin/startup.sh ` or `bin/startup.bat` +5. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` +6. Deploy collector clusters + - Download the release package `hertzbeat-collector-xx.zip` to new machine [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - Need `java jdk11` Environment + - Configure the collector configuration yml file `hertzbeat-collector/config/application.yml`: unique `identity` name, hertzbeat `manager-ip`, hertzbeat `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - Run command `$ ./bin/startup.sh ` or `bin/startup.bat` + - Access `http://localhost:1157` and we will see the registered new collector in dashboard Detailed config refer to [Install HertzBeat via Package](https://hertzbeat.com/docs/start/package-deploy) ##### 3:Start via source code -1. Local source code debugging needs to start the back-end project manager and the front-end project web-app. -2. Backend:need `maven3+`, `java11`, `lombok`, start the manager service. +1. Local source code debugging needs to start the back-end project `manager` and the front-end project `web-app`. +2. Backend:need `maven3+`, `java11`, `lombok`, start the `manager` service. 3. Web:need `nodejs npm angular-cli` environment, Run `ng serve --open` in `web-app` directory after backend startup. -4. Access `localhost:4200` to start, default account: `admin/hertzbeat` +4. Access `http://localhost:4200` to start, default account: `admin/hertzbeat` Detailed steps refer to [CONTRIBUTING](../others/contributing) diff --git a/home/i18n/en/code.json b/home/i18n/en/code.json index 8d88c935f89..dc6e6e5e3e3 100644 --- a/home/i18n/en/code.json +++ b/home/i18n/en/code.json @@ -200,10 +200,10 @@ "description": "The live editor label of the live codeblocks" }, "convenient": { - "message": "Convenient" + "message": "Convenient Used" }, "custom-multi-support": { - "message": "Custom Monitoring" + "message": "High Performance and Custom" }, "opensource": { "message": "Opensource Friendly" @@ -257,13 +257,13 @@ "description": "The label used by the button on the collapsible TOC component" }, "convenient-content": { - "message": "{docker} {br} Just one command to get started. Monitor+Alerter+Notify all in one. Support monitoring web service, database, os, middleware, cloud-native, network and more. No need to write cumbersome configuration files. {br}We also provider {TANCLOUD} sass, {console}. Security is the most important, we encrypt the whole data of account and monitoring." + "message": "{docker} {br} [Monitoring+Alarm+Notification] all in one. Support monitoring web service, database, os, middleware, cloud-native, network and more. {br} Easy to use and agentless, offering full web-based operations for monitoring and alerting with just a click of a mouse. {br} We also provider sass cloud - tancloud, {console}. Security is the most important, we encrypt the whole data of account and monitoring." }, "custom-multi-support-content": { - "message": "Supported WEB, JVM, MYSQL, Linux, Kubernetes and other application, db, os, cloud-native, middleware, network and more. More liberal threshold alarm configuration, timely notification delivery by Discord, Slack, Telegram, Email, DingDing, WeChat, FeiShu, Webhook, SMS. {br}The monitoring needs of different teams are ever-changing. We provide {custom}, you can quickly support custom metrics collect through protocols SSH, JDBC, JMX, SNMP, HTTP etc." + "message": "Makes protocols such as Http, Jmx, Ssh, Snmp, Jdbc configurable, allowing you to collect any metrics by simply configuring the template online. {br} High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration. {br} Provides flexible alarm threshold rules and timely notifications delivered via Discord Slack Telegram Email DingDing WeChat FeiShu Webhook SMS." }, "opensource-content": { - "message": "HertzBeat is fully open source, unlimited, and anyone who are interested in it are very welcome to contribute. We respect everyone, not limited to the contribution of the document code or typos, we will learn and progress together, build an open source business for contributors.{br}We believe that open source can change the world!{br}{github} {br}{gitee}" + "message": "HertzBeat's stand-alone and cluster version code are all open source, unlimited and anyone who are interested in it are very welcome to contribute. No matter how small the contribution is, whether it is a document code or a typo, we respect everyone and learn and grow together. {br} We hope that the code we participate in can be deployed to thousands of machines, leaving our code footprints in this world.{br}{github} {gitee}" }, "slogan": { "message": "Open Source Real-time Monitoring Tool" diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current.json b/home/i18n/en/docusaurus-plugin-content-docs/current.json index c1d9ad02025..5f434b815fc 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/home/i18n/en/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "v1.3.x", + "message": "v1.4.x", "description": "The label for version current" }, "sidebar.docs.category.quickstart": { diff --git a/home/i18n/zh-cn/code.json b/home/i18n/zh-cn/code.json index f6824a82dc6..37fa1af8952 100644 --- a/home/i18n/zh-cn/code.json +++ b/home/i18n/zh-cn/code.json @@ -3,7 +3,7 @@ "message": "开箱即用" }, "custom-multi-support": { - "message": "多支持与自定义" + "message": "高性能与自定义" }, "opensource": { "message": "拥抱开源" @@ -437,16 +437,16 @@ "description": "The live editor label of the live codeblocks" }, "convenient-content": { - "message": "{docker} {br} 一条命令即可开始监控之旅。集 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等类型监控,阈值告警,告警通知一步到位。 全页面操作,无需编写繁琐易错的配置文件。{br}我们也提供 {TANCLOUD} 云服务,{console} 即刻开始。安全是最重要的,我们对账户密钥和监控密钥全链路加密。" + "message": "{docker} {br}集 [监控+告警+通知] 为一体,支持应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。{br} 易用友好,无需Agent,全WEB页面操作,鼠标点一点就能监控告警,零上手学习成本。{br}我们也提供TanCloud云服务,{console} 即刻开始。安全是最重要的,账户密钥和监控密钥保证全链路加密。" }, "custom-multi-support-content": { - "message": "我们支持对网站,JVM,MYSQL,Linux, Kubernetes等应用服务,数据库,操作系统,中间件,云原生,网络等监控。更自由化的阈值告警配置,支持邮箱,短信,Discord,Slack,Telegram,Webhook,钉钉,企业微信,飞书机器人等告警通知。{br}不同团队的监控需求千变万化,我们提供 {custom},通过不同的协议SSH,JDBC,JMX,SNMP,HTTP等,将自定义监控指标快速接入监控系统。{br}您相信只需配置YML就能立刻适配一款K8s或Docker等新的监控类型吗?" + "message": "将Http,Jmx,Ssh,Snmp,Jdbc等协议规范可配置模版化,内置大量的应用监控模版。{br} 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。{br}自由的告警阈值规则,邮箱,短信,Discord,Slack,Telegram,Webhook,钉钉,企业微信,飞书等方式消息及时送达。{br} 您相信只需配置监控模版马上支持新K8s监控类型吗?" }, "opensource-content": { - "message": "HertzBeat监控系统代码全开源,无限制,非常欢迎任何对此有兴趣的同学参与中来,贡献不分大小,我们尊重每一位同学,不限于文档代码或者错别字的贡献,我们一起学习进步,构建属于贡献者们的开源事业。{br}中二的我们相信开源改变世界!{br}{github} {br}{gitee}" + "message": "HertzBeat的单机版和集群版代码全开源,基于Apache2.0 License,无监控数量等伪开源限制。{br} 非常欢迎任何对此有兴趣的同学参与其中,贡献不分大小,无论是文档代码或者错别字,我们尊重每一位同学,一起学习进步成长。{br}有个作为开发者的初心,希望我们参与的代码能被部署到成千上万机器上,在这个世界留下属于我们的代码脚印。{br}{github} {gitee}" }, "slogan": { - "message": "易用友好的开源实时监控工具" + "message": "易用友好的开源实时监控系统" }, "Who Use HertzBeat?": { "message": "Who Use HertzBeat?" diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json index a4c1af6de29..f1a5f84b1c5 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "v1.3.x", + "message": "v1.4.x", "description": "The label for version current" }, "sidebar.docs.category.quickstart": { diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md index 0449b36a677..41b9aa3cc51 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md @@ -5,7 +5,7 @@ sidebar_label: 介绍 slug: / --- -> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 +> 易用友好的开源实时监控告警系统,无需Agent,高性能集群,强大自定义监控能力。 [![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) [![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) @@ -24,46 +24,152 @@ slug: / ## 🎡 介绍 -> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 -> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 -> 易用友好,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。 -> 更自由化的阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 +[HertzBeat 赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。 -> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 -> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? +### 特点 -> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 +- 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。 +- 易用友好,无需 `Agent`,全 `WEB` 页面操作,鼠标点一点就能监控告警,零上手学习成本。 +- 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 +- 自由的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式消息及时送达。 +> `HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云服务](https://console.tancloud.cn)**,中小团队和个人无需再为监控自有资源而去部署一套监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 + ---- -[![hertzbeat](/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) +### 完全开源 -[![hertzbeat](/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) +- 使用`Apache2`协议,由自由开放的开源社区主导维护的开源协作产品。 +- 无监控数量`License`,监控类型等伪开源限制。 +- 基于`Java+SpringBoot+TypeScript+Angular`主流技术栈构建,方便的二次开发。 +- 但开源不等同于免费,如果基于HertzBeat二次开发修改了logo,名称,版权等,[请找我们授权,否则会有法律风险](https://hertzbeat.com/docs/others/private)。 ----- +### 强大的监控模版 + +> 开始我们就说 HertzBeat 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 HertzBeat 的不一样的监控模版。而正是因为这样的监控模版设计,才会有了后面的高级特性。 + +HertzBeat 自身并没有去创造一种采集数据协议,让对端来适配它。而是充分使用了现有的生态,SNMP采集网络交换机路由器信息,JMX采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析接口信息,IPMI采集服务器信息等等。 +HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标信息。 + +![hertzbeat](/img/blog/multi-protocol.png) + +你相信用户只需在UI页面编写一个监控模版,点击保存后,就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +![hertzbeat](/img/home/9.png) + + +### 内置监控类型 + +**一款监控类型对应一个YML监控模版** + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) +- 和更多自定义监控模版。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +### 强大自定义功能 + +> 由前面的**监控模版**介绍,大概清楚了 HertzBeat 拥有的强大自定义功能。 +> 我们将每个监控类型都视为一个监控模版,不管是官方内置的还是后期用户自定义新增的。用户都可以方便的通过修改监控模版来新增修改删除监控指标。 +> 模版里面包含各个协议的使用,指标别名转换,指标计算,单位转换等一系列功能,帮助用户能采集到自己想要的监控指标。 + +![hertzbeat](/img/docs/custom-arch.png) + +### 无需 Agent + +> 对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试了。 +> 每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。 +> agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。 + +HertzBeat 的原理就是使用不同的协议去直连对端系统,采集 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter等。 +比如监控 linux, 在 HertzBeat 端输入IP端口账户密码或密钥即可。 +比如监控 mysql, 在 HertzBeat 端输入IP端口账户密码即可。 +**密码等敏感信息全链路加密** + +### 高性能集群 + +> 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。 +> 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。 +> 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 云边协同 + +> 支持部署边缘采集器集群,与主 HertzBeat 服务云边协同提升采集能力。 + +在多个网络不相通的隔离网络中,在以往的方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 +HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主 HertzBeat 服务统一调度管理展示。 + +![hertzbeat](/img/docs/cluster-arch.png) + +### 易用友好 -## 🥐 模块 +> 集 **监控+告警+通知** All in one, 无需单独部署多个组件服务。 +> 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。 +> 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。 +> 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。 +> 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 -- **[manager](https://github.com/dromara/hertzbeat/tree/master/manager)** 提供监控管理,系统管理基础服务 -> 提供对监控的管理,监控应用配置的管理,系统用户租户后台管理等。 -- **[collector](https://github.com/dromara/hertzbeat/tree/master/collector)** 提供监控数据采集服务 -> 使用通用协议远程采集获取对端指标数据。 -- **[warehouse](https://github.com/dromara/hertzbeat/tree/master/warehouse)** 提供监控数据仓储服务 -> 采集指标结果数据管理,数据落盘,查询,计算统计。 -- **[alerter](https://github.com/dromara/hertzbeat/tree/master/alerter)** 提供告警服务 -> 告警计算触发,监控状态联动,告警配置,告警通知。 -- **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** 提供可视化控制台页面 -> 监控告警系统可视化控制台前端(angular+ts+zorro) -![hertzBeat](https://tancloud.gd2.qingstor.com/img/docs/hertzbeat-stru.svg) ----- +----- -![hertzBeat](/img/docs/hertzbeat-arch.png) +**`HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** -## ⛄ Supported +----- + +## 即刻体验一波 + +Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat` +浏览器访问 `http://localhost:1157` 默认账户密码 `admin/hertzbeat` + +### 登陆页面 + +- HertzBeat 的用户管理统一由配置文件 `sureness.yml` 维护,用户可以通过修改此文件来新增删除修改用户信息,用户角色权限等。默认账户密码 admin/hertzbeat + +![hertzbeat](/img/home/0.png) + +### 概览页面 + +- 全局概览页面,分类展示了当前监控大类别数量分布,用户可直观查看当前的监控类型与数量并点击跳转至对应监控类型进行维护管理。 +- 展示当前注册的采集器集群状态,包括采集器的上线状态,监控任务,启动时间,IP地址,名称等。 +- 下发展示了最近告警信息列表,告警级别分布情况,告警处理率情况。 + +![hertzbeat](/img/home/1.png) + +### 监控中心 + +- 监控入口,支持对应用服务,数据库,操作系统,中间件,网络,自定义等监控的管理。 +- 以列表的形式展示当前已添加的监控,支持对监控的新增,修改,删除,取消监控,导入导出,批量管理等。 +- 支持标签分组,查询过滤,查看监控详情入口等。 + +内置支持的监控类型包括: - [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), @@ -92,5 +198,93 @@ slug: / - [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) -- 和更多的自定义监控。 -- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +![hertzbeat](/img/home/2.png) + +### 新增修改监控 + +- 新增或修改指定监控类型的监控实例,配置对端监控的IP,端口等参数,设置采集周期,采集任务调度方式,支持提前探测可用性等。 +- 页面上配置的监控参数由对应监控类型的监控模版所定义,用户可以通过修改监控模版来修改页面配置参数。 +- 支持关联标签,用标签来管理监控分组,告警匹配等。 + +![hertzbeat](/img/home/10.png) + +### 监控详情 + +- 监控的数据详情页面,展示了当前监控的基本参数信息,监控指标数据信息。 +- 监控实时数据报告,以小卡片列表的形式展示了当前监控的所有指标实时值,用户可根据实时值参考配置告警阈值规则。 +- 监控历史数据报告,以趋势图表的形式展示了当前监控数值类型的指标的历史值,支持查询小时,天,月的历史数据,支持配置页面刷新时间。 +- ⚠️注意监控历史图表需配置外置时序数据库才能获取完整功能,时序数据库支持: IOTDB, TDengine, InfluxDB, GreptimeDB + +![hertzbeat](/img/home/3.png) + +![hertzbeat](/img/home/4.png) + +### 告警中心 + +- 已触发告警消息的管理展示页面,使用户有直观的展示当前告警情况。 +- 支持告警处理,告警标记未处理,告警删除清空等批量操作。 + +![hertzbeat](/img/home/7.png) + +### 阈值规则 + +- 对于监控的可用性状态设置阈值规则,特定指标的值超过我们预期范围时发出告警,这些都可以在阈值规则这里配置。 +- 告警级别分为三级:通知告警,严重告警,紧急告警。 +- 阈值规则支持可视化页面配置或表达式规则配置,灵活性更高。 +- 支持配置触发次数,告警级别,通知模版,关联指定监控等。 + +![hertzbeat](/img/home/6.png) + +![hertzbeat](/img/home/11.png) + +### 告警收敛 + +- 当通过阈值规则判断触发告警后,会进入到告警收敛,告警收敛会根据规则对特定时间段的重复告警消息去重收敛,已避免大量重复性告警导致接收人告警麻木。 +- 告警收敛规则支持重复告警生效时间段,标签匹配和告警级别匹配过滤。 + +![hertzbeat](/img/home/12.png) + +![hertzbeat](/img/home/13.png) + + +### 告警静默 + +- 当通过阈值规则判断触发告警后,会进入到告警静默,告警静默会根据规则对特定一次性时间段或周期性时候段的告警消息屏蔽静默,此时间段不发送告警消息。 +- 此应用场景如用户在系统维护中,无需发已知告警。用户在工作日时间才会接收告警消息,用户在晚上需避免打扰等。 +- 告警静默规则支持一次性时间段或周期性时间段,支持标签匹配和告警级别匹配。 + +![hertzbeat](/img/home/14.png) + +![hertzbeat](/img/home/15.png) + +### 消息通知 + +- 消息通知功能是把告警消息通过不同媒体渠道通知给指定的接收人,告警消息及时触达。 +- 功能包含接收人信息管理和通知策略管理,接收人管理维护接收人信息以其通知方式信息,通知策略管理维护把哪些告警信息通知给哪些接收人的策略规则。 +- 通知方式支持 `邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式。 +- 通知策略支持标签匹配和告警级别匹配,方便的使不同标签的告警和告警级别分派给不同的接收处理人。 + +![hertzbeat](/img/home/16.png) + +![hertzbeat](/img/home/17.png) + +![hertzbeat](/img/home/8.png) + +### 监控模版 + +- HertzBeat 将 `Http,Jmx,Ssh,Snmp,Jdbc` 等协议规范可配置化,只需在浏览器配置监控模版 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 同理我们内置的所有监控类型(mysql,website,jvm,k8s)也一一映射为对应的监控模版,用户可以新增修改监控模版来自定义监控功能。 + +![hertzbeat](/img/home/9.png) + + +----- + +**还有更多强大的功能可以使用探索。Have Fun!** + +----- + +**官网: https://hertzbeat.com/** +**Github: https://github.com/dromara/hertzbeat** +**Gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/legal.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/legal.md new file mode 100644 index 00000000000..eea88e88016 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/legal.md @@ -0,0 +1,62 @@ +--- +id: legal +title: 对HertzBeat侵权会造成的法律风险 +sidebar_label: 法律风险 +--- + +:::tip +**开源不等同于免费,如果您基于HertzBeat二次开发修改了[logo,名称,版权](https://github.com/dromara/hertzbeat/blob/master/NOTICE)等,请找我们授权,否则会有法律风险。** +**我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得,也欢迎给我们[提供侵权线索](#欢迎给我们提供侵权线索证据)。** +::: + + +### HertzBeat 开源 License + +[Apache-2.0 license](https://github.com/dromara/hertzbeat/blob/master/LICENSE) + +### HertzBeat 开源声明 + +[Notice](https://github.com/dromara/hertzbeat/blob/master/NOTICE) + +```text +HertzBeat-An open-source, real-time monitoring system. +HertzBeat-易用友好的实时监控系统。 + +HertzBeat Declaration / HertzBeat声明 + +It can be used directly without authorization. All copyrights, patents, trademarks and ownership statements in the product and source code must be retained. +可直接免费商用,但必须保留本作品及源码中的所有版权、专利、商标和归属声明。 + +The attribution statement and copyright notice in the footer cannot be ignored, otherwise it will be deemed as infringement. +页面等页脚中归属声明及版权声明不可忽略,否则视为侵权。 + +Copyright https://www.hertzbeat.com https://www.tancloud.cn All Rights Reserved. +``` + +### 欢迎联系我们授权 + +请加我们微信 `tan-cloud` 或者邮件 `tomsun28@outlook.com` 咨询,备注:授权+团队名 + +### 欢迎给我们提供侵权线索证据 + +我们致力于开源并相信彼此,但是也有会一些人利用我们的信任违法使用此产品并获取利益。 +如果您发现了此类情况,欢迎联系我们提供他们的侵权违法线索,我们会将法院判决的对方全部违法所得的25%作为感谢给您。我们会按您要求匿名,欢迎支持开源事业。 + + +### HertzBeat授权版(付费) + +我们提供社区开源版监控产品 HertzBeat, 个人和企业可以免费使用,**需要完整保留版权,Logo,商标,页脚版权声明,和归属声明**。 +有些情况企业基于开源版本二次开发需要修改版权LOGO和归属声明等,对这样需求我们推出了 **HertzBeat授权版**。 +此授权需付费,我们实行企业规模阶梯定价,并会赠送技术支持等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:授权+团队名 + +### 企业版TanCloud(付费) + +监控系统企业版本为TanCloud团队针对企业级需求特别推出的版本,提供**用户管理,权限,日志等企业级特性**,得到我们维护团队的快速响应与技术支持。 +企业版本为付费版本,我们实行企业规模阶梯定价,并会赠送技术支持,免费维护期,技术讲解等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:企业版+团队名 + + +### 其它相关 + +**[软件附条件免费商业使用的侵权认定与责任承担](https://enipc.court.gov.cn/zh-cn/news/view-1668.html)** https://enipc.court.gov.cn/zh-cn/news/view-1668.html +**[开源协议适用范围及其对软件著作权侵权判定的影响](https://ipc.court.gov.cn/zh-cn/news/view-842.html)** https://ipc.court.gov.cn/zh-cn/news/view-842.html + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/private.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/private.md index 38392ea5862..f532ac410a6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/private.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/private.md @@ -1,31 +1,32 @@ --- id: private title: 企业版 -sidebar_label: 企业版私有化部署 +sidebar_label: 企业版 --- -HertzBeat监控产品分开源社区版本和企业版本,企业版本提供用户管理,日志审计等更多企业级特性,维护团队快速响应企业需求。 -#### 社区开源版监控产品HertzBeat(免费需保留版权) +:::tip +**开源不等同于免费,如果您基于HertzBeat二次开发修改了[logo,名称,版权](https://github.com/dromara/hertzbeat/blob/master/NOTICE)等,请找我们授权,否则会有[法律风险](legal)。** +**我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得,也欢迎给我们[提供侵权线索](legal)。** +::: + +--- -我们提供社区开源版监控产品 HertzBeat, 可以直接参考[HertzBeat部署文档](/docs)下载部署, 开源版本对个人或企业免费。 -开源版本使用必须完整保留本作品及源码和页面等中的所有版权、专利、商标和归属声明。若有需要修改,需购买授权。 -安装部署过程中遇到的问题可以通过[社区,微信群,QQ群等](/docs/others/contact)反馈交流学习。 -我们也提供有偿远程安装部署服务。 +HertzBeat监控产品分开源社区版本和企业版本,企业版本提供用户管理,日志审计等更多企业级特性,维护团队快速响应企业需求。 -#### 企业授权版HertzBeat(付费,可修改版权LOGO) +## HertzBeat授权版(付费) -我们提供社区开源版监控产品 HertzBeat, 个人和企业可以免费使用,但需要完整保留版权,商标和归属声明。 -有些情况企业需要拿此开源版本二次开发且修改版权LOGO和归属声明等,对有这样需求的用户我们推出了 **企业授权版HertzBeat**。 -此授权版本为付费版本,我们实行企业规模阶梯定价,并会赠送技术支持等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:授权+团队名 +我们提供社区开源版监控产品 HertzBeat, 个人和企业可以免费使用,**需要完整保留版权,Logo,商标,页脚版权声明,和归属声明**。 +有些情况企业基于开源版本二次开发需要修改版权LOGO和归属声明等,对这样需求我们推出了 **HertzBeat授权版**。 +此授权需付费,我们实行企业规模阶梯定价,并会赠送技术支持等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:授权+团队名 -#### 企业版TanCloud(付费) +## 企业版TanCloud(付费) -企业版本为TanCloud团队针对企业级需求特别推出的版本,提供用户管理,权限,日志等众多企业级特性,得到我们维护团队的快速响应与技术支持。 +监控系统企业版本为TanCloud团队针对企业级需求特别推出的版本,提供**用户管理,权限,日志等企业级特性**,得到我们维护团队的快速响应与技术支持。 企业版本为付费版本,我们实行企业规模阶梯定价,并会赠送技术支持,免费维护期,技术讲解等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:企业版+团队名 欢迎介绍业务成为推荐官,交易成功有奖励哦 -#### 增值服务(付费) +## 增值服务(付费) 我们提供技术支持,讲解,企业监控方案设计咨询等系列增值服务,欢迎加微信 tan-cloud 咨询了解,加微信请备注:增值服务+团队名 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/resource.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/resource.md index c799bff2f31..43027a3954f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/resource.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/others/resource.md @@ -4,6 +4,10 @@ title: 相关资源 sidebar_label: 相关资源 --- +## HertzBeat PDF介绍文档 + +下载: [PDF](http://cdn.hertzbeat.com/hertzbeat.pdf) + ## 图标资源 ### HertzBeat LOGO diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md index 5be02e67366..5114a6def1b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md @@ -23,10 +23,12 @@ sidebar_label: Docker方式部署 ```shell $ docker pull tancloud/hertzbeat + $ docker pull tancloud/hertzbeat-collector ``` 若网络超时或者使用 ```shell $ docker pull quay.io/tancloud/hertzbeat + $ docker pull quay.io/tancloud/hertzbeat-collector ``` 3. 部署HertzBeat您可能需要掌握的几条命令 @@ -45,31 +47,29 @@ sidebar_label: Docker方式部署 $ exit ``` -4. 配置挂载的HertzBeat的配置文件(可选) - 在主机目录下创建application.yml,eg:/opt/application.yml - 配置文件完整内容见项目仓库[/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) 您可以根据需求修改配置文件 - - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 +4. 挂载并配置HertzBeat的配置文件(可选) + 下载 `application.yml` 文件到主机目录下,例如: $(pwd)/application.yml + 下载源 [github/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) 或 [gitee/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml) + - 若需使用邮件发送告警,需替换 `application.yml` 里面的邮件服务器参数 - **推荐**若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](mysql-change)) - **推荐**若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.td-engine`参数 具体步骤参见 [使用TDengine存储指标数据](tdengine-init) - **推荐**若需使用时序数据库IotDB来存储指标数据库,需替换`application.yml`里面的`warehouse.storeiot-db`参数 具体步骤参见 [使用IotDB存储指标数据](iotdb-init) -5. 配置挂载的HertzBeat用户配置文件,自定义用户密码(可选) +5. 挂载并配置HertzBeat用户配置文件,自定义用户密码(可选) HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat 若需要新增删除修改账户或密码,可以通过配置 `sureness.yml` 实现,若无此需求可忽略此步骤 - 在主机目录下创建sureness.yml,eg:/opt/sureness.yml - 配置文件完整内容见项目仓库[/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) + 下载 `sureness.yml` 文件到主机目录下,例如: $(pwd)/sureness.yml + 下载源 [github/script/sureness.yml](https://github.com/dromara/hertzbeat/raw/master/script/sureness.yml) 或 [gitee/script/sureness.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/sureness.yml) 具体修改步骤参考 [配置修改账户密码](account-modify) 6. 启动HertzBeat Docker容器 ```shell -$ docker run -d -p 1157:1157 \ - -e LANG=zh_CN.UTF-8 \ - -e TZ=Asia/Shanghai \ - -v /opt/data:/opt/hertzbeat/data \ - -v /opt/logs:/opt/hertzbeat/logs \ - -v /opt/application.yml:/opt/hertzbeat/config/application.yml \ - -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml \ +$ docker run -d -p 1157:1157 -p 1158:1158 \ + -v $(pwd)/data:/opt/hertzbeat/data \ + -v $(pwd)/logs:/opt/hertzbeat/logs \ + -v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml \ + -v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml \ --restart=always \ --name hertzbeat tancloud/hertzbeat ``` @@ -77,19 +77,15 @@ $ docker run -d -p 1157:1157 \ 这条命令启动一个运行HertzBeat的Docker容器,并且将容器的1157端口映射到宿主机的1157端口上。若宿主机已有进程占用该端口,则需要修改主机映射端口。 - `docker run -d` : 通过Docker运行一个容器,使其在后台运行 - - `-p 1157:1157` : 映射容器端口到主机端口,请注意,前面是宿主机的端口号,后面是容器的端口号。 + - `-p 1157:1157 -p 1158:1158` : 映射容器端口到主机端口,请注意,前面是宿主机的端口号,后面是容器的端口号。1157是WEB端口,1158是集群端口。 - - `-e LANG=zh_CN.UTF-8` : (可选) 设置语言 + - `-v $(pwd)/data:/opt/hertzbeat/data` : (可选,数据持久化)重要⚠️ 挂载H2数据库文件到本地主机,保证数据不会因为容器的创建删除而丢失 - - `-e TZ=Asia/Shanghai` : (可选) 设置时区 + - `-v $(pwd)/logs:/opt/hertzbeat/logs` : (可选,不需要可删除)挂载日志文件到本地主机,保证日志不会因为容器的创建删除而丢失,方便查看 - - `-v /opt/data:/opt/hertzbeat/data` : (可选,数据持久化)重要⚠️ 挂载H2数据库文件到本地主机,保证数据不会因为容器的创建删除而丢失 + - `-v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml` : (可选,不需要可删除)挂载上上一步修改的本地配置文件到容器中,即使用本地配置文件覆盖容器配置文件。我们需要修改此配置文件的MYSQL,TDengine配置信息来连接外部服务。 - - `-v /opt/logs:/opt/hertzbeat/logs` : (可选,不需要可删除)挂载日志文件到本地主机,保证日志不会因为容器的创建删除而丢失,方便查看 - - - `-v /opt/application.yml:/opt/hertzbeat/config/application.yml` : (可选,不需要可删除)挂载上上一步修改的本地配置文件到容器中,即使用本地配置文件覆盖容器配置文件。我们需要修改此配置文件的MYSQL,TDengine配置信息来连接外部服务。 - - - `-v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (可选,不需要可删除)挂载上一步修改的账户配置文件到容器中,若无修改账户需求可删除此命令参数。 + - `-v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (可选,不需要可删除)挂载上一步修改的账户配置文件到容器中,若无修改账户需求可删除此命令参数。 - 注意⚠️ 挂载文件时,前面参数为你自定义本地文件地址,后面参数为docker容器内文件地址(固定) @@ -106,6 +102,27 @@ $ docker run -d -p 1157:1157 \ 7. 开始探索HertzBeat 浏览器访问 http://ip:1157/ 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 +8. 部署采集器集群(可选) + +```shell +$ docker run -d \ + -e IDENTITY=custom-collector-name \ + -e MANAGER_IP=127.0.0.1 \ + -e MANAGER_PORT=1158 \ + --name hertzbeat-collector tancloud/hertzbeat-collector +``` + + 这条命令启动一个运行HertzBeat采集器的Docker容器,并直连上了HertzBeat主服务节点。 + - `docker run -d` : 通过Docker运行一个容器,使其在后台运行 + - `-e IDENTITY=custom-collector-name` : (可选) 设置采集器的唯一标识名称。⚠️注意多采集器时采集器名称需保证唯一性。 + - `-e MANAGER_IP=127.0.0.1` : 重要⚠️ 设置连接的主HertzBeat服务地址IP。 + - `-e MANAGER_PORT=1158` : (可选) 设置连接的主HertzBeat服务地址端口,默认 1158. + - `-v $(pwd)/logs:/opt/hertzbeat-collector/logs` : (可选,不需要可删除)挂载日志文件到本地主机,保证日志不会因为容器的创建删除而丢失,方便查看 + - `--name hertzbeat-collector` : 命名容器名称 hertzbeat-collector + - `tancloud/hertzbeat-collector` : 使用拉取最新的的HertzBeat采集器官方发布的应用镜像来启动容器,**若使用`quay.io`镜像需用参数`quay.io/tancloud/hertzbeat-collector`代替。** + +8. 浏览器访问主HertzBeat服务 `http://localhost:1157` 查看概览页面即可看到注册上来的新采集器 + **HAVE FUN** ### Docker部署常见问题 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md index 209f954addb..aa67e6c5496 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md @@ -19,14 +19,16 @@ sidebar_label: 安装包方式部署 ``` 2. 下载HertzBeat安装包 - 下载您系统环境对应的安装包 + 下载您系统环境对应的安装包 `hertzbeat-xx.zip` `hertzbeat-collector-xx.zip` - 从[GITEE Release](https://gitee.com/dromara/hertzbeat/releases) 仓库下载 - 从[GITHUB Release](https://github.com/dromara/hertzbeat/releases) 仓库下载 3. 配置HertzBeat的配置文件(可选) 解压安装包到主机 eg: /opt/hertzbeat ``` - $ tar zxvf hertzbeat-[版本号].tar.gz + $ tar zxvf hertzbeat-[版本号].tar.gz + or + $ unzip -o hertzbeat-[版本号].zip ``` 修改位于 `hertzbeat/config/application.yml` 的配置文件(可选),您可以根据需求修改配置文件 - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 @@ -51,6 +53,23 @@ sidebar_label: 安装包方式部署 6. 开始探索HertzBeat 浏览器访问 http://ip:1157/ 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 +7. 部署采集器集群(可选) + - 下载解压采集器安装包`hertzbeat-collector-xx.zip`到规划的另一台部署主机上 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - 也需要如上步骤一样提前安装`java jdk11`环境 + - 配置采集器的配置文件 `hertzbeat-collector/config/application.yml` 里面的连接主HertzBeat服务的对外IP,端口,当前采集器名称(需保证唯一性)等参数 `identity` `manager-ip` `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - 启动 `$ ./bin/startup.sh ` 或 `bin/startup.bat` + - 浏览器访问主HertzBeat服务 `http://localhost:1157` 查看概览页面即可看到注册上来的新采集器 + **HAVE FUN** ### 安装包部署常见问题 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/quickstart.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/quickstart.md index 29b33e2cab9..0a14fb1ac94 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/quickstart.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/quickstart.md @@ -6,8 +6,8 @@ sidebar_label: 快速开始 ### 🐕 开始使用 -- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻[登录注册](https://console.tancloud.cn)免费使用。 -- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 +- 如果您不想部署而是直接使用,我们提供SAAS监控云服务-TanCloud探云,**[即刻登录注册免费使用](https://console.tancloud.cn)**。 +- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 ### 🐵 依赖服务部署(可选) @@ -55,31 +55,57 @@ $ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ 1. `docker` 环境仅需一条命令即可开始 -```docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat``` +```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat``` ```或者使用 quay.io (若 dockerhub 网络链接超时)``` -```docker run -d -p 1157:1157 --name hertzbeat quay.io/tancloud/hertzbeat``` +```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` -2. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +2. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +3. 部署采集器集群 + +``` +docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector +``` +- `-e IDENTITY=custom-collector-name` : 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。 +- `-e MANAGER_IP=127.0.0.1` : 配置连接主HertaBeat服务的对外IP。 +- `-e MANAGER_PORT=1158` : 配置连接主HertzBeat服务的对外端口,默认1158。 更多配置详细步骤参考 [通过Docker方式安装HertzBeat](docker-deploy) #### 方式二:通过安装包安装 -1. 下载您系统环境对应的安装包 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) -2. 需要已安装java环境, `jdk11` -3. [可选]配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml` -4. 部署启动 `$ ./startup.sh ` -5. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +1. 下载您系统环境对应的安装包`hertzbeat-xx.zip` [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. 需要提前已安装`java jdk11`环境 +3. 配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml`(可选) +4. 部署启动 `$ ./bin/startup.sh ` 或 `bin/startup.bat` +5. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +6. 部署采集器集群 + - 下载采集器安装包`hertzbeat-collector-xx.zip`到规划的另一台部署主机上 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) + - 需要提前已安装`java jdk11`环境 + - 配置采集器的配置文件 `hertzbeat-collector/config/application.yml` 里面的连接主HertzBeat服务的对外IP,端口,当前采集器名称(需保证唯一性)等参数 `identity` `manager-ip` `manager-port` + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY} + manager-ip: ${MANAGER_IP:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + - 启动 `$ ./bin/startup.sh ` 或 `bin/startup.bat` + - 浏览器访问主HertzBeat服务 `http://localhost:1157` 查看概览页面即可看到注册上来的新采集器 更多配置详细步骤参考 [通过安装包安装HertzBeat](package-deploy) #### 方式三:本地代码启动 -1. 此为前后端分离项目,本地代码调试需要分别启动后端工程manager和前端工程web-app -2. 后端:需要`maven3+`, `java11`和`lombok`环境,修改YML配置信息并启动manager服务 -3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在web-app目录下启动 `ng serve --open` -4. 浏览器访问 `localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` + +1. 此为前后端分离项目,本地代码调试需要分别启动后端工程`manager`和前端工程`web-app` +2. 后端:需要`maven3+`, `java11`和`lombok`环境,修改`YML`配置信息并启动`manager`服务 +3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在`web-app`目录下启动 `ng serve --open` +4. 浏览器访问 `http://localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` 详细步骤参考 [参与贡献之本地代码启动](../others/contributing) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-default.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-default.md new file mode 100644 index 00000000000..2de6cec0dfd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-default.md @@ -0,0 +1,149 @@ +--- +id: extend-http-default +title: HTTP协议系统默认解析方式 +sidebar_label: 系统默认解析方式 +--- +> HTTP接口调用获取响应数据后,用HertzBeat默认的解析方式去解析响应数据。 + +**此需接口响应数据结构符合HertzBeat指定的数据结构规则** + +### HertzBeat数据格式规范 +注意⚠️ 响应数据为JSON + +单层格式:key-value +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` +多层格式:数组里面套key-value +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` +样例: +查询自定义系统的CPU信息,其暴露接口为 `/metrics/cpu`,我们需要其中的`hostname,core,useage`指标 +若只有一台虚拟机,其单层格式为: +```json +{ + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 +} +``` +若有多台虚拟机,其多层格式为: +```json +[ + { + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 + }, + { + "hostname": "linux-2", + "core": 3, + "usage": 78.0, + "allTime": 566, + "runningTime": 34 + }, + { + "hostname": "linux-3", + "core": 4, + "usage": 38.0, + "allTime": 500, + "runningTime": 20 + } +] +``` + +**对应的监控模版YML可以配置为如下** + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' +# 指标组列表 +metrics: +# 第一个监控指标组 cpu +# 注意:内置监控指标有 (responseTime - 响应时间) + - name: cpu + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: hostname + type: 1 + instance: true + - field: usage + type: 0 + unit: '%' + - field: core + type: 0 +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /metrics/cpu + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: false + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # 这里使用HertzBeat默认解析 + parseType: default +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md new file mode 100644 index 00000000000..ebcc7d030e2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md @@ -0,0 +1,226 @@ +--- +id: extend-http-example-hertzbeat +title: 教程一:适配一款基于HTTP协议的监控类型 +sidebar_label: 教程一:适配一款HTTP协议监控 +--- + +通过此教程我们一步一步描述如何在hertzbeat监控系统下新增适配一款基于http协议的监控类型。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + + +### HTTP协议解析通用响应结构体,获取指标数据 + +> 很多场景我们需要对提供的 HTTP API 接口进行监控,获取接口返回的指标值。这篇文章我们通过http自定义协议来解析我们常见的http接口响应结构,获取返回体中的字段作为指标数据。 + + +``` +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` +如上,通常我们的后台API接口会设计这这样一个通用返回。hertzbeat系统的后台也是如此,我们今天就用hertzbeat的 API 做样例,新增适配一款新的监控类型 **hertzbeat**,监控采集它的系统摘要统计API +`http://localhost:1157/api/summary`, 其响应数据为: + +``` +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**我们这次获取其app下的 `category`,`app`,`status`,`size`,`availableSize`等指标数据。** + + +### 新增自定义监控模版YML + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +> 监控模版YML用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个监控模版,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为`hertzbeat`的自定义监控类型,其使用HTTP协议采集指标数据。 + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型名称(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: hertzbeat +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +# 指标组列表 +metrics: + # 第一个监控指标组 summary + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: summary + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: responseTime + type: 0 + unit: ms + - field: app + type: 1 + instance: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk, 我们这里使用HTTP协议 + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径,我们这里不需要输入传参,写死为 /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # 请求方式 GET POST PUT DELETE PATCH,写死为 + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控,我们这里使用jsonpath来解析响应数据 + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**新增完毕,现在我们重启hertzbeat系统。我们可以看到系统页面已经多了一个`hertzbeat`监控类型了。** + + +![](/img/docs/advanced/extend-http-example-1.png) + + +### 系统页面添加对`hertzbeat`监控类型的监控 + +> 我们点击新增 `HertzBeat监控系统`,配置监控IP,端口,采集周期,高级设置里的账户密码等, 点击确定添加监控。 + + +![](/img/docs/advanced/extend-http-example-2.png) + + +![](/img/docs/advanced/extend-http-example-3.png) + +> 过一定时间(取决于采集周期)我们就可以在监控详情看到具体的指标数据和历史图表啦! + + +![](/img/docs/advanced/extend-http-example-4.png) + + + +### 设置阈值告警通知 + +> 接下来我们就可以正常的设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + + +---- + +#### 完! + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数headers,params等,我们可以像用postman一样去定义它,可玩性也非常高! + +如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-token.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-token.md new file mode 100644 index 00000000000..534a66e2040 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-example-token.md @@ -0,0 +1,391 @@ +--- +id: extend-http-example-token +title: 教程二:基于HTTP协议获取TOKEN指标值,给后续采集认证使用 +sidebar_label: 教程二:获取TOKEN后续认证使用 +--- + +通过此教程我们一步一步描述如何在教程一的基础上改造,新增一个指标组,先调用认证接口获取TOKEN后,使用TOKEN作为参数供后面的指标组采集认证使用。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + +### 请求流程 + +【**认证信息指标组(优先级最高)**】【**HTTP接口携带账户密码调用**】->【**响应数据解析**】->【**解析签发TOKEN-accessToken作为指标**】->【**将accessToken作为变量参数赋值给其他采集指标组**】 + +> 这里我们依然用教程一的hertzbeat监控举例!hertzbeat后台接口不仅仅支持教程一使用的basic直接账户密码认证,也支持token认证。 + +**我们需要`POST`调用登录接口`/api/account/auth/form`获取`accessToken`,请求body(json格式)如下**: + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` +**响应结构数据如下**: + +```json +{ + "data": { + "token": "xxxx", + "refreshToken": "xxxx" + }, + "msg": null, + "code": 0 +} +``` + +### 新增自定义监控类型`hertzbeat_token` + +1. 自定义监控类型需新增配置监控模版YML,我们直接复用教程一的 `hertzbeat` 监控类型,在其基础上修改 + +监控配置定义文件是用来定义采集类型是啥,需要用哪种协议采集方式,采集的指标是啥,协议的配置参数等。 +我们直接复用 app-hertzbeat.yml 里面的定义内容,修改为我们当前的监控类型`hertzbeat_auth`配置参数, 比如 `app, category等`。 + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + zh-CN: HertzBeat监控(Token) + en-US: HertzBeat Monitor(Token) +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 1157 + # 参数输入框提示信息 + placeholder: '请输入端口' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # 当type为boolean时,前端用switch展示开关 + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# 指标组列表 todo 下方配置 +metrics: ...... + +``` + +### 定义指标组`auth`登录请求获取`token` + +1. 在`app-hertzbeat_token.yml`新增一个指标组定义 `auth`, 设置采集优先级为最高0,采集指标 `token`. + +```yaml + +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + zh-CN: HertzBeat监控(Token) + en-US: HertzBeat Monitor(Token) +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 1157 + # 参数输入框提示信息 + placeholder: '请输入端口' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # 当type为boolean时,前端用switch展示开关 + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# 指标组列表 +metrics: + # 第一个监控指标组 auth + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: auth + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: token + type: 1 + - field: refreshToken + type: 1 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /api/account/auth/form + # 请求方式 GET POST PUT DELETE PATCH + method: POST + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # 请求头内容 + headers: + content-type: ^_^contentType^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + parseType: jsonPath + parseScript: '$.data' + +``` + +**此时,重启hertzbeat系统,在系统页面上添加 `hertzbeat_token` 类型监控,配置输入参数,`content-type`填`application/json` , `请求Body`填账户密码json如下: ** + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +![](/img/docs/advanced/extend-http-example-5.png) + + +**新增成功后我们就可以在详情页面看到我们采集的 `token`, `refreshToken`指标数据。** + +![](/img/docs/advanced/extend-http-example-6.png) + +![](/img/docs/advanced/extend-http-example-7.png) + + + +### 将`token`作为变量参数给后面的指标组采集使用 + +**在`app-hertzbeat_token.yml`新增一个指标组定义 `summary` 同教程一中的`summary`相同, 设置采集优先级为1** +**设置此指标组的HTTP协议配置中认证方式为 `Bearer Token` 将上一个指标组`auth`采集的指标`token`作为参数给其赋值,使用`^o^`作为内部替换符标识,即`^o^token^o^`。如下:** + +```yaml + - name: summary +# 当protocol为http协议时具体的采集配置 + http: + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ +``` + +**最终`app-hertzbeat_token.yml`定义如下:** + +```yaml + +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + zh-CN: HertzBeat监控(Token) + en-US: HertzBeat Monitor(Token) +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 1157 + # 参数输入框提示信息 + placeholder: '请输入端口' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # 当type为boolean时,前端用switch展示开关 + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# 指标组列表 +metrics: +# 第一个监控指标组 cpu +# 注意:内置监控指标有 (responseTime - 响应时间) + - name: auth + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: token + type: 1 + - field: refreshToken + type: 1 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /api/account/auth/form + # 请求方式 GET POST PUT DELETE PATCH + method: POST + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # 请求头内容 + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # 请求参数内容 + params: + ^_^params^_^: ^_^params^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + parseType: jsonPath + parseScript: '$.data' + + + - name: summary + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 1 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: category + type: 1 + - field: app + type: 1 + - field: size + type: 0 + - field: status + type: 0 +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /api/summary + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**配置完成后,再次重启 `hertzbeat` 系统,查看监控详情页面** + +![](/img/docs/advanced/extend-http-example-8.png) + +![](/img/docs/advanced/extend-http-example-9.png) + +### 设置阈值告警通知 + +> 接下来我们就可以正常设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + +---- + +#### 完! + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数headers,params等,我们可以像用postman一样去定义它,可玩性也非常高! + +如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-jsonpath.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-jsonpath.md new file mode 100644 index 00000000000..cfb42960bef --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http-jsonpath.md @@ -0,0 +1,167 @@ +--- +id: extend-http-jsonpath +title: HTTP协议JsonPath解析方式 +sidebar_label: JsonPath解析方式 +--- +> HTTP接口调用获取响应数据后,用JsonPath脚本解析的解析方式去解析响应数据。 + +注意⚠️ 响应数据为JSON格式 + +**使用JsonPath脚本将响应数据解析成符合HertzBeat指定的数据结构规则的数据** + +#### JsonPath操作符 +[JSONPath在线验证](https://www.jsonpath.cn) + +| JSONPATH | 帮助描述 | +|------------------|-----------------------------------| +| $ | 根对象或元素 | +| @ | 当前对象或元素 | +| . or [] | 子元素操作符 | +| .. | 递归匹配所有子元素 | +| * | 通配符. 匹配所有对象或元素. | +| [] | 下标运算符,JsonPath索引从0开始 | +| [,] | 连接运算符,将多个结果拼成数组返回,JSONPath允许使用别名. | +| [start:end:step] | 数组切片运算符 | +| ?() | 过滤器(脚本)表达式. | +| () | 脚本表达式. | + +#### HertzBeat数据格式规范 +单层格式:key-value +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` +多层格式:数组里面套key-value +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +#### 样例 + +查询自定义系统的数值信息,其暴露接口为 `/metrics/person`,我们需要其中的`type,num`指标 +接口返回的原始数据如下: +```json +{ + "firstName": "John", + "lastName" : "doe", + "age" : 26, + "address" : { + "streetAddress": "naist street", + "city" : "Nara", + "postalCode" : "630-0192" + }, + "number": [ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } + ] +} +``` + +我们使用JsonPath脚本解析,对应的脚本为: `$.number[*]` ,解析后的数据结构如下: +```json +[ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } +] +``` +此数据结构符合HertzBeat的数据格式规范,成功提取指标`type,num`值。 + +**对应的监控模版YML可以配置为如下** + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' +# 指标组列表 +metrics: +# 第一个监控指标组 person +# 注意:内置监控指标有 (responseTime - 响应时间) + - name: cpu + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: type + type: 1 + instance: true + - field: num + type: 0 +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /metrics/person + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: false + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # 这里使用jsonPath解析 + parseType: jsonPath + parseScript: '$.number[*]' +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http.md new file mode 100644 index 00000000000..82e1930e376 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-http.md @@ -0,0 +1,205 @@ +--- +id: extend-http +title: HTTP协议自定义监控 +sidebar_label: HTTP协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用HTTP协议自定义指标监控。 + +### HTTP协议采集流程 +【**HTTP接口调用**】->【**响应校验**】->【**响应数据解析**】->【**默认方式解析|JsonPath脚本解析 | XmlPath解析(todo) | Prometheus解析**】->【**指标数据提取**】 + +由流程可见,我们自定义一个HTTP协议的监控类型,需要配置HTTP请求参数,配置获取哪些指标,对响应数据配置解析方式和解析脚本。 +HTTP协议支持我们自定义HTTP请求路径,请求header,请求参数,请求方式,请求体等。 + +**系统默认解析方式**:http接口返回hertzbeat规定的json数据结构,即可用默认解析方式解析数据提取对应的指标数据,详细介绍见 [**系统默认解析**](extend-http-default) +**JsonPath脚本解析方式**:用JsonPath脚本对响应的json数据进行解析,返回系统指定的数据结构,然后提供对应的指标数据,详细介绍见 [**JsonPath脚本解析**](extend-http-jsonpath) + + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下监控模版YML的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控模版YML用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个监控模版,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_http的自定义监控类型,其使用HTTP协议采集指标数据。 + + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: custom +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_http +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + # 当type为text时,用limit表示字符串限制大小 + limit: 20 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: ssl + name: + zh-CN: 启动SSL + en-US: Enable SSL + # 当type为boolean时,前端用switch展示开关 + type: boolean + required: false + - field: method + name: + zh-CN: 请求方式 + en-US: Method + type: radio + required: true + # 当type为radio单选框,checkbox复选框时,option表示可选项值列表 {name1:value1,name2:value2} + options: + - label: GET请求 + value: GET + - label: POST请求 + value: POST + - label: PUT请求 + value: PUT + - label: DELETE请求 + value: DELETE +# 指标组列表 +metrics: +# 第一个监控指标组 cpu +# 注意:内置监控指标有 (responseTime - 响应时间) + - name: cpu + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: hostname + type: 1 + instance: true + - field: usage + type: 0 + unit: '%' + - field: cores + type: 0 + - field: waitTime + type: 0 + unit: s +# (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime +# (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 +# eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /metrics/cpu + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: false + # 请求头内容 + headers: + apiVersion: v1 + # 请求参数内容 + params: + param1: param1 + param2: param2 + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # todo xmlPath-xmlPath脚本,prometheus-Prometheus数据规则 + parseType: jsonPath + parseScript: '$' + + - name: memory + priority: 1 + fields: + - field: hostname + type: 1 + instance: true + - field: total + type: 0 + unit: kb + - field: usage + type: 0 + unit: '%' + - field: speed + type: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /metrics/memory + method: GET + headers: + apiVersion: v1 + params: + param1: param1 + param2: param2 + authorization: + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + parseType: default +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jdbc.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jdbc.md new file mode 100644 index 00000000000..2fae05a2673 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jdbc.md @@ -0,0 +1,239 @@ +--- +id: extend-jdbc +title: JDBC协议自定义监控 +sidebar_label: JDBC协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用JDBC(目前支持mysql,mariadb,postgresql,sqlserver)自定义指标监控。 +> JDBC协议自定义监控可以让我们很方便的通过写SQL查询语句就能监控到我们想监控的指标 + +### JDBC协议采集流程 +【**系统直连MYSQL**】->【**运行SQL查询语句**】->【**响应数据解析:oneRow, multiRow, columns**】->【**指标数据提取**】 + +由流程可见,我们自定义一个JDBC协议的监控类型,需要配置JDBC请求参数,配置获取哪些指标,配置查询SQL语句。 + +### 数据解析方式 +SQL查询回来的数据字段和我们需要的指标映射,就能获取对应的指标数据,目前映射解析方式有三种:oneRow, multiRow, columns + +#### **oneRow** +> 查询一行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: +查询的指标字段为:one tow three four +查询SQL:select one, tow, three, four from book limit 1; +这里指标字段就能和响应数据一一映射为一行采集数据。 + +#### **multiRow** +> 查询多行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: +查询的指标字段为:one tow three four +查询SQL:select one, tow, three, four from book; +这里指标字段就能和响应数据一一映射为多行采集数据。 + +#### **columns** +> 采集一行指标数据, 通过查询的两列数据(key-value),key和查询的字段匹配,value为查询字段的值 + +例如: +查询字段:one tow three four +查询SQL:select key, value from book; +SQL响应数据: + +| key | value | +|----------|-------| +| one | 243 | +| two | 435 | +| three | 332 | +| four | 643 | + +这里指标字段就能和响应数据的key映射,获取对应的value为其采集监控数据。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + + +------- +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_sql的自定义监控类型,其使用JDBC协议采集指标数据。 + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: db +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_sql +name: + zh-CN: 模拟MYSQL应用类型 + en-US: MYSQL EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + placeholder: '请输入端口' + - field: database + name: + zh-CN: 数据库名称 + en-US: Database + type: text + required: false + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: url + name: + zh-CN: Url + en-US: Url + type: text + required: false +# 指标组列表 +metrics: + - name: basic + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: version + type: 1 + instance: true + - field: port + type: 1 + - field: datadir + type: 1 + - field: max_connections + type: 0 + # (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - version + - version_compile_os + - version_compile_machine + - port + - datadir + - max_connections + # (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - port=port + - datadir=datadir + - max_connections=max_connections + - version=version+"_"+version_compile_os+"_"+version_compile_machine + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global variables where Variable_name like 'version%' or Variable_name = 'max_connections' or Variable_name = 'datadir' or Variable_name = 'port'; + url: ^_^url^_^ + + - name: status + priority: 1 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: threads_created + type: 0 + - field: threads_connected + type: 0 + - field: threads_cached + type: 0 + - field: threads_running + type: 0 + # (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - threads_created + - threads_connected + - threads_cached + - threads_running + # (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - threads_created=threads_created + - threads_connected=threads_connected + - threads_cached=threads_cached + - threads_running=threads_running + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'thread%' or Variable_name = 'com_commit' or Variable_name = 'com_rollback' or Variable_name = 'questions' or Variable_name = 'uptime'; + url: ^_^url^_^ + + - name: innodb + priority: 2 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: innodb_data_reads + type: 0 + unit: 次数 + - field: innodb_data_writes + type: 0 + unit: 次数 + - field: innodb_data_read + type: 0 + unit: kb + - field: innodb_data_written + type: 0 + unit: kb + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'innodb%'; + url: ^_^url^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jmx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jmx.md new file mode 100644 index 00000000000..2ac99d01a1c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-jmx.md @@ -0,0 +1,238 @@ +--- +id: extend-jmx +title: JMX协议自定义监控 +sidebar_label: JMX协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用JMX协议自定义指标监控。 +> JMX协议自定义监控可以让我们很方便的通过配置 JMX Mbean Object 就能监控采集到我们想监控的 Mbean 指标 + +### JMX协议采集流程 +【**对端JAVA应用暴露JMX服务**】->【**HertzBeat直连对端JMX服务**】->【**获取配置的 Mbean Object 数据**】->【**指标数据提取**】 + +由流程可见,我们自定义一个JMX协议的监控类型,需要配置JMX请求参数,配置获取哪些指标,配置查询Object信息。 + +### 数据解析方式 + +通过配置监控模版YML的指标`field`, `aliasFields`, `jmx` 协议的 `objectName` 来和对端系统暴露的 `Mbean`对象信息映射解析。 + + + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- +下面详细介绍下监控模版的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为 `example_jvm` 的自定义监控类型,其使用JMX协议采集指标数据。 + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 cn-云原生cloud native network-网络监控 +category: service +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: example_jvm +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: 自定义JVM虚拟机 + en-US: CUSTOM JVM +# Input params define for monitoring(render web ui by the definition) +# 监控所需输入参数定义(根据定义渲染页面UI) +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 端口默认值 + defaultValue: 9999 + # field-param field key + # field-变量字段标识符 + - field: url + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: JMX URL + en-US: JMX URL + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + # param field input placeholder + # 参数输入框提示信息 + placeholder: 'service:jmx:rmi:///jndi/rmi://host:port/jmxrmi' + # field-param field key + # field-变量字段标识符 + - field: username + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 20 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + # field-param field key + # field-变量字段标识符 + - field: password + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 密码 + en-US: Password + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: password + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true +# collect metrics config list +# 采集指标组配置列表 +metrics: + # metrics - basic + # 监控指标组 - basic + - name: basic + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标组调度优先级(0->127)->(优先级高->低) 优先级低的指标组会等优先级高的指标组采集完成后才会被调度, 相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), instance-是否是指标集合唯一标识符字段 + - field: VmName + type: 1 + - field: VmVendor + type: 1 + - field: VmVersion + type: 1 + - field: Uptime + type: 0 + unit: ms + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 用于监控的协议,例: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: jmx + # the config content when protocol is jmx + jmx: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + # jmx mbean object name + # jmx mbean 对象名称 + objectName: java.lang:type=Runtime + url: ^_^url^_^ + + - name: memory_pool + priority: 1 + fields: + - field: name + type: 1 + instance: true + - field: committed + type: 0 + unit: MB + - field: init + type: 0 + unit: MB + - field: max + type: 0 + unit: MB + - field: used + type: 0 + unit: MB + units: + - committed=B->MB + - init=B->MB + - max=B->MB + - used=B->MB + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + # (可选)监控指标别名, 做为中间字段与采集数据字段和指标字段映射转换 + aliasFields: + - Name + - Usage->committed + - Usage->init + - Usage->max + - Usage->used + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # (可选)指标映射转换计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - name=Name + - committed=Usage->committed + - init=Usage->init + - max=Usage->max + - used=Usage->used + protocol: jmx + jmx: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + objectName: java.lang:type=MemoryPool,name=* + url: ^_^url^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-point.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-point.md new file mode 100644 index 00000000000..0f8a84c0c9e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-point.md @@ -0,0 +1,170 @@ +--- +id: extend-point +title: 自定义监控 +sidebar_label: 自定义监控 +--- +> HertzBeat拥有自定义监控能力,您只需配置监控模版YML就能适配一款自定义的监控类型。 +> 目前自定义监控支持[HTTP协议](extend-http),[JDBC协议](extend-jdbc),[SSH协议](extend-ssh),[JMX协议](extend-jmx),[SNMP协议](extend-snmp),后续会支持更多通用协议。 + +### 自定义流程 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- + +### 监控模版YML + +**HertzBeat的设计是一个监控模版对应一个监控类型,所有监控类型都是由监控模版来定义的**。 + +> 监控模版YML定义了 *监控类型的名称(国际化), 配置参数映射, 采集指标信息, 采集协议配置* 等。 + +下面使用样例详细介绍下这监控模版YML的配置用法。 + +样例:自定义一个 `app` 名称为 `example2` 的自定义监控类型,其使用HTTP协议采集指标数据。 + +[监控模版] -> [新增监控类型] -> [右边配置如下监控模版YML] -> [保存并应用] + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 cn-云原生cloud native network-网络监控 +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: example2 +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: 模拟网站监测 + en-US: EXAMPLE WEBSITE +# 监控所需输入参数定义(根据定义渲染页面UI) +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + # field-变量字段标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 默认值 + defaultValue: 80 + # field-param field key + # field-变量字段标识符 + - field: uri + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 相对路径 + en-US: URI + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 200 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # 参数输入框提示信息 + # param field input placeholder + placeholder: 'Website uri path(no ip port) EG:/console' + # field-param field key + # field-变量字段标识符 + - field: ssl + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 启用HTTPS + en-US: HTTPS + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: boolean + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + +metrics: + # metrics - summary, inner monitoring metrics (responseTime - response time, keyword - number of keywords) + # 监控指标组 - summary, 内置监控指标有 (responseTime - 响应时间, keyword - 关键字数量) + - name: summary + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标组调度优先级(0->127)->(优先级高->低) 优先级低的指标组会等优先级高的指标组采集完成后才会被调度, 相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), instance-是否是指标集合唯一标识符字段 + - field: responseTime + type: 0 + unit: ms + - field: keyword + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: ^_^uri^_^ + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: ^_^ssl^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + # http 响应数据解析方式: default-系统规则, jsonPath-jsonPath脚本, website-网站可用性指标监控, prometheus-Prometheus数据规则 + parseType: website + +``` + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-snmp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-snmp.md new file mode 100644 index 00000000000..434ac25a923 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-snmp.md @@ -0,0 +1,209 @@ +--- +id: extend-snmp +title: SNMP协议自定义监控 +sidebar_label: SNMP协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用 SNMP 协议自定义指标监控。 +> SNMP 协议自定义监控可以让我们很方便的通过配置 Mib OID信息 就能监控采集到我们想监控的OID指标 + +### SNMP协议采集流程 +【**对端开启SNMP服务**】->【**HertzBeat直连对端SNMP服务**】->【**根据配置抓取对端OID指标信息**】->【**指标数据提取**】 + +由流程可见,我们自定义一个SNMP协议的监控类型,需要配置SNMP请求参数,配置获取哪些指标,配置查询OID信息。 + +### 数据解析方式 + +通过配置监控模版YML的指标`field`, `aliasFields`, `snmp` 协议下的 `oids`来抓取对端指定的数据并解析映射。 + + + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为 example_windows 的自定义监控类型,其使用 SNMP 协议采集指标数据。 + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring mid-middleware custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务监控 db-数据库监控 mid-中间件 custom-自定义监控 os-操作系统监控 cn-云原生cloud native network-网络监控 +category: os +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: windows +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Windows操作系统 + en-US: OS Windows +# 监控所需输入参数定义(根据定义渲染页面UI) +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + # field-变量字段标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 默认值 + defaultValue: 161 + # field-param field key + # field-变量字段标识符 + - field: version + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: SNMP 版本 + en-US: SNMP Version + # type-param field type(radio mapping the html radio tag) + # type-当type为radio时,前端用radio展示开关 + type: radio + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + # 当type为radio单选框, checkbox复选框时, option表示可选项值列表 {name1:value1,name2:value2} + options: + - label: SNMPv1 + value: 0 + - label: SNMPv2c + value: 1 + # field-param field key + # field-变量字段标识符 + - field: community + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: SNMP 团体字 + en-US: SNMP Community + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 100 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # 参数输入框提示信息 + # param field input placeholder + placeholder: 'Snmp community for v1 v2c' + # field-param field key + # field-变量字段标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,100000]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # hide-是否隐藏此参数将其放入高级设置中 + hide: true + # default value + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标组配置列表 +metrics: + # metrics - system + # 监控指标组 - system + - name: system + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标组调度优先级(0->127)->(优先级高->低) 优先级低的指标组会等优先级高的指标组采集完成后才会被调度, 相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), instance-是否是指标集合唯一标识符字段 + - field: name + type: 1 + - field: descr + type: 1 + - field: uptime + type: 1 + - field: numUsers + type: 0 + - field: services + type: 0 + - field: processes + type: 0 + - field: responseTime + type: 0 + unit: ms + - field: location + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: snmp + # the config content when protocol is snmp + snmp: + # server host: ipv4 ipv6 domain + host: ^_^host^_^ + # server port + port: ^_^port^_^ + # snmp connect timeout + timeout: ^_^timeout^_^ + # snmp community + # snmp 团体字 + community: ^_^community^_^ + # snmp version + version: ^_^version^_^ + # snmp operation: get, walk + operation: get + # metrics oids: metric_name - oid_value + oids: + name: 1.3.6.1.2.1.1.5.0 + descr: 1.3.6.1.2.1.1.1.0 + uptime: 1.3.6.1.2.1.25.1.1.0 + numUsers: 1.3.6.1.2.1.25.1.5.0 + services: 1.3.6.1.2.1.1.7.0 + processes: 1.3.6.1.2.1.25.1.6.0 + location: 1.3.6.1.2.1.1.6.0 +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-ssh.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-ssh.md new file mode 100644 index 00000000000..aaffcd0bcfd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-ssh.md @@ -0,0 +1,207 @@ +--- +id: extend-ssh +title: SSH协议自定义监控 +sidebar_label: SSH协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用SSH协议自定义指标监控。 +> SSH协议自定义监控可以让我们很方便的通过写sh命令脚本就能监控采集到我们想监控的Linux指标 + +### SSH协议采集流程 +【**系统直连Linux**】->【**运行SHELL命令脚本语句**】->【**响应数据解析:oneRow, multiRow**】->【**指标数据提取**】 + +由流程可见,我们自定义一个SSH协议的监控类型,需要配置SSH请求参数,配置获取哪些指标,配置查询脚本语句。 + +### 数据解析方式 +SHELL脚本查询回来的数据字段和我们需要的指标映射,就能获取对应的指标数据,目前映射解析方式有两种:oneRow, multiRow,能满足绝大部分指标需求。 + +#### **oneRow** +> 查询出一列数据, 通过查询返回结果集的字段值(一行一个值)与字段映射 + +例如: +需要查询Linux的指标 hostname-主机名称,uptime-启动时间 +主机名称原始查询命令:`hostname` +启动时间原始查询命令:`uptime | awk -F "," '{print $1}'` +则在hertzbeat对应的这两个指标的查询脚本为(用`;`将其连接到一起): +`hostname; uptime | awk -F "," '{print $1}'` +终端响应的数据为: +``` +tombook +14:00:15 up 72 days +``` +则最后采集到的指标数据一一映射为: +hostname值为 `tombook` +uptime值为 `14:00:15 up 72 days` + +这里指标字段就能和响应数据一一映射为一行采集数据。 + +#### **multiRow** +> 查询多行数据, 通过查询返回结果集的列名称,和查询的指标字段映射 + +例如: +查询的Linux内存相关指标字段:total-内存总量 used-已使用内存 free-空闲内存 buff-cache-缓存大小 available-可用内存 +内存指标原始查询命令为:`free -m`, 控制台响应: +```shell + total used free shared buff/cache available +Mem: 7962 4065 333 1 3562 3593 +Swap: 8191 33 8158 +``` +在hertzbeat中multiRow格式解析需要响应数据列名称和指标值一一映射,则对应的查询SHELL脚本为: +`free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}'` +控制台响应为: +```shell +total used free buff_cache available +7962 4066 331 3564 3592 +``` + +这里指标字段就能和响应数据一一映射为采集数据。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_linux的自定义监控类型,其使用SSH协议采集指标数据。 + + +```yaml +# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 +category: os +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_linux +name: + zh-CN: 模拟LINUX应用类型 + en-US: LINUX EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 22 + placeholder: '请输入端口' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true +# 指标组列表 +metrics: + # 第一个监控指标组 basic + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: basic + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: hostname + type: 1 + instance: true + - field: version + type: 1 + - field: uptime + type: 1 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: (uname -r ; hostname ; uptime | awk -F "," '{print $1}' | sed "s/ //g") | sed ":a;N;s/\n/^/g;ta" | awk -F '^' 'BEGIN{print "version hostname uptime"} {print $1, $2, $3}' + # 响应数据解析方式:oneRow, multiRow + parseType: multiRow + + - name: cpu + priority: 1 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: info + type: 1 + - field: cores + type: 0 + unit: 核数 + - field: interrupt + type: 0 + unit: 个数 + - field: load + type: 1 + - field: context_switch + type: 0 + unit: 个数 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: "LANG=C lscpu | awk -F: '/Model name/ {print $2}';awk '/processor/{core++} END{print core}' /proc/cpuinfo;uptime | sed 's/,/ /g' | awk '{for(i=NF-2;i<=NF;i++)print $i }' | xargs;vmstat 1 1 | awk 'NR==3{print $11}';vmstat 1 1 | awk 'NR==3{print $12}'" + parseType: oneRow + + - name: memory + priority: 2 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: total + type: 0 + unit: Mb + - field: used + type: 0 + unit: Mb + - field: free + type: 0 + unit: Mb + - field: buff_cache + type: 0 + unit: Mb + - field: available + type: 0 + unit: Mb + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}' + parseType: multiRow +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-tutorial.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-tutorial.md new file mode 100644 index 00000000000..3270d6617fb --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/advanced/extend-tutorial.md @@ -0,0 +1,257 @@ +--- +id: extend-tutorial +title: 自定义适配一款基于HTTP协议的新监控类型 +sidebar_label: 教程案例 +--- + +通过此教程我们一步一步描述如何在hertzbeat监控系统下自定义新增适配一款基于http协议的监控类型。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + + +### HTTP协议解析通用响应结构体,获取指标数据 + +> 很多场景我们需要对提供的 HTTP API 接口进行监控,获取接口返回的指标值。这篇文章我们通过http自定义协议来解析我们常见的http接口响应结构,获取返回体中的字段作为指标数据。 + + +``` +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` +如上,通常我们的后台API接口会设计这这样一个通用返回。hertzbeat系统的后台也是如此,我们今天就用hertzbeat的 API 做样例,新增适配一款新的监控类型 **hertzbeat**,监控采集它的系统摘要统计API +`http://localhost:1157/api/summary`, 其响应数据为: + +``` +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**我们这次获取其app下的 `category`,`app`,`status`,`size`,`availableSize`等指标数据。** + + +### 新增配置监控模版YML + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** + +定义我们在页面上需要输入哪些参数,一般的HTTP协议参数主要有ip, port, headers, params, uri, 账户密码等,我们直接复用 `api`监控模版 里面的参数定义内容,删除其中的我们不需要输入的uri参数和keyword关键字等参数即可。 + +定义采集类型是啥,需要用哪种协议采集方式,采集的指标是啥,协议的配置参数等。我们直接复用 `api`监控模版 里面的定义内容,修改为我们当前的监控类型`hertzbeat`配置参数即可,如下:注意⚠️我们这次获取接口响应数据中的`category`,`app`,`status`,`size`,`availableSize`等字段作为指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 cn-云原生cloud native network-网络监控 +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: hertzbeat +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +# Input params define for monitoring(render web ui by the definition) +# 监控所需输入参数定义(根据定义渲染页面UI) +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 端口默认值 + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + # 第一个监控指标组 summary + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: summary + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # collect metrics content + # 指标组中的具体监控指标 + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, instance-if is metrics group, unit-metric unit('%','ms','MB') + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: app + type: 1 + instance: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk, 我们这里使用HTTP协议 + protocol: http + # the config content when protocol is http + # 当protocol为http协议时具体的采集配置 + http: + # http host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # http port + # 端口 + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + # url请求接口路径,我们这里不需要输入传参,写死为 /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + # 请求方式 GET POST PUT DELETE PATCH,写死为 GET + method: GET + # if enabled https, default value is false + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + # http auth + # 认证 + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控,我们这里使用jsonpath来解析响应数据 + parseType: jsonPath + parseScript: '$.data.apps.*' +``` + +**点击保存并应用。我们可以看到系统页面的自定义监控菜单已经多了一个`hertzbeat`监控类型了。** + + +![](/img/docs/advanced/extend-http-example-1.png) + + +### 页面添加对`hertzbeat`监控类型的监控 + +> 我们点击新增 `HertzBeat监控系统`,配置监控IP,端口,采集周期,高级设置里的账户密码等, 点击确定添加监控。 + + +![](/img/docs/advanced/extend-http-example-2.png) + + +![](/img/docs/advanced/extend-http-example-3.png) + +> 过一定时间(取决于采集周期)我们就可以在监控详情看到具体的指标数据和历史图表啦! + + +![](/img/docs/advanced/extend-http-example-4.png) + + + +### 设置阈值告警通知 + +> 接下来我们就可以正常设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + + +---- + +#### 完! + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 `headers,params` 等,我们可以像用postman一样去定义它,可玩性也非常高! + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/activemq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/activemq.md new file mode 100644 index 00000000000..49689137ec7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/activemq.md @@ -0,0 +1,144 @@ +--- +id: activemq +title: 监控 Apache ActiveMQ 消息中间件 +sidebar_label: ActiveMQ消息中间件 +keywords: [开源监控系统, 开源中间件监控, ActiveMQ消息中间件监控] +--- + +> 对 Apache ActiveMQ 消息中间件的运行状态,节点,Topic等相关指标进行监测。 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 ActiveMQ 开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 ActiveMQ 进行指标采集。 + +1. 修改安装目录下的 `conf/activemq.xml` 文件,开启JMX + +> 在 `broker` 标签中添加 `userJmx="true"` 属性 + +```xml + + + +``` + +2. 修改安装目录下的 `bin/env` 文件,配置JMX 端口 IP等 + +将如下原配置信息 +```text +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" +``` +更新为如下配置,⚠️注意修改`本机对外IP` +```text +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.authenticate=false" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=本机对外IP" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" +``` + +3. 重启 ACTIVEMQ 服务,在 HertzBeat 添加对应 ActiveMQ 监控即可,参数使用 JMX 配置的 IP 端口。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| JMX端口 | JMX 对外提供的HTTP端口,默认为 11099。 | +| JMX URL | 可选,自定义 JMX URL 连接 | +| 用户名 | 认证时使用的用户名 | +| 密码 | 认证时使用的密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:broker + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------------------------------------------------------------------| +| BrokerName | 无 | The name of the broker. | +| BrokerVersion | 无 | The version of the broker. | +| Uptime | 无 | Uptime of the broker. | +| UptimeMillis | ms | Uptime of the broker in milliseconds. | +| Persistent | 无 | Messages are synchronized to disk. | +| MemoryPercentUsage | % | Percent of memory limit used. | +| StorePercentUsage | % | Percent of store limit used. | +| TempPercentUsage | % | Percent of temp limit used. | +| CurrentConnectionsCount | 无 | Attribute exposed for management | +| TotalConnectionsCount | 无 | Attribute exposed for management | +| TotalEnqueueCount | 无 | Number of messages that have been sent to the broker. | +| TotalDequeueCount | 无 | Number of messages that have been acknowledged on the broker. | +| TotalConsumerCount | 无 | Number of message consumers subscribed to destinations on the broker. | +| TotalProducerCount | 无 | Number of message producers active on destinations on the broker. | +| TotalMessageCount | 无 | Number of unacknowledged messages on the broker. | +| AverageMessageSize | 无 | Average message size on this broker | +| MaxMessageSize | 无 | Max message size on this broker | +| MinMessageSize | 无 | Min message size on this broker | + +#### 指标集合:topic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-------------------------------------------------------------------------------------------| +| Name | 无 | Name of this destination. | +| MemoryLimit | MB | Memory limit, in bytes, used by undelivered messages before paging to temporary storage. | +| MemoryPercentUsage | 无 | The percentage of the memory limit used | +| ProducerCount | 无 | Number of producers attached to this destination | +| ConsumerCount | 无 | Number of consumers subscribed to this destination. | +| EnqueueCount | 无 | Number of messages that have been sent to the destination. | +| DequeueCount | 无 | Number of messages that has been acknowledged (and removed) from the destination. | +| ForwardCount | 无 | Number of messages that have been forwarded (to a networked broker) from the destination. | +| InFlightCount | 无 | Number of messages that have been dispatched to, but not acknowledged by, consumers. | +| DispatchCount | 无 | Number of messages that has been delivered to consumers, including those not acknowledged | +| ExpiredCount | 无 | Number of messages that have been expired. | +| StoreMessageSize | B | The memory size of all messages in this destination's store. | +| AverageEnqueueTime | ms | Average time a message was held on this destination. | +| MaxEnqueueTime | ms | The longest time a message was held on this destination | +| MinEnqueueTime | ms | The shortest time a message was held on this destination | +| TotalBlockedTime | ms | Total time (ms) messages have been blocked by flow control | +| AverageMessageSize | B | Average message size on this destination | +| MaxMessageSize | B | Max message size on this destination | +| MinMessageSize | B | Min message size on this destination | + + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------| ----------- | ----------- | +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------| ----------- | ----------- | +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_console.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_console.md new file mode 100644 index 00000000000..68cf7339eae --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_console.md @@ -0,0 +1,18 @@ +--- +id: alert_console +title: 告警模板中自定义的控制台地址 +sidebar_label: 告警模板登录台地址 +--- + +> 阈值触发后发送告警信息,通过钉钉/企业微信/飞书机器人通知或者使用邮箱通知的时候,告警内容中有登录控制台的详情链接 + + +### 自定义设置 + +在我们的启动配置文件application.yml中,找到下面的配置 +```yml +alerter: + console-url: #这里就是我们的自定义控制台地址 +``` + +默认值是赫兹跳动的官方控制台地址 \ No newline at end of file diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_dingtalk.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_dingtalk.md new file mode 100644 index 00000000000..aec6342f7d3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_dingtalk.md @@ -0,0 +1,41 @@ +--- +id: alert_dingtalk +title: 告警钉钉机器人通知 +sidebar_label: 告警钉钉机器人通知 +keywords: [告警钉钉机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过钉钉机器人通知到接收人。 + +### 操作步骤 + +1. **【钉钉桌面客户端】-> 【群设置】-> 【智能群助手】-> 【添加新建机器人-选自定义】-> 【设置机器人名称头像】-> 【注意⚠️设置自定义关键字: HertzBeat】 ->【添加成功后复制其WebHook地址】** + +> 注意⚠️ 新增机器人时需在安全设置块需设置其自定义关键字: HertzBeat ,其它安全设置加签或IP段不填写 + +![email](/img/docs/help/alert-notice-8.png) + +2. **【保存机器人的WebHook地址access_token值】** + +> 例如: webHook地址:`https://oapi.dingtalk.com/robot/send?access_token=43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` +> 其机器人access_token值为 `43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + +3. **【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】** + +![email](/img/docs/help/alert-notice-9.png) + +4. ** 配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + + +### 钉钉机器人通知常见问题 + +1. 钉钉群未收到机器人告警通知 +> 请排查在告警中心是否已有触发的告警信息 +> 请排查钉钉机器人是否配置了安全自定义关键字:HertzBeat +> 请排查是否配置正确机器人ACCESS_TOKEN,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_discord.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_discord.md new file mode 100644 index 00000000000..d6c4879a2ba --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_discord.md @@ -0,0 +1,72 @@ +--- +id: alert_discord +title: 告警 Discord 机器人通知 +sidebar_label: 告警 Discord 机器人通知 +keywords: [告警 Discord 机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Discord 机器人通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Discord 创建应用, 应用下创建机器人, 获取机器人 Token + +1. 访问 [https://discord.com/developers/applications](https://discord.com/developers/applications) 创建应用 + +![bot](/img/docs/help/discord-bot-1.png) + +2. 在应用下创建机器人,获取机器人 Token + +![bot](/img/docs/help/discord-bot-2.png) + +![bot](/img/docs/help/discord-bot-3.png) + +3. 授权机器人到聊天服务器 + +> 在 OAuth2 菜单下给此机器人授权,`SCOPES` 范围选 `bot`, `BOT PERMISSIONS` 选发送消息 `Send Messages` + +![bot](/img/docs/help/discord-bot-4.png) + +> 获取到最下方生成的 URL, 浏览器访问此 URL 给机器人正式授权,即设置将机器人加入哪个聊天服务器。 + +4. 查看您的聊天服务器是否已经加入机器人成员 + +![bot](/img/docs/help/discord-bot-5.png) + +### 开启开发者模式,获取频道 Channel ID + +1. 个人设置 -> 高级设置 -> 开启开发者模式 + +![bot](/img/docs/help/discord-bot-6.png) + +2. 获取频道 Channel ID + +> 右键选中您想要发送机器人消息的聊天频道,点击 COPY ID 按钮获取 Channel ID + +![bot](/img/docs/help/discord-bot-7.png) + + +### 在 HertzBeat 新增告警通知人,通知方式为 Discord Bot + +1. **【告警通知】->【新增接收人】 ->【选择 Discord 机器人通知方式】->【设置机器人Token和ChannelId】-> 【确定】** + +![email](/img/docs/help/discord-bot-8.png) + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + +![email](/img/docs/help/alert-notice-policy.png) + + +### Discord 机器人通知常见问题 + +1. Discord 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人Token, ChannelId,是否已配置告警策略关联 +> 请排查机器人是否被 Discord聊天服务器正确赋权 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_email.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_email.md new file mode 100644 index 00000000000..7033f6036d6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_email.md @@ -0,0 +1,38 @@ +--- +id: alert_email +title: 告警邮件通知 +sidebar_label: 告警邮件通知 +keywords: [告警邮件通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过邮件通知到接收人。 + +### 操作步骤 + +1. **【告警通知】->【新增接收人】 ->【选择邮件通知方式】** + +![email](/img/docs/help/alert-notice-1.png) + +2. **【获取验证码】-> 【输入邮箱验证码】-> 【确定】** +![email](/img/docs/help/alert-notice-2.png) + +![email](/img/docs/help/alert-notice-3.png) + +3. ** 配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + + +### 邮件通知常见问题 + +1. 自己内网部署的HertzBeat无法接收到邮件通知 +> HertzBeat需要自己配置邮件服务器,TanCloud无需,请确认是否在application.yml配置了自己的邮件服务器 + +2. 云环境TanCloud无法接收到邮件通知 +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确邮箱,是否已配置告警策略关联 +> 请查询邮箱的垃圾箱里是否把告警邮件拦截 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_enterprise_wechat_app.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_enterprise_wechat_app.md new file mode 100644 index 00000000000..3f1c5a2b9c1 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_enterprise_wechat_app.md @@ -0,0 +1,34 @@ +--- +id: alert_enterprise_wechat_app +title: 企业微信应用告警通知 +sidebar_label: 企业微信应用告警通知 +keywords: [开源告警系统, 开源监控告警系统, 企业微信应用告警通知] +--- + +> 阈值触发后发送告警信息,通过企业微信应用通知到接收人. + +### Operation steps + +1. **【企业微信后台管理】-> 【App管理】-> 【创建一个新的应用】-> 【设置应用信息】->【添加成功后复制应用的AgentId和Secret】** + +![email](/img/docs/help/alert-wechat-1.jpg) + +2. **【告警通知】->【新增接收人】 ->【选择企业微信应用通知方式】->【设置企业ID,企业应用id和应用的secret 】-> 【确定】** + +![email](/img/docs/help/alert-wechat-2.jpg) + +3. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人。** + +![email](/img/docs/help/alert-wechat-3.jpg) + + +### 企业微信应用通知常见问题 + +1. 企业微信应用未收到告警通知. +> 请检查用户是否具有应用程序权限. +> 请检查企业应用程序回调地址设置是否正常. +> 请检查服务器IP是否在企业应用程序白名单上. + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_feishu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_feishu.md new file mode 100644 index 00000000000..448e70de223 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_feishu.md @@ -0,0 +1,34 @@ +--- +id: alert_feishu +title: 告警飞书机器人通知 +sidebar_label: 告警飞书机器人通知 +keywords: [告警飞书机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过飞书机器人通知到接收人。 + +### 操作步骤 + +1. **【飞书客户端】-> 【群设置】-> 【群机器人】-> 【添加新建机器人】-> 【设置机器人名称头像】-> 【添加成功后复制其WebHook地址】** + +2. **【保存机器人的WebHook地址的KEY值】** + +> 例如: webHook地址:`https://open.feishu.cn/open-apis/bot/v2/hook/3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` +> 其机器人KEY值为 `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【告警通知】->【新增接收人】 ->【选择飞书机器人通知方式】->【设置飞书机器人KEY】-> 【确定】** + +4. ** 配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + + +### 飞书机器人通知常见问题 + +1. 飞书群未收到机器人告警通知 +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人KEY,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_slack.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_slack.md new file mode 100644 index 00000000000..f2cc7a76673 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_slack.md @@ -0,0 +1,38 @@ +--- +id: alert_slack +title: 告警 Slack Webhook 通知 +sidebar_label: 告警 Slack Webhook 通知 +keywords: [告警 Slack Webhook 通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Slack Webhook 通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Slack 开启 Webhook, 获取 Webhook URL + +参考官网文档 [Sending messages using Incoming Webhooks](https://api.slack.com/messaging/webhooks) + +### 在 HertzBeat 新增告警通知人,通知方式为 Slack Webhook + +1. **【告警通知】->【新增接收人】 ->【选择 Slack Webhook 通知方式】->【设置 Webhook URL】-> 【确定】** + +![email](/img/docs/help/slack-bot-1.png) + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + +![email](/img/docs/help/alert-notice-policy.png) + + +### Slack 机器人通知常见问题 + +1. Slack 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确 Slack Webhook URL,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_smn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_smn.md new file mode 100644 index 00000000000..73f434a8e8a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_smn.md @@ -0,0 +1,43 @@ +--- +id: alert_smn +title: 华为云SMN通知 +sidebar_label: 告警华为云SMN通知 +keywords: [ 告警华为云SMN通知, 开源告警系统, 开源监控告警系统 ] +--- + +> 阈值触发后发送告警信息,通过华为云SMN通知到接收人。 + +### 操作步骤 + +1. **按照[华为云SMN官方文档](https://support.huaweicloud.com/qs-smn/smn_json.html)开通SMN服务并配置SMN** + +![alert-notice-10](/img/docs/help/alert-notice-10.png) + +2. **保存SMN的主题URN** + +![alert-notice-11](/img/docs/help/alert-notice-11.png) + +3. **按照[华为云签名文档](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html)获取AK、SK和项目ID** + +![alert-notice-12](/img/docs/help/alert-notice-12.png) + +![alert-notice-13](/img/docs/help/alert-notice-13.png) + +4. **【告警通知】->【新增接收人】 ->【选择华为云SMN通知方式】->【设置华为云SMN AK、SK等配置】-> 【确定】** + +![alert-notice-14](/img/docs/help/alert-notice-14.png) + +5. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + +### 华为云SMN通知常见问题 + +1. 华为云SMN群未收到告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否正确配置华为云SMN AK、SK等配置,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_telegram.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_telegram.md new file mode 100644 index 00000000000..2c0d788d9e4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_telegram.md @@ -0,0 +1,68 @@ +--- +id: alert_telegram +title: 告警 Telegram 机器人通知 +sidebar_label: 告警 Telegram 机器人通知 +keywords: [告警 Telegram 通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Telegram 机器人通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Telegram 创建机器人, 获取 Bot Token 和 UserId + +1. 使用 [@BotFather](https://t.me/BotFather) 创建自己的机器人并获取访问令牌`Token` + +![telegram-bot](/img/docs/help/telegram-bot-1.png) + +2. 获取接收人的 `User ID` + +**使用您要通知的接收人账户给刚创建 Bot 账户随便发送一个信息**, +访问 ```https://api.telegram.org/bot/getUpdates``` , **`使用上一步的 Bot Token 替换其中的`**, 响应`Json`数据中第一个`result.message.from.id` 值即为接收人的 `User ID` + +```json +{ + "ok":true, + "result":[ + { + "update_id":632299191, + "message":{ + "from":{ + "id": "User ID" + }, + "chat":{ + }, + "date":1673858065, + "text":"111" + } + } + ] +} +``` + +3. 记录保存我们获得的 `Token` 和 `User Id` + +### 在 HertzBeat 新增告警通知人,通知方式为 Telegram Bot + +1. **【告警通知】->【新增接收人】 ->【选择 Telegram 机器人通知方式】->【设置机器人Token和UserId】-> 【确定】** + +![email](/img/docs/help/telegram-bot-2.png) + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + +![email](/img/docs/help/alert-notice-policy.png) + + +### Telegram 机器人通知常见问题 + +1. Telegram 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人Token, UserId,是否已配置告警策略关联 +> UserId 应为消息接收人的UserId + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold.md new file mode 100644 index 00000000000..42a711c5916 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold.md @@ -0,0 +1,36 @@ +--- +id: alert_threshold +title: 阈值告警配置 +sidebar_label: 阈值告警配置 +--- + +> 对监控指标配置告警阈值(警告告警,严重告警,紧急告警),系统根据阈值配置和采集指标数据计算触发告警。 + +### 操作步骤 + +1. **【告警配置】->【新增阈值】-> 【配置后确定】** + +![threshold](/img/docs/help/alert-threshold-1.png) + +如上图: + +**指标对象**:选择我们需要配置阈值的监控指标对象 例如:网站监控类型下的 -> summary指标集合下的 -> responseTime响应时间指标 +**阈值触发表达式**:根据此表达式来计算判断是否触发阈值,表达式环境变量和操作符见页面提示,例如:设置响应时间大于50触发告警,表达式为 `responseTime > 50`。阈值表达式详细帮助见 [阈值表达式帮助](alert_threshold_expr) +**告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency +**触发次数**:设置触发阈值多少次之后才会真正的触发告警 +**通知模版**:告警触发后发送的通知信息模版,模版环境变量见页面提示,例如:`${app}.${metrics}.${metric}指标的值为${responseTime},大于50触发告警` +**全局默认**: 设置此阈值是否对全局的此类指标都应用有效,默认否。新增阈值后还需将阈值与监控对象关联,这样阈值才会对此监控生效。 +**启用告警**:此告警阈值配置开启生效或关闭 + +2. ** 阈值关联监控⚠️ 【告警配置】-> 【将刚设置的阈值】-> 【配置关联监控】-> 【配置后确定】** + +> ** 注意⚠️ 新增阈值后还需将阈值与监控对象关联(即设置此阈值对哪些监控有效),这样阈值才会对此监控生效 **。 + +![threshold](/img/docs/help/alert-threshold-2.png) + +![threshold](/img/docs/help/alert-threshold-3.png) + +**阈值告警配置完毕,已经被成功触发的告警信息可以在【告警中心】看到。** +**若需要将告警信息邮件,微信,钉钉飞书通知给相关人员,可以在【告警通知】配置。** + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold_expr.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold_expr.md new file mode 100644 index 00000000000..6e4911b843f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_threshold_expr.md @@ -0,0 +1,53 @@ +--- +id: alert_threshold_expr +title: 阈值触发表达式 +sidebar_label: 阈值触发表达式 +--- + +> 在我们配置阈值告警时,需要配置阈值触发表达式,系统根据表达式和监控指标值计算触发是否告警,这里详细介绍下表达式使用。 + +#### 表达式支持的操作符 + +``` +equals(str1,str2) +== +< +<= +> +>= +!= +( ) ++ +- +&& +|| +``` + +丰富的操作符让我们可以很自由的定义表达式。 +注意⚠️ 字符串的相等请用 `equals(str1,str2)` 数字类型的相等判断请用== 或 != + +#### 表达式函数库列表 + +参考: https://www.yuque.com/boyan-avfmj/aviatorscript/ashevw + +#### 支持的环境变量 +> 环境变量即指标值等支持的变量,用于在表达式中,阈值计算判断时会将变量替换成实际值进行计算 + +非固定环境变量:这些变量会根据我们选择的监控指标对象而动态变化,例如我们选择了**网站监控的响应时间指标**,则环境变量就有 `responseTime - 此为响应时间变量` +如果我们想设置**网站监控的响应时间大于400时**触发告警,则表达式为 `responseTime>400` + +固定环境变量(不常用):`instance : 所属行实例值` +此变量主要用于计算多实例时,比如采集到c盘d盘的`usage`(`usage为非固定环境变量`),我们只想设置**c盘的usage大于80**时告警,则表达式为 `equals(instance,"c")&&usage>80` + +#### 表达式设置案例 + +1. 网站监控->响应时间大于等于400ms时触发告警 +`responseTime>=400` +2. API监控->响应时间大于3000ms时触发告警 +`responseTime>3000` +3. 全站监控->URL(instance)路径为 `https://baidu.com/book/3` 的响应时间大于200ms时触发告警 +`equals(instance,"https://baidu.com/book/3")&&responseTime>200` +4. MYSQL监控->status指标组->threads_running(运行线程数)指标大于7时触发告警 +`threads_running>7` + +若遇到问题可以通过交流群ISSUE交流反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_webhook.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_webhook.md new file mode 100644 index 00000000000..f02526bc2a1 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_webhook.md @@ -0,0 +1,65 @@ +--- +id: alert_webhook +title: 告警 Webhook 回调通知 +sidebar_label: 告警 Webhook 回调通知 +keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过post请求方式调用WebHook接口通知到接收人。 + +## 操作步骤 + +1. **【告警通知】->【新增接收人】 ->【选择WebHook通知方式】-> 【设置WebHook回调地址】 -> 【确定】** + +![email](/img/docs/help/alert-notice-5.png) + +2. ** 配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + +### WebHook回调POST请求体BODY内容 + +内容格式:JSON +```json +{ + "id":76456, + "target":"available", + "alertDefineId":232, + "priority":0, + "content":"监控紧急可用性告警: UN_CONNECTABLE", + "tag": { + "monitorId": 3543534545, + "monitorName":"API_poetry.didi.top" + }, + "status":0, + "times":1, + "gmtCreate":"2022-02-25T13:32:13", + "gmtUpdate":"2022-02-25T13:32:13" +} +``` + +| | | +|-----|-----| +| id | integer($int64) title: Alarm record entity primary key index ID 告警记录实体主键索引ID | +| target | string title: Alert target object: monitor availability-available metrics-app.metrics.field 告警目标对象: 监控可用性-available 指标-app.metrics.field | +| alertDefineId integer($int64) title: Alarm definition ID associated with the alarm 告警关联的告警定义ID | +| priority | string($byte) title: Alarm level 0: high-emergency-critical alarm-red 1: medium-critical-critical alarm-orange 2: low-warning-warning alarm-yellow 告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色 | +| content | string title: The actual content of the alarm notification 告警通知实际内容 | +| status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | +| times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | +| firstTriggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | +| lastTriggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 最近告警触发时间(毫秒时间戳) | +| nextEvalInterval | integer($int64) title: Alarm evaluation interval (milliseconds) 告警评估时间间隔(单位毫秒) | +| tags | example: {key1:value1} | +| gmtCreate | string($date-time) title: Record the latest creation time (timestamp in milliseconds) 记录最新创建时间(毫秒时间戳) | +| gmtUpdate |string($date-time) title: 记录最新修改时间(毫秒时间戳) | + +### webhook通知常见问题 + +1. WebHook回调未生效 +> 请查看告警中心是否已经产生此条告警信息 +> 请排查配置的WebHook回调地址是否正确 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_wework.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_wework.md new file mode 100644 index 00000000000..ce73c131d00 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/alert_wework.md @@ -0,0 +1,38 @@ +--- +id: alert_wework +title: 告警企业微信通知 +sidebar_label: 告警企业微信通知 +keywords: [告警企业微信通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过企业微信机器人通知到接收人。 + +### 操作步骤 + +1. **【企业微信端】-> 【群设置】-> 【群机器人】-> 【添加新建机器人】-> 【设置机器人名称头像】-> 【添加成功后复制其WebHook地址】** + +![email](/img/docs/help/alert-notice-6.jpg) + +2. **【保存机器人的WebHook地址的KEY值】** + +> 例如: webHook地址:`https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` +> 其机器人KEY值为 `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【告警通知】->【新增接收人】 ->【选择企业微信机器人通知方式】->【设置企业微信机器人KEY】-> 【确定】** + +![email](/img/docs/help/alert-notice-7.png) + +4. ** 配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + +> ** 注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人 **。 + +![email](/img/docs/help/alert-notice-4.png) + + +### 企业微信机器人通知常见问题 + +1. 企业微信群未收到机器人告警通知 +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人KEY,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/api.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/api.md new file mode 100644 index 00000000000..2f78ce4947d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/api.md @@ -0,0 +1,36 @@ +--- +id: api +title: 监控:HTTP API +sidebar_label: HTTP API +keywords: [开源监控系统, 开源网站监控, HTTP API监控] +--- + +> 调用HTTP API接口,查看接口是否可用,对其响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.cn/console` 网站的相对路径为 `/console`。 | +| 请求方式 | 设置接口调用的请求方式:GET,POST,PUT,DELETE。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 用户名 | 接口Basic认证或Digest认证时使用的用户名 | +| 密码 | 接口Basic认证或Digest认证时使用的密码 | +| Content-Type | 设置携带BODY请求体数据请求时的资源类型 | +| 请求BODY | 设置携带BODY请求体数据,PUT POST请求方式时有效 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| responseTime | ms毫秒 | 网站响应时间 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/centos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/centos.md new file mode 100644 index 00000000000..41d462feb89 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/centos.md @@ -0,0 +1,82 @@ +--- +id: centos +title: 监控:CentOS操作系统监控 +sidebar_label: CentOS操作系统 +keywords: [开源监控系统, 开源操作系统监控, CentOS操作系统监控] +--- + +> 对CentOS操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 系统运行时间 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| info | 无 | CPU型号 | +| cores | 核数 | CPU内核数量 | +| interrupt | 个数 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 个数 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:disk + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| disk_num | 块数 | 磁盘总数 | +| partition_num | 分区数 | 分区总数 | +| block_write | 块数 | 写入磁盘的总块数 | +| block_read | 块数 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:interface + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| interface_name | 无 | 网卡名称 | +| receive_bytes | byte | 入站数据流量(bytes) | +| transmit_bytes | byte | 出站数据流量(bytes) | + +#### 指标集合:disk_free + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dm.md new file mode 100644 index 00000000000..4f17b97f81a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dm.md @@ -0,0 +1,49 @@ +--- +id: dm +title: 监控:达梦数据库监控 +sidebar_label: 达梦数据库 +keywords: [开源监控系统, 开源数据库监控, 达梦数据库监控] +--- + +> 对DM达梦数据库的通用性能指标进行采集监控。支持DM8+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ | ------------------------------------------------------------ | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5236。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ------------ | -------- | ------------------ | +| PORT_NUM | 无 | 数据库暴露服务端口 | +| CTL_PATH | 无 | 控制文件路径 | +| MAX_SESSIONS | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------ | +| status$ | 无 | DM数据库的开闭状态 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | -------- | ---------------------------------------------- | +| dm_sql_thd | 无 | 用于编写 dmsql dmserver 的线程 | +| dm_io_thd | 无 | IO线程,由IO_THR_GROUPS参数控制,默认为2个线程 | +| dm_quit_thd | 无 | 用于执行正常关闭数据库的线程 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/docker.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/docker.md new file mode 100644 index 00000000000..acad6a51a16 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/docker.md @@ -0,0 +1,106 @@ +--- +id: docker +title: 监控:Docker 监控 +sidebar_label: Docker 容器监控 +keywords: [开源监控系统, 开源容器监控, Docker容器监控] +--- + +> 对Docker容器的通用性能指标进行采集监控。 + + +## 监控前操作 + +如果想要监控 `Docker` 中的容器信息,则需要按照一下步骤打开端口,让采集请求获取到对应的信息。 + +**1、编辑docker.server文件:** + +```shell +vi /usr/lib/systemd/system/docker.service +``` + +找到 **[Service]** 节点,修改 ExecStart 属性,增加 `-H tcp://0.0.0.0:2375` + +```shell +ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 +``` + +这样相当于对外开放的是 **2375** 端口,当然也可以根据自己情况修改成其他的。 + +**2、重新加载Docker配置生效:** + +```shell +systemctl daemon-reload +systemctl restart docker +``` + +**注意:记得在服务器中台打开 `2375` 端口号。** + +**3、如果上述方法不行则:** + +在服务器内部打开 `2375` 端口号。 + +```shell +firewall-cmd --zone=public --add-port=2375/tcp --permanent +firewall-cmd --reload +``` + + + + + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ | ------------------------------------------------------------ | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为2375。 | +| 查询超时时间 | 设置获取Docker服务器API接口时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 器名称 | 一般是监控所有运行中的容器信息。 | +| 用户名 | 连接用户名,可选 | +| 密码 | 连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:system + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ------------------ | -------- | -------------------------------------- | +| Name | 无 | 服务器名称 | +| version | 无 | docker本版号 | +| os | 无 | 服务器版本 例如:linux x86_64 | +| root_dir | 无 | docker文件夹目录 例如:/var/lib/docker | +| containers | 无 | 容器总数(在运行+未运行) | +| containers_running | 无 | 运行中的容器数目 | +| containers_paused | 无 | 暂停中的容器数目 | +| images | 无 | 容器景象的总数目。 | +| ncpu | 无 | NCPU | +| mem_total | MB | 占用的内存总大小 | +| system_time | 无 | 系统时间 | + +#### 指标集合:containers + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------- | +| id | 无 | Docker中容器的ID | +| name | 无 | Docker容器中的容器名称 | +| image | 无 | Docker容器使用的镜像 | +| command | 无 | Docker中的默认启动命令 | +| state | 无 | Docker中容器的运行状态 | +| status | 无 | Docker容器中的更新时间 | + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ---------------- | -------- | ---------------------------- | +| name | 无 | Docker容器中的名字 | +| available_memory | MB | Docker容器可以利用的内存大小 | +| used_memory | MB | Docker容器已经使用的内存大小 | +| memory_usage | 无 | Docker容器的内存使用率 | +| cpu_delta | 无 | Docker容器已经使用的CPU数量 | +| number_cpus | 无 | Docker容器可以使用的CPU数量 | +| cpu_usage | 无 | Docker容器CPU使用率 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dynamic_tp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dynamic_tp.md new file mode 100644 index 00000000000..aaa5a6f86cd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/dynamic_tp.md @@ -0,0 +1,102 @@ +--- +id: dynamic_tp +title: 监控:DynamicTp 线程池监控 +sidebar_label: DynamicTp线程池监控 +keywords: [开源监控系统, 开源中间件监控, DynamicTp线程池监控] +--- + +> 对DynamicTp actuator 暴露的线程池性能指标进行采集监控。 + +### 前提 + +1. 集成使用 `DynamicTp` + +`DynamicTp` 是Jvm语言的基于配置中心的轻量级动态线程池,内置监控告警功能,可通过SPI自定义扩展实现。 + +集成使用,请参考文档 [快速接入](https://dynamictp.cn/guide/use/quick-start.html) + +2. 开启SpringBoot Actuator Endpoint 暴露出`DynamicTp`指标接口 + +```yaml +management: + endpoints: + web: + exposure: + include: '*' +``` +测试访问指标接口 `ip:port/actuator/dynamic-tp` 是否有响应json数据如下: + +```json +[ + { + "poolName": "commonExecutor", + "corePoolSize": 1, + "maximumPoolSize": 1, + "queueType": "LinkedBlockingQueue", + "queueCapacity": 2147483647, + "queueSize": 0, + "fair": false, + "queueRemainingCapacity": 2147483647, + "activeCount": 0, + "taskCount": 0, + "completedTaskCount": 0, + "largestPoolSize": 0, + "poolSize": 0, + "waitTaskCount": 0, + "rejectCount": 0, + "rejectHandlerName": null, + "dynamic": false, + "runTimeoutCount": 0, + "queueTimeoutCount": 0 + }, + { + "maxMemory": "4 GB", + "totalMemory": "444 MB", + "freeMemory": "250.34 MB", + "usableMemory": "3.81 GB" + } +] +``` + +3. 在HertzBeat中间件监控下添加DynamicTp监控即可 + + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ |------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 应用服务对外提供的端口,默认为8080。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | + | Base Path | 暴露接口路径前缀,默认 /actuator | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:thread_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|------------------------| +| pool_name | 无 | 线程池名称 | +| core_pool_size | 无 | 核心线程数 | +| maximum_pool_size | 无 | 最大线程数 | +| queue_type | 无 | 任务队列类型 | +| queue_capacity | MB | 任务队列容量 | +| queue_size | 无 | 任务队列当前占用大小 | +| fair | 无 | 队列模式,SynchronousQueue会用到 | +| queue_remaining_capacity | MB | 任务队列剩余大小 | +| active_count | 无 | 活跃线程数 | +| task_count | 无 | 任务总数 | +| completed_task_count | 无 | 已完成任务数 | +| largest_pool_size | 无 | 历史最大线程数 | +| pool_size | 无 | 当前线程数 | +| wait_task_count | 无 | 等待执行任务数 | +| reject_count | 无 | 拒绝任务数 | +| reject_handler_name | 无 | 拒绝策略类型 | +| dynamic | 无 | 是否动态线程池 | +| run_timeout_count | 无 | 运行超时任务数 | +| queue_timeout_count | 无 | 等待超时任务数 | + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/fullsite.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/fullsite.md new file mode 100644 index 00000000000..0fd3c7fda9e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/fullsite.md @@ -0,0 +1,35 @@ +--- +id: fullsite +title: 监控:全站监控 +sidebar_label: 全站监控 +keywords: [开源监控系统, 开源网站监控, SiteMap监控] +--- + +> 对网站的全部页面监测是否可用 +> 往往一个网站有多个不同服务提供的页面,我们通过采集网站暴露出来的网站地图SiteMap来监控全站。 +> 注意⚠️,此监控需您网站支持SiteMap。我们支持XML和TXT格式的SiteMap。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 网站地图 | 网站SiteMap地图地址的相对路径,例如:/sitemap.xml。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| url | 无 | 网页的URL路径 | +| statusCode | 无 | 请求此网页的响应HTTP状态码 | +| responseTime | ms毫秒 | 网站响应时间 | +| errorMsg | 无 | 请求此网站反馈的错误信息 | + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/guide.md new file mode 100644 index 00000000000..7d177cfe868 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/guide.md @@ -0,0 +1,91 @@ +--- +id: guide +title: 帮助中心 +sidebar_label: 帮助入门 +--- + +> 易用友好的实时监控工具,无需Agent,强大自定义监控能力。 +> 使用过程中的帮助文档,辅助信息。 + +## 🔬 监控服务 + +> 定时采集监控对端服务暴露的性能指标,提供可视化界面,处理数据供告警等服务调度。 +> 规划的监控类型:应用服务,数据库,操作系统,云原生,开源中间件 + +### 应用服务监控 + +  👉 [网站监测](website)
+  👉 [HTTP API](api)
+  👉 [PING连通性](ping)
+  👉 [端口可用性](port)
+  👉 [全站监控](fullsite)
+  👉 [SSL证书有效期](ssl_cert)
+  👉 [JVM虚拟机](jvm)
+  👉 [SpringBoot2.0](springboot2)
+ +### 数据库监控 + +  👉 [MYSQL数据库监控](mysql)
+  👉 [MariaDB数据库监控](mariadb)
+  👉 [PostgreSQL数据库监控](postgresql)
+  👉 [SqlServer数据库监控](sqlserver)
+  👉 [Oracle数据库监控](oracle)
+  👉 [达梦数据库监控](dm)
+  👉 [OpenGauss数据库监控](opengauss)
+  👉 [IoTDB数据库监控](iotdb)
+ +### 操作系统监控 + +  👉 [Linux操作系统监控](linux)
+  👉 [Windows操作系统监控](windows)
+  👉 [Ubuntu操作系统监控](ubuntu)
+  👉 [Centos操作系统监控](centos)
+ +### 中间件监控 + +  👉 [Zookeeper](zookeeper)
+  👉 [Kafka](kafka)
+  👉 [Tomcat](tomcat)
+  👉 [ShenYu](shenyu)
+  👉 [DynamicTp](dynamic_tp)
+  👉 [RabbitMQ](rabbitmq)
+  👉 [ActiveMQ](activemq)
+  👉 [Jetty](jetty)
+ +### 云原生监控 + +  👉 [Docker](docker)
+  👉 [Kubernetes](kubernetes)
+ +## 💡 告警服务 + +> 更自由化的阈值告警配置,支持邮箱,短信,webhook,钉钉,企业微信,飞书机器人等告警通知。 +> 告警服务的定位是阈值准确及时触发,告警通知及时可达。 + +### 告警中心 + +> 已触发的告警信息中心,提供告警删除,告警处理,标记未处理,告警级别状态等查询过滤。 + +### 告警配置 + +> 指标阈值配置,提供表达式形式的指标阈值配置,可设置告警级别,触发次数,告警通知模版和是否启用,关联监控等功能。 + +详见 👉 [阈值告警](alert_threshold)
+   👉 [阈值表达式](alert_threshold_expr) + +### 告警通知 + +> 触发告警信息后,除了显示在告警中心列表外,还可以用指定方式(邮件钉钉微信飞书等)通知给指定接收人。 +> 告警通知提供设置不同类型的通知方式,如邮件接收人,企业微信机器人通知,钉钉机器人通知,飞书机器人通知。 +> 接收人设置后需要设置关联的告警通知策略,来配置哪些告警信息发给哪些接收人。 + + + 👉 [配置邮箱通知](alert_email)
+ 👉 [配置 Webhook 通知](alert_webhook)
+ 👉 [配置 Telegram 通知](alert_telegram)
+ 👉 [配置 Discord 通知](alert_discord)
+ 👉 [配置 Slack 通知](alert_slack)
+ 👉 [配置企业微信机器人通知](alert_wework)
+ 👉 [配置钉钉机器人通知](alert_dingtalk)
+ 👉 [配置飞书机器人通知](alert_feishu)
+ 👉 [配置华为云SMN通知](alert_smn)
diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/hadoop.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/hadoop.md new file mode 100644 index 00000000000..487571d6c74 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/hadoop.md @@ -0,0 +1,93 @@ +--- +id: hadoop +title: 监控:Hadoop +sidebar_label: Hadoop +keywords: [开源监控系统, 开源JAVA监控, Hadoop的JVM虚拟机监控] +--- + +> 对Hadoop的JVM虚拟机的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 Hadoop 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对Hadoop中的 JVM 进行指标采集。 + +#### Hadoop应用开启JMX协议步骤 + +应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP + +- 1.进入hadoop-env.sh配置文件,在命令行终端输入以下命令: + +```shell +vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh +``` + +- 2.添加如下参数,`` 为自定义暴露端口号。 + +```shell +export HADOOP_OPTS= "$HADOOP_OPTS +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false " +``` + +- 3.保存并退出,并在 $HADOOP_HOME/sbin 目录下执行 `start-all.sh` 重启服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache (限JDK8及以下) + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------| ----------- | ----------- | +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------| ----------- | ----------- | +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/iotdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/iotdb.md new file mode 100644 index 00000000000..fe1c33ffd0b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/iotdb.md @@ -0,0 +1,120 @@ +--- +id: iotdb +title: 监控 Apache IoTDB 物联网时序数据库 +sidebar_label: IoTDB数据库 +keywords: [开源监控系统, 开源数据库监控, IoTDB数据库监控] +--- + +> 对 Apache IoTDB 物联网时序数据库的运行状态(JVM相关),内存任务集群等相关指标进行监测。 + +## 监控前操作 + +您需要在 IoTDB 开启`metrics`功能,他将提供 prometheus metrics 形式的接口数据。 + +开启`metrics`功能, 参考 [官方文档](https://iotdb.apache.org/zh/UserGuide/V0.13.x/Maintenance-Tools/Metric-Tool.html) + +主要如下步骤: + +1. metric 采集默认是关闭的,需要先到 `conf/iotdb-metric.yml` 中修改参数打开后重启 server + +``` +# 是否启动监控模块,默认为false +enableMetric: true + +# 是否启用操作延迟统计 +enablePerformanceStat: false + +# 数据提供方式,对外部通过jmx和prometheus协议提供metrics的数据, 可选参数:[JMX, PROMETHEUS, IOTDB],IOTDB是默认关闭的。 +metricReporterList: + - JMX + - PROMETHEUS + +# 底层使用的metric架构,可选参数:[MICROMETER, DROPWIZARD] +monitorType: MICROMETER + +# 初始化metric的级别,可选参数: [CORE, IMPORTANT, NORMAL, ALL] +metricLevel: IMPORTANT + +# 预定义的指标集, 可选参数: [JVM, LOGBACK, FILE, PROCESS, SYSTEM] +predefinedMetrics: + - JVM + - FILE +``` + +2. 重启 IoTDB, 打开浏览器或者用curl 访问 http://ip:9091/metrics, 就能看到metric数据了。 + +3. 在 HertzBeat 添加对应 IoTDB 监控即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | IoTDB指标接口对外提供的端口,默认为9091。 | +| 超时时间 | HTTP请求查询超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:cluster_node_status + +| 指标名称 | 指标单位 | 指标帮助描述 | +| --------- |------|-------------------------| +| name | 无 | 节点名称IP | +| status | 无 | 节点状态,1=online 2=offline | + +#### 指标集合:jvm_memory_committed_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| area | 无 | heap内存或nonheap内存 | +| id | 无 | 内存区块 | +| value | MB | 当前向JVM申请的内存大小 | + +#### 指标集合:jvm_memory_used_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|------------------| +| area | 无 | heap内存或nonheap内存 | +| id | 无 | 内存区块 | +| value | MB | JVM已使用内存大小 | + +#### 指标集合:jvm_threads_states_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|------------| +| state | 无 | 线程状态 | +| count | 无 | 线程状态对应线程数量 | + +#### 指标集合:quantity 业务数据 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--|------|----------------| +| name | 无 | 业务名称 timeSeries/storageGroup/device/deviceUsingTemplate | +| type | 无 | 类型 total/normal/template/template | +| value | 无 | 当前时间timeSeries/storageGroup/device/激活了模板的device的数量 | + +#### 指标集合:cache_hit 缓存 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|----------------------------------------------------| +| name | 无 | 缓存名称 chunk/timeSeriesMeta/bloomFilter | +| value | % | chunk/timeSeriesMeta缓存命中率,bloomFilter拦截率 | + +#### 指标集合:queue 任务队列 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|---------------------------------------------------| +| name | 无 | 队列名称 compaction_inner/compaction_cross/flush | +| status | 无 | 状态 running/waiting | +| value | 无 | 当前时间任务数 | + +#### 指标集合:thrift_connections + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|-------------| +| name | 无 | 名称 | +| connection | 无 | thrift当前连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/issue.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/issue.md new file mode 100644 index 00000000000..49577b2a1b7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/issue.md @@ -0,0 +1,61 @@ +--- +id: issue +title: 常见问题 +sidebar_label: 常见问题 +--- + +### 监控常见问题 + +1. ** 页面反馈:monitor.host:监控Host必须是ipv4,ipv6或域名 ** +> 如信息所示,输入的监控Host须是ipv4,ipv6或域名,不能携带协议头,例如协议头http + +2. ** 网站API等监控反馈statusCode:403或401,但对端服务本身无需认证,浏览器直接访问是OK ** +> 请排查是否是被防火墙拦截,如宝塔等默认设置了对请求header中`User-Agent=Apache-HttpClient`的拦截,若被拦截请删除此拦截规则。(v1.0.beat5版本已将user-agent模拟成浏览器此问题不存在) + +3. 安装包部署的hertzbeat下ping连通性监控异常 +安装包安装部署的hertzbeat,对ping连通性监控不可用,但本地直接ping是可用的。 +> 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 +> docker安装默认启用无此问题 + +4. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖服务TDengine时序数据库] +> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - TDengine数据库 +> 安装初始化此数据库参考 [TDengine安装初始化](../start/tdengine-init) + +5. 配置了k8s监控,但是实际监控时间并未按照正确间隔时间执行 +请参考下面几点排查问题: +> 一:首先查看hertzbeat的错误日志,如果出现了'desc: SQL statement too long, check maxSQLLength config',信息 +> 二:需要调整tdengine配置文件,可在服务器创建taos.cfg文件,调整# max length of an SQL : maxSQLLength 654800,然后重启tdengine,需要加入配置文件的挂载 +> 三:如果遇到了重启tdengine失败,需要调整挂载数据文件中的配置,见 .../taosdata/dnode/dnodeEps.json,中dnodeFqdn调整为启动失败的dockerId即可,然后docker restart tdengine +6.配置http api监控,用于进行业务接口探测,确保业务可以用,另外接口有进行token鉴权校验,"Authorization:Bearer eyJhbGciOiJIUzI1....",配置后测试,提示“StatusCode 401”。服务端应用收到的token为"Authorization:Bearer%20eyJhbGciOiJIUzI1....",hertzbeat对空格进行转义为“%20”,服务器没有转义导致鉴权失败,建议转义功能作为可选项。 + + +### Docker部署常见问题 + +1. **MYSQL,TDENGINE和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败** +此问题本质为Docker容器访问宿主机端口连接失败,由于docker默认网络模式为Bridge模式,其通过localhost访问不到宿主机。 +> 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP +> 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` + +2. **按照流程部署,访问 http://ip:1157/ 无界面** +请参考下面几点排查问题: +> 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 +> 二:HertzBeat的配置文件 `application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以 `docker logs hertzbeat` 查看容器日志是否有明显错误,提issue或交流群或社区反馈 + +3. **日志报错TDengine连接或插入SQL失败** +> 一:排查配置的数据库账户密码是否正确,数据库是否创建 +> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +### 安装包部署常见问题 + +1. **按照流程部署,访问 http://ip:1157/ 无界面** + 请参考下面几点排查问题: +> 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 +> 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 + +2. **日志报错TDengine连接或插入SQL失败** +> 一:排查配置的数据库账户密码是否正确,数据库是否创建 +> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jetty.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jetty.md new file mode 100644 index 00000000000..6c7a6692434 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jetty.md @@ -0,0 +1,98 @@ +--- +id: jetty +title: 监控:Jetty应用服务器 +sidebar_label: Jetty应用服务器 +keywords: [开源监控系统, 开源中间件监控, Jetty应用服务器监控] +--- + +> 对Jetty应用服务器的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 JVM 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 JVM 进行指标采集。 + +#### Jetty应用服务器开启JMX协议步骤 + +[参考官方文档](https://www.eclipse.org/jetty/documentation/jetty-10/operations-guide/index.html#og-jmx-remote) + +1. 在 Jetty 启动 JMX JMX-REMOTE 模块 + +```shell +java -jar $JETTY_HOME/start.jar --add-module=jmx +java -jar $JETTY_HOME/start.jar --add-module=jmx-remote +``` +命令执行成功会创建出 `${JETTY_BASE}/start.d/jmx-remote.ini` 配置文件 + +2. 编辑 `${JETTY_BASE}/start.d/jmx-remote.ini` 配置文件,修改 JMX 的 IP 端口等参数。 + +**`localhost` 需修改为对外暴露 IP** + +```text +## The host/address to bind the RMI server to. +# jetty.jmxremote.rmiserverhost=localhost + +## The port the RMI server listens to (0 means a random port is chosen). +# jetty.jmxremote.rmiserverport=1099 + +## The host/address to bind the RMI registry to. +# jetty.jmxremote.rmiregistryhost=localhost + +## The port the RMI registry listens to. +# jetty.jmxremote.rmiregistryport=1099 + +## The host name exported in the RMI stub. +-Djava.rmi.server.hostname=localhost +``` + +3. 重启 Jetty Server 即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------| ----------- | ----------- | +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------| ----------- | ----------- | +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jvm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jvm.md new file mode 100644 index 00000000000..7d28f7db71e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/jvm.md @@ -0,0 +1,84 @@ +--- +id: jvm +title: 监控:JVM虚拟机监控 +sidebar_label: JVM虚拟机 +keywords: [开源监控系统, 开源JAVA监控, JVM虚拟机监控] +--- + +> 对JVM虚拟机的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 JVM 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 JVM 进行指标采集。 + +#### JVM应用开启JMX协议步骤 + +应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP + +参考文档: https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote + +```shell +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache (限JDK8及以下) + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------| ----------- | ----------- | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------| ----------- | ----------- | +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------| ----------- | ----------- | +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kafka.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kafka.md new file mode 100644 index 00000000000..c13c47617fd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kafka.md @@ -0,0 +1,102 @@ +--- +id: kafka +title: 监控:Kafka监控 +sidebar_label: Kafka监控 +keywords: [开源监控系统, 开源消息中间件监控, Kafka监控] +--- + +> 对Kafka的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 Kafka 开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 Kafka 进行指标采集。 + +1. 安装部署 Kafka 服务 + +2. 修改 Kafka 启动脚本 + +修改 Kafka 安装目录下的启动脚本 `/bin/kafka-server-start.sh` +在倒数第二行添加如下内容, ⚠️注意替换您自己的端口和对外 IP 地址 + +```shell +export JMX_PORT=9999; +export KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=ip地址 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"; + +# 这是最后一行本来就存在的 +# exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@" +``` + +3. 重启 Kafka 服务 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置Kafka连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + + +#### 指标集合:server_info + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| Version | 无 | Kafka版本 | +| StartTimeMs | ms | 运行时间 | +| CommitId | 无 | 版本提交ID | + + +#### 指标集合:code_cache + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:active_controller_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| Value | 个 | 活跃监控器数量 | + + + +#### 指标集合:broker_partition_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| Value | 个 | 分区数量 | + +#### 指标集合:broker_leader_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| Value | 个 | 领导者数量 | + + +#### 指标集合:broker_handler_avg_percent 请求处理器空闲率 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| EventType | 无 | 类型 | +| RateUnit | 具体情况具体分析 | 单位 | +| Count | 个 | 数量 | +| OneMinuteRate | % | 一分钟处理率 | +| FiveMinuteRate | % | 五分钟处理率 | +| MeanRate | 无 | 平均处理率 | +| FifteenMinuteRate | 无 | 十五分钟处理率 | + + +> 其他指标见文知意,欢迎贡献一起优化文档。 + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kubernetes.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kubernetes.md new file mode 100644 index 00000000000..9700168e620 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/kubernetes.md @@ -0,0 +1,96 @@ +--- +id: kubernetes +title: 监控:Kubernetes 监控 +sidebar_label: Kubernetes 监控 +keywords: [开源监控系统, 开源Kubernetes监控] +--- + +> 对kubernetes的通用性能指标进行采集监控。 + + +## 监控前操作 + +如果想要监控 `Kubernetes` 中的信息,则需要获取到可访问Api Server的授权TOKEN,让采集请求获取到对应的信息。 + +参考获取token步骤 + +#### 方式一: + +1. 创建service account并绑定默认cluster-admin管理员集群角色 + +```kubectl create serviceaccount dashboard-admin -n kube-system``` + +2. 用户授权 + +```shell +kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin +kubectl -n kube-system get secret | grep dashboard-admin | awk '{print $1}' +kubectl describe secret {secret} -n kube-system +``` +#### 方式二: +``` +kubectl create serviceaccount cluster-admin + +kubectl create clusterrolebinding cluster-admin-manual --clusterrole=cluster-admin --serviceaccount=default:cluster-admin + +kubectl create token --duration=1000h cluster-admin + +``` +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| APiServer端口 | K8s APiServer端口,默认6443 | +| token | 授权Access Token | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:nodes + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ------------------ | -------- |--------| +| node_name | 无 | 节点名称 | +| is_ready | 无 | 节点状态 | +| capacity_cpu | 无 | CPU容量 | +| allocatable_cpu | 无 | 已分配CPU | +| capacity_memory | 无 | 内存容量 | +| allocatable_memory | 无 | 已分配内存 | +| creation_time | 无 | 节点创建时间 | + +#### 指标集合:namespaces + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- |-------------| +| namespace | 无 | namespace名称 | +| status | 无 | 状态 | +| creation_time | 无 | 创建时间 | + +#### 指标集合:pods + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ---------------- | -------- |----------------| +| pod | 无 | pod名称 | +| namespace | 无 | pod所属namespace | +| status | 无 | pod状态 | +| restart | 无 | 重启次数 | +| host_ip | 无 | 所在主机IP | +| pod_ip | 无 | pod ip | +| creation_time | 无 | pod创建时间 | +| start_time | 无 | pod启动时间 | + +#### 指标集合:services + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ---------------- |------|--------------------------------------------------------| +| service | 无 | service名称 | +| namespace | 无 | service所属namespace | +| type | 无 | service类型 ClusterIP NodePort LoadBalancer ExternalName | +| cluster_ip | 无 | cluster ip | +| selector | 无 | tag selector匹配 | +| creation_time | 无 | 创建时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/linux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/linux.md new file mode 100644 index 00000000000..83bb93ee276 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/linux.md @@ -0,0 +1,82 @@ +--- +id: linux +title: 监控:Linux操作系统监控 +sidebar_label: Linux操作系统 +keywords: [开源监控系统, 开源操作系统监控, Linux操作系统监控] +--- + +> 对Linux操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 系统运行时间 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| info | 无 | CPU型号 | +| cores | 核数 | CPU内核数量 | +| interrupt | 个数 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 个数 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:disk + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| disk_num | 块数 | 磁盘总数 | +| partition_num | 分区数 | 分区总数 | +| block_write | 块数 | 写入磁盘的总块数 | +| block_read | 块数 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:interface + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| interface_name | 无 | 网卡名称 | +| receive_bytes | byte | 入站数据流量(bytes) | +| transmit_bytes | byte | 出站数据流量(bytes) | + +#### 指标集合:disk_free + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mariadb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mariadb.md new file mode 100644 index 00000000000..bee07e51493 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mariadb.md @@ -0,0 +1,57 @@ +--- +id: mariadb +title: 监控:MariaDB数据库监控 +sidebar_label: MariaDB数据库 +keywords: [开源监控系统, 开源数据库监控, MariaDB数据库监控] +--- + +> 对MariaDB数据库的通用性能指标进行采集监控。支持MariaDB5+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为3306。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| version | 无 | 数据库版本 | +| port | 无 | 数据库暴露服务端口 | +| datadir | 无 | 数据库存储数据盘地址 | +| max_connections | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| threads_created | 无 | MariaDB已经创建的总连接数 | +| threads_connected | 无 | MariaDB已经连接的连接数 | +| threads_cached | 无 | MariaDB当前缓存的连接数 | +| threads_running | 无 | MariaDB当前活跃的连接数 | + + +#### 指标集合:innodb + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| innodb_data_reads | 无 | innodb平均每秒从文件中读取的次数 | +| innodb_data_writes | 无 | innodb平均每秒从文件中写入的次数 | +| innodb_data_read | KB | innodb平均每秒钟读取的数据量,单位为KB | +| innodb_data_written | KB | innodb平均每秒钟写入的数据量,单位为KB | + + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mysql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mysql.md new file mode 100644 index 00000000000..6fa70d36f8f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/mysql.md @@ -0,0 +1,57 @@ +--- +id: mysql +title: 监控:MYSQL数据库监控 +sidebar_label: MYSQL数据库 +keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] +--- + +> 对MYSQL数据库的通用性能指标进行采集监控。支持MYSQL5+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为3306。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| version | 无 | 数据库版本 | +| port | 无 | 数据库暴露服务端口 | +| datadir | 无 | 数据库存储数据盘地址 | +| max_connections | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| threads_created | 无 | MySql已经创建的总连接数 | +| threads_connected | 无 | MySql已经连接的连接数 | +| threads_cached | 无 | MySql当前缓存的连接数 | +| threads_running | 无 | MySql当前活跃的连接数 | + + +#### 指标集合:innodb + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| innodb_data_reads | 无 | innodb平均每秒从文件中读取的次数 | +| innodb_data_writes | 无 | innodb平均每秒从文件中写入的次数 | +| innodb_data_read | KB | innodb平均每秒钟读取的数据量,单位为KB | +| innodb_data_written | KB | innodb平均每秒钟写入的数据量,单位为KB | + + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/opengauss.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/opengauss.md new file mode 100644 index 00000000000..6fc1a2819f3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/opengauss.md @@ -0,0 +1,58 @@ +--- +id: opengauss +title: 监控:OpenGauss数据库监控 +sidebar_label: OpenGauss数据库 +keywords: [开源监控系统, 开源数据库监控, OpenGauss数据库监控] +--- + +> 对PostgreSQL数据库的通用性能指标进行采集监控。支持PostgreSQL 10+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| name | 无 | 数据库名称,或share-object为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 PostgreSQL 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| running | 连接数 | 当前客户端连接数 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/oracle.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/oracle.md new file mode 100644 index 00000000000..0d91256a137 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/oracle.md @@ -0,0 +1,63 @@ +--- +id: oracle +title: 监控:ORACLE数据库监控 +sidebar_label: ORACLE数据库 +keywords: [开源监控系统, 开源数据库监控, Oracle数据库监控] +--- + +> 对ORACLE数据库的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为1521。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| database_version | 无 | 数据库版本 | +| database_type | 无 | 数据库类型 | +| hostname | 无 | 主机名称 | +| instance_name | 无 | 数据库实例名称 | +| startup_time | 无 | 数据库启动时间 | +| status | 无 | 数据库状态 | + +#### 指标集合:tablespace + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| file_id | 无 | 文件ID | +| file_name | 无 | 文件名称 | +| tablespace_name | 无 | 所属表空间名称 | +| status | 无 | 状态 | +| bytes | MB | 大小 | +| blocks | 无 | 区块数量 | + +#### 指标集合:user_connect + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| username | 无 | 用户名 | +| counts | 个数 | 当前连接数量 | + +#### 指标集合:performance + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| qps | QPS | I/O Requests per Second 每秒IO请求数量 | +| tps | TPS | User Transaction Per Sec 每秒用户事物处理数量 | +| mbps | MBPS | I/O Megabytes per Second 每秒 I/O 兆字节数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ping.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ping.md new file mode 100644 index 00000000000..09f640153ba --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ping.md @@ -0,0 +1,28 @@ +--- +id: ping +title: 监控:PING连通性 +sidebar_label: PING连通性 +keywords: [开源监控系统, 开源网络监控, 网络PING监控] +--- + +> 对对端HOST地址进行PING操作,判断其连通性 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| Ping超时时间 | 设置PING未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| responseTime | ms毫秒 | 网站响应时间 | + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/port.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/port.md new file mode 100644 index 00000000000..628c8912319 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/port.md @@ -0,0 +1,30 @@ +--- +id: port +title: 监控:端口可用性 +sidebar_label: 端口可用性 +keywords: [开源监控系统, 开源网络监控, 端口可用性监控] +--- + +> 判断对端服务暴露端口是否可用,进而判断对端服务是否可用,采集响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 连接超时时间 | 端口连接的等待超时时间,单位毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| responseTime | ms毫秒 | 网站响应时间 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/postgresql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/postgresql.md new file mode 100644 index 00000000000..5a95c3415ef --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/postgresql.md @@ -0,0 +1,58 @@ +--- +id: postgresql +title: 监控:PostgreSQL数据库监控 +sidebar_label: PostgreSQL数据库 +keywords: [开源监控系统, 开源数据库监控, PostgreSQL数据库监控] +--- + +> 对PostgreSQL数据库的通用性能指标进行采集监控。支持PostgreSQL 10+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| name | 无 | 数据库名称,或share-object为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 PostgreSQL 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| running | 连接数 | 当前客户端连接数 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/rabbitmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/rabbitmq.md new file mode 100644 index 00000000000..603b12a3d9e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/rabbitmq.md @@ -0,0 +1,126 @@ +--- +id: rabbitmq +title: 监控 RabbitMQ 消息中间件 +sidebar_label: RabbitMQ消息中间件 +keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间件监控] +--- + +> 对 RabbitMQ 消息中间件的运行状态,节点,队列等相关指标进行监测。 + +### 监控前操作 + +> HertzBeat 使用 RabbitMQ Management 的 Rest Api 对 RabbitMQ 进行指标数据采集。 +> 故需要您的 RabbitMQ 环境开启 Management 插件 + +1. 开启 Management 插件,或使用自开启版本 + +```shell +rabbitmq-plugins enable rabbitmq_management +``` + +2. 浏览器访问 http://ip:15672/ ,默认账户密码 `guest/guest`. 成功登录即开启成功。 + +3. 在 HertzBeat 添加对应 RabbitMQ 监控即可,参数使用 Management 的 IP 端口,默认账户密码。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|----------|---------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | RabbitMQ Management 对外提供的HTTP端口,默认为15672。 | +| 用户名 | 接口Basic认证时使用的用户名 | +| 密码 | 接口Basic认证时使用的密码 | +| 超时时间 | HTTP请求查询超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:overview + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------------------------| +| product_version | 无 | 产品版本 | +| product_name | 无 | 产品名称 | +| rabbitmq_version | 无 | rabbitmq 版本 | +| management_version | 无 | rabbitmq management 插件版本 | +| erlang_version | 无 | erlang 版本 | +| cluster_name | 无 | 集群名称 | +| rates_mode | 无 | rates模式 | + +#### 指标集合:object_totals + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|-----------------| +| channels | 无 | channels的总数量 | +| connections | 无 | connections的总数量 | +| consumers | 无 | consumers的总数量 | +| exchanges | 无 | exchanges的总数量 | +| queues | 无 | queues的总数量 | + +#### 指标集合:nodes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------------------------------| +| name | 无 | The node name | +| type | 无 | The node type | +| running | 无 | Running state | +| os_pid | 无 | Pid in OS | +| mem_limit | MB | Memory usage high watermark | +| mem_used | MB | Total amount of memory used | +| fd_total | 无 | File descriptors available | +| fd_used | 无 | File descriptors used | +| sockets_total | 无 | Sockets available | +| sockets_used | 无 | Sockets used | +| proc_total | 无 | Erlang process limit | +| proc_used | 无 | Erlang processes used | +| disk_free_limit | GB | Free disk space low watermark | +| disk_free | GB | Free disk space | +| gc_num | 无 | GC runs | +| gc_bytes_reclaimed | MB | Bytes reclaimed by GC | +| context_switches | 无 | Context_switches num | +| io_read_count | 无 | 总共读操作的数量 | +| io_read_bytes | KB | 总共读入磁盘数据大小 | +| io_read_avg_time | ms | 读操作平均时间,毫秒为单位 | +| io_write_count | 无 | 磁盘写操作总量 | +| io_write_bytes | KB | 写入磁盘数据总量 | +| io_write_avg_time | ms | 每个磁盘写操作的平均时间,毫秒为单位 | +| io_seek_count | 无 | seek操作总量 | +| io_seek_avg_time | ms | seek操作的平均时间,毫秒单位 | +| io_sync_count | 无 | fsync操作的总量 | +| io_sync_avg_time | ms | fsync操作的平均时间,毫秒为单位 | +| connection_created | 无 | connection created num | +| connection_closed | 无 | connection closed num | +| channel_created | 无 | channel created num | +| channel_closed | 无 | channel closed num | +| queue_declared | 无 | queue declared num | +| queue_created | 无 | queue created num | +| queue_deleted | 无 | queue deleted num | +| connection_closed | 无 | connection closed num | + + +#### 指标集合:queues + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|------|--------------------------------------------------------------------------------------------------------------------------------------| +| name | 无 | The name of the queue with non-ASCII characters escaped as in C. | +| node | 无 | The queue on the node name | +| state | 无 | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| type | 无 | Queue type, one of: quorum, stream, classic. | +| vhost | 无 | vhost path | +| auto_delete | 无 | Whether the queue will be deleted automatically when no longer used | +| policy | 无 | Effective policy name for the queue. | +| consumers | 无 | Number of consumers. | +| memory | B | Bytes of memory allocated by the runtime for the queue, including stack, heap and internal structures. | +| messages_ready | 无 | Number of messages ready to be delivered to clients | +| messages_unacknowledged | 无 | Number of messages delivered to clients but not yet acknowledged | +| messages | 无 | Sum of ready and unacknowledged messages (queue depth) | +| messages_ready_ram | 无 | Number of messages from messages_ready which are resident in ram | +| messages_persistent | 无 | Total number of persistent messages in the queue (will always be 0 for transient queues) | +| message_bytes | B | Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead | +| message_bytes_ready | B | Like message_bytes but counting only those messages ready to be delivered to clients | +| message_bytes_unacknowledged | B | Like message_bytes but counting only those messages delivered to clients but not yet acknowledged | +| message_bytes_ram | B | Like message_bytes but counting only those messages which are currently held in RAM | +| message_bytes_persistent | B | Like message_bytes but counting only those messages which are persistent | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/redis.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/redis.md new file mode 100644 index 00000000000..ca36748e255 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/redis.md @@ -0,0 +1,245 @@ +--- +id: redis +title: 监控:REDIS数据库监控 +sidebar_label: REDIS数据库 +keywords: [开源监控系统, 开源数据库监控, Redis数据库监控] +--- + +> 对REDIS数据库的通用性能指标进行采集监控。支持REDIS1.0+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | redis对外提供的端口,默认为6379,sentinel节点默认26379 | +| 超时时间 | 设置redis info 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| redis_version | 无 | Redis 服务器版本 | +| redis_git_sha1 | 无 | Git SHA1 | +| redis_git_dirty | 无 | Git dirty flag | +| redis_build_id | 无 | redis 构建的id | +| redis_mode | 无 | redis模式(包括standalone, sentinel, cluster) | +| os | 无 | Redis 服务器的宿主操作系统 | +| arch_bits | 无 | 架构(32 或 64 位) | +| multiplexing_api | 无 | Redis使用的事件循环机制| +| atomicvar_api | 无 | Redis使用的原子 API | +| gcc_version | 无 | 用于编译Redis服务器的GCC编译器版本| +| process_id | 无 | 服务器进程的PID | +| process_supervised | 无 | 受监管系统(包括:upstart、systemd、unknown、no) | +| run_id | 无 | 标识Redis服务器的随机值(由Sentinel和Cluster使用) | +| tcp_port | 无 | TCP/IP侦听端口 | +| server_time_usec | 无 | 微秒级精度的基于时间的系统时间| +| uptime_in_seconds | 无 | 自Redis服务器启动后的秒数 | +| uptime_in_days | 无 | 自Redis服务器启动后的天数 | +| hz | 无 | 服务器的当前频率设置,redis相关定时任务的执行频率(如清除过期key,关闭超时客户端) | +| configured_hz | 无 | 服务器配置的频率设置 | +| lru_clock | 无 | 时钟每分钟递增,用于LRU管理| +| executable | 无 | 服务器可执行文件的路径 | +| config_file | 无 | 配置文件的路径 | +| io_threads_active | 无 | 指示I/O线程是否处于活动状态的标志| +| shutdown_in_milliseconds | 无 | 复制副本在完成关闭序列之前赶上复制的最长剩余时间。此字段仅在停机期间出现。| + + +#### 指标集合:clients + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| connected_clients | 无 | 客户端连接数(不包括来自副本的连接) | +| cluster_connections | 无 | 群集总线使用的套接字数量的近似值| +| maxclients | 无 | maxclients配置指令的值。这是connected_clients、connected_slave和cluster_connections之和的上限。| +| client_recent_max_input_buffer | byte | 当前客户端连接中最大的输入缓冲区 | +| client_recent_max_output_buffer | byte | 当前客户端连接中最大的输出缓冲区 | +| blocked_clients | 无 | 阻塞呼叫挂起的客户端数(BLPOP、BRPOP、BRPOPLPUSH、BLMOVE、BZPOPMIN、BZPOPMAX) | +| tracking_clients | 无 | 正在跟踪的客户端数(CLIENT TRACKING)| +| clients_in_timeout_table | 无 | 客户端超时表中的客户端数 | + + +#### 指标集合:memory + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| used_memory | byte | Redis使用其分配器(标准libc、jemalloc或tcmalloc等替代分配器)分配的总字节数 | +| used_memory_human | GB/MB/KB | 上一个值的人类可读表示 | +| used_memory_rss | byte | 操作系统看到的Redis分配的字节数(也称为驻留集大小)。这是top(1)和ps(1)等工具报告的数字| +| used_memory_rss_human | GB/MB/KB | 上一个值的人类可读值| +| used_memory_peak | byte | Redis消耗的峰值内存(字节)| +| used_memory_peak_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak_perc | 无 | used_memory_peak 与used_memory百分比 | +| used_memory_overhead | byte | 服务器分配用于管理其内部数据结构的所有开销的字节总和| +| used_memory_startup | byte | Redis在启动时消耗的初始内存量(字节)| +| used_memory_dataset | byte | 数据集的字节大小(used_memory - used_memory_overhead) | +| used_memory_dataset_perc | 无 | 已用内存数据集占净内存使用量的百分比(used_memory_dataset / (used_memory - used_memory_startup)) | +| allocator_allocated | byte| 从分配器分配的总字节数,包括内部碎片。通常与使用的内存相同| +| allocator_active | byte | 分配器活动页中的总字节数,包括外部碎片| +| allocator_resident | byte | 分配器中驻留的总字节数(RSS),包括可释放到操作系统的页面(通过MEMORY PURGE或仅等待) | +| total_system_memory | byte | Redis主机的内存总量 | +| total_system_memory_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_lua | byte | Lua引擎使用的字节数 | +| used_memory_lua_human | KB | 上一个值的人类可读值 | +| used_memory_scripts | byte | 缓存Lua脚本使用的字节数 | +| used_memory_scripts_human | GB/MB/KB | 上一值的人类可读值 | +| number_of_cached_scripts | 无 |缓存的lua脚本数量 | +| maxmemory | byte | maxmemory配置指令的值| +| maxmemory_human | GB/MB/KB | 上一个值的人类可读值 | +| maxmemory_policy | 无 | 当达到maxmemory时的淘汰策略 | +| allocator_frag_ratio | 无 | allocator_active 和 allocator_allocated之间的比率这是真实(外部)碎片度量(不是mem_fragmentation_ratio) | +| allocator_frag_bytes | byte | allocator_active 和 allocator_allocated 之间的差值。 | +| allocator_rss_ratio | | 从操作系统角度看, 内存分配器碎片比例 | +| allocator_rss_bytes | byte | allocator_resident 和 allocator_active之间的差值 | +| rss_overhead_ratio | 无 | used_memory_rss和allocator_resident之间的比率,这包括与分配器或堆无关的RSS开销 | +| rss_overhead_bytes | byte | used_memory_rss和allocator_resident之间的增量 | +| mem_fragmentation_ratio | 无 | used_memory_rss和used_memory之间的比率,注意,这不仅包括碎片,还包括其他进程开销(请参阅allocator_* metrics),以及代码、共享库、堆栈等开销。 | +| mem_fragmentation_bytes | byte | used_memory_rss和used_memory之间的增量。注意,当总碎片字节较低(几兆字节)时,高比率(例如1.5及以上)不是问题的表现 | +| mem_not_counted_for_evict | byte | 不应驱逐的内存大小,以字节为单位。这基本上是瞬时复制和AOF缓冲区。| +| mem_replication_backlog | byte | 复制backlog的内存大小, 以字节为单位 | +| mem_clients_slaves | 无 | 副本客户端使用的内存-从Redis 7.0开始,副本缓冲区与复制积压工作共享内存,因此当副本不触发内存使用增加时,此字段可以显示0。 | +| mem_clients_normal | 无 | 普通客户端使用的内存 | +| mem_aof_buffer | 无 | 用于AOF和AOF重写缓冲区的临时大小 | +| mem_allocator | 无 | 内存分配器,在编译时选择。 | +| active_defrag_running | 无 | 启用activedefrag时,这表示碎片整理当前是否处于活动状态,以及它打算使用的CPU百分比。 | +| lazyfree_pending_objects | 无 | 等待释放的对象数(使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHOLL)| +| lazyfreed_objects | 无 | 已延迟释放的对象数。| + + +#### 指标集合:persistence + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| loading | 无 | 服务器是否正在进行持久化 0 - 否 1 -是| +| current_cow_size | byte | 运行子fork时写入时复制内存的大小(以字节为单位) | +| current_cow_size_age | second | current_cow_size值的年龄(以秒为单位) | +| current_fork_perc | 无 | 当前fork进程的百分比,对于AOF和RDB的fork,它是current_save_keys_processed占current_save_keys_total的百分比| +| current_save_keys_processed | 无 | 当前保存操作处理的key的数量 | +| current_save_keys_total | 无 | 当前保存操作开始时的key的数量 | +| rdb_changes_since_last_save | 无 | 离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化 | +| rdb_bgsave_in_progress | 无 | 服务器是否正在创建rdb文件 0 - 否 1 - 是 | +| rdb_last_save_time | second | 最近一次创建rdb文件的时间戳,单位秒 | +| rdb_last_bgsave_status | 无 | 最近一次rdb持久化是否成功 ok 成功| +| rdb_last_bgsave_time_sec | second | 最近一次成功生成rdb文件耗时秒数 | +| rdb_current_bgsave_time_sec | 无 | 如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数 | +| rdb_last_cow_size | 无 | RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| aof_enabled | 无 | 是否开启了AOF 0 - 否 1 - 是 | +| aof_rewrite_in_progress | 无 | 标识aof的rewrite操作是否在进行中 0 - 否 1- 是 | +| aof_rewrite_scheduled | 无 | rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite| +| aof_last_rewrite_time_sec | 无 | 最近一次aof rewrite耗费的时长 | +| aof_current_rewrite_time_sec | second | 如果rewrite操作正在进行,则记录所使用的时间,单位秒 | +| aof_last_bgrewrite_status | 无 | 上次 bgrewrite aof 操作的状态 ok 成功 | +| aof_last_write_status | 无 | 上次aof写入状态 | +| aof_last_cow_size | 无 | AOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| module_fork_in_progress | 无 | 指示fork模块正在进行的标志 | +| module_fork_last_cow_size | 无 | 上一次fork操作期间写入时复制内存的字节大小 | + + +#### 指标集合:stats + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| total_connections_received | 无 | 服务器接受的连接总数 | +| total_commands_processed | 无 | 服务器处理的命令总数 | +| instantaneous_ops_per_sec | 无 | 每秒处理的命令数 | +| total_net_input_bytes | byte | 从网络读取的字节总数 | +| total_net_output_bytes | byte | 写入网络的总字节数 | +| instantaneous_input_kbps | KB/S | 网络每秒的读取速率(KB/秒) | +| instantaneous_output_kbps | KB/S | 网络每秒的写入速率(KB/秒) | +| rejected_connections | 无 | 由于maxclients限制而拒绝的连接数| +| sync_full | 无 | 具有副本的完整重新同步数 | +| sync_partial_ok | 无 | 接受的部分重新同步请求数 | +| sync_partial_err | 无 | 被拒绝的部分重新同步请求数 | +| expired_keys | 无 | 过期的key总数 | +| expired_stale_perc | 无 | 可能过期key的百分比 | +| expired_time_cap_reached_count | 无 | 活动过期周期提前停止的次数 | +| expire_cycle_cpu_milliseconds | 无 | 活动到期周期所花费的累计时间 | +| evicted_keys | 无 | 由于最大内存限制而收回key的数量 | +| keyspace_hits | 无 | 在主dict 中成功查找key的次数 | +| keyspace_misses | 无 | 在主dict 中未查到key的次数 | +| pubsub_channels | 无 | 客户端使用 pub/sub 频道的总和 | +| pubsub_patterns | 无 | 客户端使用 pub/sub 模式的全局数量 | +| latest_fork_usec | 无 | 最后一次fork操作的持续时间(以微秒为单位) | +| total_forks | 无 | 自服务器启动以来的fork操作总数| +| migrate_cached_sockets | 无 | 为MIGRATE目的打开的socket数量 | +| slave_expires_tracked_keys | 无 | trace key 到期的数量(仅适用于可写副本) | +| active_defrag_hits | 无 | 主动碎片整理命中次数 | +| active_defrag_misses | 无 | 主动碎片整理未命中次数 | +| active_defrag_key_hits | 无 | 主动碎片整理key命中次数 | +| active_defrag_key_misses | 无 | 主动碎片整理key未命中次数| +| tracking_total_keys | 无 | key 查询的总数| +| tracking_total_items | 无 | item查询的总数 | +| tracking_total_prefixes | 无 | 前缀查询的总数 | +| unexpected_error_replies | 无 | 意外错误回复数,即AOF加载或复制中的错误类型 | +| total_error_replies | 无 | 发出的错误回复总数,即被拒绝的命令(命令执行之前的错误)和失败的命令(在命令执行过程中的错误)的总和 | +| dump_payload_sanitizations | 无 | 参考sanitize-dump-payload配置 | +| total_reads_processed | 无 | 正在读取的请求数 | +| total_writes_processed | 无 | 正在写入的请求数 | +| io_threaded_reads_processed | 无 | 正在读取的线程数| +| io_threaded_writes_processed | 无 | 正在写入的线程数 | + + +#### 指标集合:replication + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| role | 无 | 节点角色 master 主节点 slave 从节点 | +| connected_slaves | 无 | 连接的从节点数 | +| master_failover_state | 无 | 正在进行的故障切换的状态(如果有) | +| master_replid | 无 | 实例启动的随机字符串| +| master_replid2 | 无 | 故障切换后用于PSYNC的辅助复制ID| +| master_repl_offset | 无 | 主从同步偏移量 | +| second_repl_offset | 无 | 接受从服务ID的最大偏移量| +| repl_backlog_active | 无 | 表示从服务挤压处于活动状态 | +| repl_backlog_size | byte | 从服务积压缓冲区的总大小(字节) | +| repl_backlog_first_byte_offset | 无 | 复制缓冲区里偏移量的大小 | +| repl_backlog_histlen | 无 | 此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| used_cpu_sys | 无 | Redis主进程在内核态所占用CPU时钟总和| +| used_cpu_user | 无 | Redis主进程在用户态所占用CPU时钟总和| +| used_cpu_sys_children | 无 | Redis子进程在内核态所占用CPU时钟总和| +| used_cpu_user_children | 无 | Redis子进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_main_thread | 无 | Redis服务器主线程消耗的内核CPU| +| used_cpu_user_main_thread | 无 | Redis服务器主线程消耗的用户CPU | + +#### 指标集合:errorstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| errorstat_ERR | 无 | 错误累计出现的次数 | +| errorstat_MISCONF | 无 | | + +#### 指标集合:cluster + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| cluster_enabled | 无 | 集群是否开启 0 - 否 1 - 是| + + +#### 指标集合:commandstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| cmdstat_set | 无 | set命令的统计信息,calls: 累计调用该命令的次数;usec: 调用该命令的累计耗时,单位微秒;usec_per_call: 调用该命令的平均耗时;rejected_call: 拒绝执行的次数;failed_calls: 调用失败的次数| +| cmdstat_get | 无 | get命令的统计信息 | +| cmdstat_setnx | 无 | setnx命令的统计信息 | +| cmdstat_hset | 无 | hset命令的统计信息 | +| cmdstat_hget | 无 | hget命令的统计信息 | +| cmdstat_lpush | 无 | lpush命令的统计信息 | +| cmdstat_rpush | 无 | rpush命令的统计信息 | +| cmdstat_lpop | 无 | lpop命令的统计信息 | +| cmdstat_rpop | 无 | rpop命令的统计信息 | +| cmdstat_llen | 无 | llen命令的统计信息 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/shenyu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/shenyu.md new file mode 100644 index 00000000000..71ffa94819e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/shenyu.md @@ -0,0 +1,131 @@ +--- +id: shenyu +title: 监控 Apache ShenYu API网关 +sidebar_label: ShenYu网关监控 +keywords: [开源监控系统, 开源消息中间件监控, ShenYu网关监控监控] +--- + +> 对 ShenYu 网关的运行状态(JVM相关),请求响应等相关指标进行监测。 + +## 监控前操作 + +您需要在 ShenYu 网关开启`metrics`插件,暴露对应的 prometheus metrics 接口。 + +开启插件, 参考 [官方文档](https://shenyu.apache.org/zh/docs/plugin-center/observability/metrics-plugin) + +主要如下两步骤: + +1. 在网关的 pom.xml 文件中添加 metrics 的依赖。 + +```xml + + org.apache.shenyu + shenyu-spring-boot-starter-plugin-metrics + ${project.version} + +``` + +2. 在网关的配置yaml文件中编辑如下内容: + +```yaml +shenyu: + metrics: + enabled: true #设置为 true 表示开启 + name : prometheus + host: 127.0.0.1 #暴露的ip + port: 8090 #暴露的端口 + jmxConfig: #jmx配置 + props: + jvm_enabled: true #开启jvm的监控指标 +``` + +最后重启访问网关指标接口 `http://ip:8090` 响应 prometheus 格式数据即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网关指标接口对外提供的端口,默认为8090。 | +| 超时时间 | HTTP请求响应超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:shenyu_request_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|-------------------| +| value | 无 | 收集ShenYu网关的所有请求数量 | + +#### 指标集合:shenyu_request_throw_created + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|--------------------| +| value | 无 | 收集ShenYu网关的异常请求数量 | + +#### 指标集合:process_cpu_seconds_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|------------------| +| value | 无 | 用户和系统CPU总计所用的秒数 | + +#### 指标集合:process_open_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|--------------| +| value | 无 | 打开的文件描述符的数量 | + +#### 指标集合:process_max_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|----------------| +| value | 无 | 打开的文件描述符的最大数量 | + +#### 指标集合:jvm_info + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|-----------| +| runtime | 无 | JVM 版本信息 | +| vendor | 无 | JVM 版本信息 | +| version | 无 | JVM 版本信息 | + +#### 指标集合:jvm_memory_bytes_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|------------------| +| area | 无 | JVM 内存区域 | +| value | MB | 给定 JVM 内存区域的已用大小 | + +#### 指标集合:jvm_memory_pool_bytes_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|-----------------| +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的已用大小 | + +#### 指标集合:jvm_memory_pool_bytes_committed + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|------------------| +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的已提交大小 | + +#### 指标集合:jvm_memory_pool_bytes_max + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------| ----------- | +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的最大大小 | + +#### 指标集合:jvm_threads_state + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|-------------| +| state | 无 | 线程状态 | +| value | 无 | 对应线程状态的线程数量 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/springboot2.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/springboot2.md new file mode 100644 index 00000000000..dc269c2e593 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/springboot2.md @@ -0,0 +1,78 @@ +--- +id: springboot2 +title: 监控:SpringBoot2.0 监控 +sidebar_label: SpringBoot2.0 监控 +keywords: [开源监控系统, 开源消息中间件监控, SpringBoot2.0 监控] +--- + +> 对SpringBoot2.0 actuator 暴露的通用性能指标进行采集监控。 + + +## 监控前操作 + +如果想要通过此监控类型监控 `SpringBoot` 中的信息,则需要您的SpringBoot应用集成并开启SpringBoot Actuator。 + +**1、添加POM.XML依赖:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` +**2、修改YML配置暴露指标接口:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: on +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ |------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 应用服务对外提供的端口,默认为8080。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| Base Path | 暴露接口路径前缀,默认 /actuator | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:health + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ------------------ | -------- |--------------------------------| +| status | 无 | 服务健康状态: UP,Down | + +#### 指标集合:environment + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------| -------- |----------------------------| +| profile | 无 | 应用运行profile: prod,dev,test | +| port | 无 | 应用暴露端口 | +| os | 无 | 运行所在操作系统 | +| os_arch | 无 | 运行所在操作系统架构 | +| jdk_vendor | 无 | jdk vendor | +| jvm_version | 无 | jvm version | + +#### 指标集合:threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ---------------- |------|--------------------| +| state | 无 | 线程状态 | +| number | 无 | 此线程状态对应的线程数量 | + +#### 指标集合:memory_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|------------| +| space | 无 | 内存空间名称 | +| mem_used | MB | 此空间占用内存大小 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/sqlserver.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/sqlserver.md new file mode 100644 index 00000000000..925123e4a6c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/sqlserver.md @@ -0,0 +1,76 @@ +--- +id: sqlserver +title: 监控:SqlServer数据库监控 +sidebar_label: SqlServer数据库 +keywords: [开源监控系统, 开源数据库监控, SqlServer数据库监控] +--- + +> 对SqlServer数据库的通用性能指标进行采集监控。支持SqlServer 2017+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为1433。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| machine_name | 无 | 运行服务器实例的 Windows 计算机名称 | +| server_name | 无 | 与Windows实例关联的服务器和实例信息SQL Server | +| version | 无 | 实例的版本,SQL Server,格式为"major.minor.build.revision" | +| edition | 无 | 已安装的 实例的产品SQL Server版本 | +| start_time | 无 | 数据库启动时间 | + +#### 指标集合:performance_counters + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| database_pages | 无 | Database pages, 已获得的页面数(缓冲池) | +| target_pages | 无 | Target pages, 缓冲池必须的理想页面数 | +| page_life_expectancy | s,秒 | Page life expectancy, 数据页在缓冲池中驻留的时间,这个时间一般会大于 300 | +| buffer_cache_hit_ratio | % | Buffer cache hit ratio, 数据库缓冲池高速缓冲命中率,被请求的数据在缓冲池中被找到的概率,一般会大于 80% 才算正常,否则可能是缓冲池容量太小 | +| checkpoint_pages_sec | 无 | Checkpoint pages/sec, 检查点每秒写入磁盘的脏页个数,如果数据过高,证明缺少内存容量 | +| page_reads_sec | 无 | Page reads/sec, 缓存池中每秒读的页数 | +| page_writes_sec | 无 | Page writes/sec, 缓存池中每秒写的页数 | + + +#### 指标集合:connection + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| user_connection | 无 | 已连接的会话数 | + + +### 常见问题 + +1. SSL连接问题修复 + +jdk版本:jdk11 +问题描述:SQL Server2019使用SA用户连接报错 +错误信息: +```text +The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:xxxxxxxxxxxxxxxxx +``` +问题截图: +![issue](https://user-images.githubusercontent.com/38679717/206621658-c0741d48-673d-45ff-9a3b-47d113064c12.png) + +解决方案: +添加`SqlServer`监控时使用高级设置,自定义JDBC URL,拼接的jdbc url后面加上参数配置,```;encrypt=true;trustServerCertificate=true;```这个参数true表示无条件信任server端返回的任何根证书。 + +样例:```jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo;encrypt=true;trustServerCertificate=true;``` + +参考文档:[microsoft pkix-path-building-failed-unable-to-find-valid-certification](https://techcommunity.microsoft.com/t5/azure-database-support-blog/pkix-path-building-failed-unable-to-find-valid-certification/ba-p/2591304) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ssl_cert.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ssl_cert.md new file mode 100644 index 00000000000..8b6c352b7ed --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ssl_cert.md @@ -0,0 +1,33 @@ +--- +id: ssl_cert +title: 监控:SSL证书监控 +sidebar_label: SSL证书监控 +keywords: [开源监控系统, 开源网站监控, SSL证书监控监控] +--- + +> 对网站的SSL证书过期时间,响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.cn/console` 网站的相对路径为 `/console`。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:certificate + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- |------|----------| +| subject | 无 | 证书名称 | +| expired | 无 | 是否过期 | +| start_time | 无 | 有效期开始时间 | +| start_timestamp | ms毫秒 | 有效期开始时间戳 | +| end_time | 无 | 过期时间 | +| end_timestamp | ms毫秒 | 过期时间戳 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/tomcat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/tomcat.md new file mode 100644 index 00000000000..1c0554ff57f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/tomcat.md @@ -0,0 +1,77 @@ +--- +id: tomcat +title: 监控:Tomcat监控 +sidebar_label: Tomcat监控 +keywords: [开源监控系统, 开源网站监控, Tomcat监控] +--- + +> 对Tomcat的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置Tomcat连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | + +### Tomcat开启JMX协议步骤 + +1. 搭建好tomcat后,进入tomcat下的bin目录,修改catalina.sh文件 注意⚠️替换IP地址 + +2. vim catalina.sh + +```aidl +CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.1.1.52 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +``` + +参考: https://blog.csdn.net/weixin_41924764/article/details/108694239 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ubuntu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ubuntu.md new file mode 100644 index 00000000000..7d096154a2a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/ubuntu.md @@ -0,0 +1,82 @@ +--- +id: ubuntu +title: 监控:Ubuntu操作系统监控 +sidebar_label: Ubuntu操作系统 +keywords: [开源监控系统, 开源操作系统监控, Ubuntu监控] +--- + +> 对Ubuntu操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 系统运行时间 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| info | 无 | CPU型号 | +| cores | 核数 | CPU内核数量 | +| interrupt | 个数 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 个数 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:disk + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| disk_num | 块数 | 磁盘总数 | +| partition_num | 分区数 | 分区总数 | +| block_write | 块数 | 写入磁盘的总块数 | +| block_read | 块数 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:interface + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| interface_name | 无 | 网卡名称 | +| receive_bytes | byte | 入站数据流量(bytes) | +| transmit_bytes | byte | 出站数据流量(bytes) | + +#### 指标集合:disk_free + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/website.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/website.md new file mode 100644 index 00000000000..4ec9eba4ab5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/website.md @@ -0,0 +1,30 @@ +--- +id: website +title: 监控:网站监测 +sidebar_label: 网站监测 +keywords: [开源监控系统, 开源网站监控] +--- + +> 对网站是否可用,响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.cn/console` 网站的相对路径为 `/console`。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| responseTime | ms毫秒 | 网站响应时间 | + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/windows.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/windows.md new file mode 100644 index 00000000000..f67bc6e868f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/windows.md @@ -0,0 +1,43 @@ +--- +id: windows +title: 监控:Windows操作系统监控 +sidebar_label: Windows操作系统 +keywords: [开源监控系统, 开源操作系统监控, Windows操作系统监控] +--- + +> 通过SNMP协议对Windows操作系统的通用性能指标进行采集监控。 +> 注意⚠️ Windows服务器需开启SNMP服务 + +参考资料: +[什么是SNMP协议1](https://www.cnblogs.com/xdp-gacl/p/3978825.html) +[什么是SNMP协议2](https://www.auvik.com/franklyit/blog/network-basics-what-is-snmp/) +[Win配置SNMP英文](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-snmp-service) +[Win配置SNMP中文](https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-snmp-service) + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Windows SNMP服务对外提供的端口,默认为 161。 | +| SNMP 版本 | SNMP协议版本 V1 V2c V3 | +| SNMP 团体字 | SNMP 协议团体名(Community Name),用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。类似于密码,默认值为 public | +| 超时时间 | 协议连接超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:system + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| name | 无 | 主机名称 | +| descr | 无 | 操作系统描述 | +| uptime | 无 | 系统运行时间 | +| numUsers | 个数 | 当前用户数 | +| services | 个数 | 当前服务数量 | +| processes | 个数 | 当前进程数量 | +| responseTime | ms | 采集响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/zookeeper.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/zookeeper.md new file mode 100644 index 00000000000..775331568df --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/help/zookeeper.md @@ -0,0 +1,100 @@ +--- +id: zookeeper +title: 监控:Zookeeper监控 +sidebar_label: Zookeeper监控 +keywords: [开源监控系统, Zookeeper监控监控] +--- + +> 对Zookeeper的通用性能指标进行采集监控 + +### 监控前操作 + +> 监控 zookeeper 目前的实现方案使用的是 zookeeper 提供的四字命令 + netcat 来收集指标数据 +> 需要用户自己将zookeeper的四字命令加入白名单 + +1. 加白名单步骤 + +> 1.找到我们 zookeeper 的配置文件,一般是 `zoo.cfg` +> +> 2.配置文件中加入以下命令 + +```shell +# 将需要的命令添加到白名单中 +4lw.commands.whitelist=stat, ruok, conf, isro + +# 将所有命令添加到白名单中 +4lw.commands.whitelist=* +``` +> 3.重启服务 + +```shell +zkServer.sh restart +``` + +2. netcat 协议 + +目前实现方案需要我们部署zookeeper的linux服务器,安装netcat的命令环境 + +> netcat安装步骤 +```shell +yum install -y nc +``` + +如果终端显示以下信息则说明安装成功 +```shell +Complete! +``` + + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Zookeeper的Linux服务器SSH端口。 | +| 查询超时时间 | 设置Zookeeper连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | Zookeeper所在Linux连接用户名 | +| 密码 | Zookeeper所在Linux连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:conf + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| clientPort | 无 | 端口 | +| dataDir | 无 | 数据快照文件目录,默认10万次操作生成一次快照 | +| dataDirSize | kb | 数据快照文件大小 | +| dataLogDir | 无 | 事务日志文件目录,生产环境放在独立磁盘上 | +| dataLogSize | kb | 事务日志文件大小 | +| tickTime | ms | 服务器之间或客户端与服务器之间维持心跳的时间间隔 | +| minSessionTimeout | ms| 最小session超时时间 心跳时间x2 指定时间小于该时间默认使用此时间 | +| maxSessionTimeout | ms |最大session超时时间 心跳时间x20 指定时间大于该时间默认使用此时间 | +| serverId | 无 | 服务器编号 | + + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| zk_version | 无 | 服务器版本 | +| zk_server_state | 无 | 服务器角色 | +| zk_num_alive_connections | 个 | 连接数 | +| zk_avg_latency | ms | 平均延时 | +| zk_outstanding_requests | 个 | 堆积请求数 | +| zk_znode_count | 个 | znode结点数量 | +| zk_packets_sent | 个 | 发包数 | +| zk_packets_received | 个 | 收包数 | +| zk_watch_count | 个 | watch数量 | +| zk_max_file_descriptor_count | 个 | 最大文件描述符数量 | +| zk_approximate_data_size | kb | 数据大小 | +| zk_open_file_descriptor_count | 个 | 打开的文件描述符数量 | +| zk_max_latency | ms | 最大延时 | +| zk_ephemerals_count | 个 | 临时节点数 | +| zk_min_latency | ms | 最小延时 | + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/introduce.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/introduce.md new file mode 100644 index 00000000000..0449b36a677 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/introduce.md @@ -0,0 +1,96 @@ +--- +id: introduce +title: HertzBeat赫兹跳动 +sidebar_label: 介绍 +slug: / +--- + +> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 + +[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) +[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + +## 🎡 介绍 + +> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 +> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 +> 易用友好,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。 +> 更自由化的阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 + +> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 + + +---- + +[![hertzbeat](/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +[![hertzbeat](/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +---- + +## 🥐 模块 + +- **[manager](https://github.com/dromara/hertzbeat/tree/master/manager)** 提供监控管理,系统管理基础服务 +> 提供对监控的管理,监控应用配置的管理,系统用户租户后台管理等。 +- **[collector](https://github.com/dromara/hertzbeat/tree/master/collector)** 提供监控数据采集服务 +> 使用通用协议远程采集获取对端指标数据。 +- **[warehouse](https://github.com/dromara/hertzbeat/tree/master/warehouse)** 提供监控数据仓储服务 +> 采集指标结果数据管理,数据落盘,查询,计算统计。 +- **[alerter](https://github.com/dromara/hertzbeat/tree/master/alerter)** 提供告警服务 +> 告警计算触发,监控状态联动,告警配置,告警通知。 +- **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** 提供可视化控制台页面 +> 监控告警系统可视化控制台前端(angular+ts+zorro) + +![hertzBeat](https://tancloud.gd2.qingstor.com/img/docs/hertzbeat-stru.svg) + +---- + +![hertzBeat](/img/docs/hertzbeat-arch.png) + +## ⛄ Supported + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) +- 和更多的自定义监控。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contact.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contact.md new file mode 100644 index 00000000000..cd4d1d4297d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contact.md @@ -0,0 +1,38 @@ +--- +id: contact +title: 交流联系 +sidebar_label: 交流联系 +--- +> 如果您在使用过程有任何需要帮助或者想交流建议,可以通过 微信群、QQ群 社区网站 ISSUE 讨论交流。 + +## BUG问题报告,功能建议相关建议通过仓库ISSUE + +[GITEE仓库ISSUES](https://gitee.com/dromara/hertzbeat/issues) +[GITHUB仓库ISSUES](https://github.com/dromara/hertzbeat/issues) + +## 微信交流群 + +加微信号 tan-cloud 或 扫描下面账号二维码拉您进微信群。 +tan-cloud + +## QQ交流群 + +加QQ群号 236915833 或 扫描下面的群二维码进群 + +tan-cloud + +## 交流网站 + +[Dromara社区网站](https://dromara.org/) + +[HertzBeat用户网站](https://support.qq.com/products/379369) + +## 微信公众号 + +tan-cloud + + +## 其它联系 +其它工作联系,微信: tan-cloud 备注: 工作 + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contributing.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contributing.md new file mode 100644 index 00000000000..31e8a91292d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/contributing.md @@ -0,0 +1,141 @@ +--- +id: contributing +title: 贡献者指南 +sidebar_label: 贡献者指南 +--- + +> 非常欢迎参与项目贡献,我们致力于维护一个互相帮助的快乐社区。 + +### 贡献方式 + +> 在 HertzBeat 社区,贡献方式有很多: + +- 💻**代码**:可以帮助社区完成一些任务、编写新的feature或者是修复一些bug; + +- ⚠️**测试**:可以来参与测试代码的编写,包括了单元测试、集成测试、e2e测试; + +- 📖**文档**:可以编写或完善文档,来帮助用户更好地了解和使用 HertzBeat; + +- 📝**博客**:可以撰写 HertzBeat 的相关文章,来帮助社区更好地推广; + +- 🤔**讨论**:可以参与 HertzBeat 新的feature的讨论,将您的想法跟 HertzBeat 融合; + +- 💡**布道**:可以帮助宣传或推广 HertzBeat 社区,在 meetup 或 summit 中演讲; + +- 💬**建议**:也可以对项目或者社区提出一些建议,促进社区的良性发展; + +更多贡献方式参见 [Contribution Types](https://allcontributors.org/docs/en/emoji-key) + +即便是小到错别字的修正我们也都非常欢迎 :) + +### 让 HertzBeat 运行起来 + +> 让 HertzBeat 的代码在您的开发工具上运行起来,并且能够断点调试。 +> 此为前后端分离项目,本地代码启动需将后端 [manager](https://github.com/dromara/hertzbeat/tree/master/manager) 和前端 [web-app](https://github.com/dromara/hertzbeat/tree/master/web-app) 分别启动生效。 + +- 后端启动 + +1. 需要`maven3+`, `java11`和`lombok`环境 +2. (可选)修改配置文件配置信息-`manager/src/main/resources/application.yml` +3. 启动`springboot manager`服务 `manager/src/main/java/org/dromara/hertzbeat/manager/Manager.java` + +- 前端启动 + +1. 需要`nodejs npm angular-cli`环境 +2. 安装yarn `npm install -g yarn` +3. 在前端工程目录web-app下执行 `yarn install` +4. 全局安装angular-cli `npm install -g @angular/cli@14 --registry=https://registry.npm.taobao.org` +5. 待本地后端启动后,在web-app目录下启动本地前端 `ng serve --open` +6. 浏览器访问 localhost:4200 即可开始,默认账号密码 admin/hertzbeat + +### 寻找任务 + +寻找您感兴趣的Issue!在我们的GitHub仓库和邮件列表中,我们经常会发布一些带有 good first issue 或者 status: volunteer wanted 标签的issue,这些issue都欢迎贡献者的帮助。 +其中good first issue往往门槛较低、适合新手。 + +当然,如果您有好的想法,也可以直接在GitHub Discussion 中提出或者联系社区。 + +### 提交 Pull Request + +1. 首先您需要 Fork 目标仓库 [hertzbeat repository](https://github.com/dromara/hertzbeat). +2. 然后 用git命令 将代码下载到本地: +```shell +git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended +``` +3. 下载完成后,请参考目标仓库的入门指南或者 README 文件对项目进行初始化。 +4. 接着,您可以参考如下命令进行代码的提交, 切换新的分支, 进行开发: +```shell +git checkout -b a-feature-branch #Recommended +``` +5. 提交 commit , commit 描述信息需要符合约定格式: [module name or type name]feature or bugfix or doc: custom message. +```shell +git add +git commit -m '[docs]feature: necessary instructions' #Recommended +``` +6. 推送到远程仓库 +```shell +git push origin a-feature-branch +``` +7. 然后您就可以在 GitHub 上发起新的 PR (Pull Request)。 + +请注意 PR 的标题需要符合我们的规范,并且在 PR 中写上必要的说明,来方便 Committer 和其他贡献者进行代码审查。 + +### 等待PR代码被合并 + +在提交了 PR 后,Committer 或者社区的小伙伴们会对您提交的代码进行审查(Code Review),会提出一些修改建议,或者是进行一些讨论,请及时关注您的PR。 + +若后续需要改动,不需要发起一个新的 PR,在原有的分支上提交 commit 并推送到远程仓库后,PR会自动更新。 + +另外,我们的项目有比较规范和严格的 CI 检查流程,在提交 PR 之后会触发 CI,请注意是否通过 CI 检查。 + +最后,Committer 可以将 PR 合并入DEV主分支。 + +### 代码被合并后 + +在代码被合并后,您就可以在本地和远程仓库删除这个开发分支了: + +```shell +git branch -d a-dev-branch +git push origin --delete a-dev-branch +``` + +在主分支上,您可以执行以下操作来同步上游仓库: + +```shell +git remote add upstream https://github.com/dromara/hertzbeat.git #Bind the remote warehouse, if it has been executed, it does not need to be executed again +git checkout master +git pull upstream master +``` + +### 如何成为Committer? + +通过上述步骤,您就是 HertzBeat 的贡献者了。重复前面的步骤,在社区中保持活跃,坚持下去,您就能成为 Committer! + +### 加入讨论交流 + +[Gitter Channel](https://gitter.im/hertzbeat/community) + +[Github Discussion](https://github.com/dromara/hertzbeat/discussions) + +[HertzBeat答疑网站](https://support.qq.com/products/379369) + +加微信号 `tan-cloud` 拉您进微信交流群 + +加QQ群号 `236915833` 进QQ交流群, 验证信息: `tancloud` + +微信公众号: `tancloudtech` + +### 模块 + +- **[manager](https://github.com/dromara/hertzbeat/tree/master/manager)** 提供监控管理,系统管理基础服务 +> 提供对监控的管理,监控应用配置的管理,系统用户租户后台管理等。 +- **[collector](https://github.com/dromara/hertzbeat/tree/master/collector)** 提供监控数据采集服务 +> 使用通用协议远程采集获取对端指标数据。 +- **[warehouse](https://github.com/dromara/hertzbeat/tree/master/warehouse)** 提供监控数据仓储服务 +> 采集指标结果数据管理,数据落盘,查询,计算统计。 +- **[alerter](https://github.com/dromara/hertzbeat/tree/master/alerter)** 提供告警服务 +> 告警计算触发,监控状态联动,告警配置,告警通知。 +- **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** 提供可视化控制台页面 +> 监控告警系统可视化控制台前端 + +![hertzBeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/docs/hertzbeat-stru.svg) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/design.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/design.md new file mode 100644 index 00000000000..5dd84de8b68 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/design.md @@ -0,0 +1,13 @@ +--- +id: design +title: 设计文档 +sidebar_label: 设计文档 +--- + +### HertzBeat架构 + +![architecture](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/docs/hertzbeat-stru.svg) + +### TanCloud架构 + +TanCloud是基于HertzBeat的公网SAAS集群版本,采用多集群,多租户的架构模式。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/developer.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/developer.md new file mode 100644 index 00000000000..66b832ac24c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/developer.md @@ -0,0 +1,219 @@ +--- +id: developer +title: 开发者们 +sidebar_label: 开发者们 +--- + +## ✨ HertzBeat的成员们 + + + + + + + + + + + + + +
tomsun28
tomsun28

💻 📖 🎨
会编程的王学长
会编程的王学长

💻 📖 🎨
zcx
zcx

💻 🐛 🎨
进击的阿晨
进击的阿晨

💻 🎨 🐛
铁甲小宝
铁甲小宝

🐛 💻 📖
cuipiheqiuqiu
cuipiheqiuqiu

💻 ⚠️ 🎨
hudongdong129
hudongdong129

💻 ⚠️ 📖
+ +cert + +## ✨ HertzBeat的开发者们 + +Thanks these wonderful people, welcome to join us: [贡献者指南](contributing) + +cert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
tomsun28
tomsun28

💻 📖 🎨
会编程的王学长
会编程的王学长

💻 📖 🎨
MaxKey
MaxKey

💻 🎨 🤔
观沧海
观沧海

💻 🎨 🐛
yuye
yuye

💻 📖
jx10086
jx10086

💻 🐛
winnerTimer
winnerTimer

💻 🐛
goo-kits
goo-kits

💻 🐛
brave4Time
brave4Time

💻 🐛
WalkerLee
WalkerLee

💻 🐛
jianghang
jianghang

💻 🐛
ChineseTony
ChineseTony

💻 🐛
wyt199905
wyt199905

💻
卫傅庆
卫傅庆

💻 🐛
zklmcookle
zklmcookle

💻
DevilX5
DevilX5

📖 💻
tea
tea

💻
yangshihui
yangshihui

💻 🐛
DreamGirl524
DreamGirl524

💻 📖
gzwlly
gzwlly

📖
cuipiheqiuqiu
cuipiheqiuqiu

💻 ⚠️ 🎨
lambert
lambert

💻
mroldx
mroldx

📖
woshiniusange
woshiniusange

📖
VampireAchao
VampireAchao

💻
zcx
zcx

💻 🐛 🎨
CharlieXCL
CharlieXCL

📖
Privauto
Privauto

💻 📖
emrys
emrys

📖
SxLiuYu
SxLiuYu

🐛
All Contributors
All Contributors

📖
铁甲小宝
铁甲小宝

💻 📖
click33
click33

📖
蒋小小
蒋小小

📖
Kevin Huang
Kevin Huang

📖
铁甲小宝
铁甲小宝

🐛 💻 📖
Captain Jack
Captain Jack

📖
haibo.duan
haibo.duan

⚠️ 💻
assassin
assassin

🐛 💻
Reverse wind
Reverse wind

⚠️ 💻
luxx
luxx

💻
Ikko Ashimine
Ikko Ashimine

📖
leizenan
leizenan

💻
BKing
BKing

📖
xingshuaiLi
xingshuaiLi

📖
wangke6666
wangke6666

📖
刺猬
刺猬

🐛 💻
Haste
Haste

💻
zhongshi.yi
zhongshi.yi

📖
Qi Zhang
Qi Zhang

📖
MrAndyMing
MrAndyMing

📖
idongliming
idongliming

💻
Zichao Lin
Zichao Lin

💻 📖
liudonghua
liudonghua

💻 🤔
Jerry
Jerry

💻 ⚠️ 🤔
yanhom
yanhom

📖
fsl
fsl

💻
xttttv
xttttv

📖
NavinKumarBarnwal
NavinKumarBarnwal

💻
Zakkary
Zakkary

📖
sunxinbo
sunxinbo

💻 ⚠️
ldzbook
ldzbook

📖 🐛
余与雨
余与雨

💻 ⚠️
MysticalDream
MysticalDream

💻 ⚠️
zhouyoulin12
zhouyoulin12

💻 ⚠️
jerjjj
jerjjj

💻
wjl110
wjl110

💻
Sean
Sean

📖
chenyiqin
chenyiqin

💻 ⚠️
hudongdong129
hudongdong129

💻 ⚠️ 📖
TherChenYang
TherChenYang

💻 ⚠️
HattoriHenzo
HattoriHenzo

💻 ⚠️
ycilry
ycilry

📖
aoshiguchen
aoshiguchen

📖 💻
蔡本祥
蔡本祥

💻
浮游
浮游

💻
Grass-Life
Grass-Life

💻
xiaohe428
xiaohe428

💻 📖
TableRow
TableRow

📖 💻
ByteIDance
ByteIDance

💻
Jangfe
Jangfe

💻
zqr10159
zqr10159

📖 💻
vinci
vinci

💻
js110
js110

💻
CrazyLionLi
CrazyLionLi

📖
banmajio
banmajio

💻
topsuder
topsuder

💻
richar2022
richar2022

💻
fcb-xiaobo
fcb-xiaobo

💻
wenkyzhang
wenkyzhang

📖
ZangJuxy
ZangJuxy

📖
l646505418
l646505418

💻
Carpe-Wang
Carpe-Wang

💻
莫枢
莫枢

💻
huangcanda
huangcanda

💻
世纪末的架构师
世纪末的架构师

💻
ShuningWan
ShuningWan

📖
MrYZhou
MrYZhou

📖
suncqujsj
suncqujsj

📖
sunqinbo
sunqinbo

💻
haoww
haoww

📖
i-mayuan
i-mayuan

📖
fengruge
fengruge

📖
zhanghuan
zhanghuan

💻
shenymin
shenymin

💻
Dhruva Chandra
Dhruva Chandra

💻
miss_z
miss_z

📖
wyt990
wyt990

💻
licocon
licocon

💻
Mi Na
Mi Na

💻
Kylin-Guo
Kylin-Guo

📖
Mr灬Dong先生
Mr灬Dong先生

💻
Pratyay Banerjee
Pratyay Banerjee

📖 💻
yujianzhong520
yujianzhong520

💻
SPPan
SPPan

💻
ZhangJiashu
ZhangJiashu

💻
impress
impress

💻
凌晨一点半
凌晨一点半

📖
Eeshaan Sawant
Eeshaan Sawant

💻
nandofromthebando
nandofromthebando

💻
caiboking
caiboking

💻
baixing99
baixing99

💻
Yang Chuang
Yang Chuang

💻
wlin20
wlin20

💻
guojing1983
guojing1983

💻
moxi
moxi

📖
qq471754603
qq471754603

💻
渭雨
渭雨

💻
liuxuezhuo
liuxuezhuo

💻
lisongning
lisongning

💻
YutingNie
YutingNie

💻
Mike Zhou
Mike Zhou

💻
小笨蛋
小笨蛋

💻
littlezhongzer
littlezhongzer

💻
ChenXiangxxxxx
ChenXiangxxxxx

💻
Mr.zhou
Mr.zhou

💻
+ + + + + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/huaweicloud.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/huaweicloud.md new file mode 100644 index 00000000000..c6433ac6cf6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/huaweicloud.md @@ -0,0 +1,26 @@ +--- +id: huaweicloud +title: HertzBeat & HuaweiCloud +sidebar_label: HertzBeat & HuaweiCloud +--- + +### HertzBeat 与 HuaweiCloud 的开源合作需求Issue + +> 欢迎大家对感兴趣的Issue领取贡献。 + +- [Task] support using Huawei Cloud OBS to store custom define yml file [#841](https://github.com/dromara/hertzbeat/issues/841) +- [Task] support Huawei Cloud CCE metrics monitoring [#839](https://github.com/dromara/hertzbeat/issues/839) +- [Task] support EulerOS metrics monitoring [#838](https://github.com/dromara/hertzbeat/issues/838) +- [Task] support using Huawei Cloud SMN send alarm notification message [#837](https://github.com/dromara/hertzbeat/issues/837) +- [Task] support using GaussDB For Influx store history metrics data [#836](https://github.com/dromara/hertzbeat/issues/836) + + + + +### 关于 HuaweiCloud 开源活动 + +HuaweiCloud 华为云将面向开源软件工具链与环境、开源应用构建和开源生态组件构建这三大重点场景,提供技术支持、奖金支持、活动支持,邀请更多的开发者,携手构建开源for HuaweiCloud。 + +开发者将开源软件工具、开源应用和开源组件与华为云对象存储OBS、数仓DWS、云容器CCE等云服务对接,同时基于Terraform模板,上架到华为云云商店,支持其他开发者一键部署使用开源组件 ,称为“开源xxx for HuaweiCloud”。 + +感兴趣的开发者可以查看:华为云开源项目仓库 https://gitee.com/HuaweiCloudDeveloper/huaweicloud-cloud-native-plugins-kits 了解更多。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/images-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/images-deploy.md new file mode 100644 index 00000000000..bb6f696ff81 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/images-deploy.md @@ -0,0 +1,112 @@ +--- +id: images-deploy +title: HertzBeat 华为云镜像部署 +sidebar_label: HertzBeat 华为云镜像部署快速指引 +--- + + +> 易用友好的开源实时监控告警工具,无需Agent,强大自定义监控能力。 + +[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) +[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + +## 🎡 介绍 + +> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警工具。 +> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 +> 更自由化的阈值规则(计算表达式),`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 + +> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 + + +---- + +[![hertzbeat](/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +[![hertzbeat](/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +## ⛄ Supported + +- [网站监控](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-website.yml), [端口可用性](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-api.yml), [Ping连通性](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap全站](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl证书](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP服务器](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ftp.yml) +- [Mysql](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mongodb.yml), + [达梦](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-iotdb.yml) +- [Linux](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-windows.yml) +- [Tomcat](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-docker.yml) +- 和更多的自定义监控。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +## 镜像部署 + +> HertzBeat支持在Linux Windows Mac系统安装运行,CPU支持X86/ARM64。 + +1. 开通服务器时选用 HertzBeat 镜像 +2. 启动服务器 +3. 配置HertzBeat的配置文件(可选) + + 修改位于 `/opt/hertzbeat/config/application.yml` 的配置文件(可选),您可以根据需求修改配置文件 + - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 + - **推荐**若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](../start/mysql-change)) + - **推荐**若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.td-engine`参数 具体步骤参见 [使用TDengine存储指标数据](../start/tdengine-init) + - **推荐**若需使用时序数据库IotDB来存储指标数据库,需替换`application.yml`里面的`warehouse.storeiot-db`参数 具体步骤参见 [使用IotDB存储指标数据](../start/iotdb-init) + + +4. 配置用户配置文件(可选,自定义配置用户密码) + HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过修改位于 `/opt/hertzbeat/config/sureness.yml` 的配置文件实现,若无此需求可忽略此步骤 + 具体参考 [配置修改账户密码](../start/account-modify) + +5. 部署启动 + 执行位于安装目录/opt/hertzbeat/bin/下的启动脚本 startup.sh, windows环境下为 startup.bat + ``` + $ ./startup.sh + ``` + +6. 开始探索HertzBeat + 浏览器访问 http://ip:1157/ 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +### 部署常见问题 + +**最多的问题就是网络问题,请先提前排查** + +1. **按照流程部署,访问 http://ip:1157/ 无界面** + 请参考下面几点排查问题: +> 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 +> 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 + +2. **监控历史图表长时间都一直无数据** +> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据 +> 二:若使用了Tdengine,排查Tdengine的数据库`hertzbeat`是否创建 +> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB 或 Tdengine IP账户密码等配置是否正确 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/legal.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/legal.md new file mode 100644 index 00000000000..eea88e88016 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/legal.md @@ -0,0 +1,62 @@ +--- +id: legal +title: 对HertzBeat侵权会造成的法律风险 +sidebar_label: 法律风险 +--- + +:::tip +**开源不等同于免费,如果您基于HertzBeat二次开发修改了[logo,名称,版权](https://github.com/dromara/hertzbeat/blob/master/NOTICE)等,请找我们授权,否则会有法律风险。** +**我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得,也欢迎给我们[提供侵权线索](#欢迎给我们提供侵权线索证据)。** +::: + + +### HertzBeat 开源 License + +[Apache-2.0 license](https://github.com/dromara/hertzbeat/blob/master/LICENSE) + +### HertzBeat 开源声明 + +[Notice](https://github.com/dromara/hertzbeat/blob/master/NOTICE) + +```text +HertzBeat-An open-source, real-time monitoring system. +HertzBeat-易用友好的实时监控系统。 + +HertzBeat Declaration / HertzBeat声明 + +It can be used directly without authorization. All copyrights, patents, trademarks and ownership statements in the product and source code must be retained. +可直接免费商用,但必须保留本作品及源码中的所有版权、专利、商标和归属声明。 + +The attribution statement and copyright notice in the footer cannot be ignored, otherwise it will be deemed as infringement. +页面等页脚中归属声明及版权声明不可忽略,否则视为侵权。 + +Copyright https://www.hertzbeat.com https://www.tancloud.cn All Rights Reserved. +``` + +### 欢迎联系我们授权 + +请加我们微信 `tan-cloud` 或者邮件 `tomsun28@outlook.com` 咨询,备注:授权+团队名 + +### 欢迎给我们提供侵权线索证据 + +我们致力于开源并相信彼此,但是也有会一些人利用我们的信任违法使用此产品并获取利益。 +如果您发现了此类情况,欢迎联系我们提供他们的侵权违法线索,我们会将法院判决的对方全部违法所得的25%作为感谢给您。我们会按您要求匿名,欢迎支持开源事业。 + + +### HertzBeat授权版(付费) + +我们提供社区开源版监控产品 HertzBeat, 个人和企业可以免费使用,**需要完整保留版权,Logo,商标,页脚版权声明,和归属声明**。 +有些情况企业基于开源版本二次开发需要修改版权LOGO和归属声明等,对这样需求我们推出了 **HertzBeat授权版**。 +此授权需付费,我们实行企业规模阶梯定价,并会赠送技术支持等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:授权+团队名 + +### 企业版TanCloud(付费) + +监控系统企业版本为TanCloud团队针对企业级需求特别推出的版本,提供**用户管理,权限,日志等企业级特性**,得到我们维护团队的快速响应与技术支持。 +企业版本为付费版本,我们实行企业规模阶梯定价,并会赠送技术支持,免费维护期,技术讲解等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:企业版+团队名 + + +### 其它相关 + +**[软件附条件免费商业使用的侵权认定与责任承担](https://enipc.court.gov.cn/zh-cn/news/view-1668.html)** https://enipc.court.gov.cn/zh-cn/news/view-1668.html +**[开源协议适用范围及其对软件著作权侵权判定的影响](https://ipc.court.gov.cn/zh-cn/news/view-842.html)** https://ipc.court.gov.cn/zh-cn/news/view-842.html + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/policy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/policy.md new file mode 100644 index 00000000000..a4d24936e9a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/policy.md @@ -0,0 +1,421 @@ +--- +id: policy +title: TanCloud 隐私政策 +sidebar_label: 隐私政策 +--- + +> 本版更新日期:2022 年 02 月 17 日 + +欢迎使用绵阳探云科技有限公司(下称" TanCloud ")提供的产品和服务! TanCloud (或简称"我们")深知个人信息对您的重要性,我们一向庄严承诺保护使用我们的产品和服务(以下统称" TanCloud 服务")之用户(以下统称"用户"或"您")的个人信息及隐私安全。您在使用 TanCloud 服务时,我们可能会收集和使用您的相关个人信息(或简称"个人信息")。 《 TanCloud 隐私政策》(以下简称"本政策")适用于我们提供的 TanCloud 服务, 未满十八周岁的用户,请在法定监护人的陪同下阅读本政策,并特别注意未成年人使用条款。特别地,如果您是未满 14 周岁的儿童,还应请您的监护人仔细阅读本政策,经监护人同意后,您方可使用 TanCloud 服务。 我们希望通过本政策向您说明我们在收集和使用您相关个人信息时对应的处理规则,以及我们为您提供的访问、更正、删除和保护这些个人信息的方式,以便更好的保障您的权益。 + +适用范围:(a)在您使用 TanCloud 服务,或访问 TanCloud 服务相关的网页时, TanCloud 自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的 IP 地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;(b) TanCloud 通过合法途径从商业伙伴处取得的用户个人数据。 + +您了解并同意,以下信息不适用本隐私权政策:(a)在使用 TanCloud 服务提供的搜索服务时输入的关键字信息;(b) TanCloud 收集到的您在 TanCloud 服务发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;(c)违反法律规定或违反 TanCloud 服务规则行为及 TanCloud 已对您采取的措施。 + +本政策将帮助您了解以下内容: + +一、我们如何收集和使用您的个人信息 + +二、我们如何使用 Cookies 或同类技术 + +三、我们可能共享、转让和披露的个人信息 + +四、我们如何保留、储存和保护您的个人信息安全 + +五、如何管理您的个人信息 + +六、第三方服务 + +七、未成年人保护 + +八、通知和修订 + +九、法律适用与管辖 + +十、如何联系我们 + +【特别提示】请您在使用 TanCloud 服务前,仔细阅读(未成年人请在监护人陪同下阅读)并了解本政策(特别是加粗或下划线标注的内容),以做出适当选择。一旦您使用或在我们更新本政策后继续使用我们的产品或服务,即意味着您同意本政策并同意我们按照本政策处理您的相关个人信息。 + +本政策适用于 TanCloud 服务,如与 TanCloud 与您之间的《专业服务合同》同类条款之约定存在不一致的,以本政策为准。如我们提供的某一单项服务不适用本政策的,该服务中会以适当方式明示排除适用本政策。 + +一、我们如何收集和使用您的个人信息 + +我们收集您的个人信息主要是为了您和其他用户能够更容易和更满意地使用 TanCloud 服务。而这些个人信息有助于我们实现这一目标。 + +(一)我们将通过以下途径收集和获得您的个人信息: + +1、您提供的个人信息。 + +(1)您在注册 TanCloud 服务的帐号或使用 TanCloud 服务时,向我们提供的个人信息,包括您的手机号码,并且您可以自愿选择填写您的昵称、头像、性别、年龄、学历、学校、身份证号码、收件人姓名、收件人联系方式、收货地址基本信息。如果您仅需使用浏览、了解 TanCloud ,您不需要注册账户及提供上述信息。如果您不提供这些信息,并不会影响您使用 TanCloud 的基本功能; + +(2)您通过 TanCloud 服务向其他方提供的共享个人信息,以及您使用 TanCloud 服务时所储存的个人信息。 + +请注意,如您在 TanCloud 服务中其他用户可见的公开区域内上传或发布的个人信息中、您对其他人上传或发布的信息作出的回应中公开您的个人信息,该等个人信息可能会被他人收集并加以使用,只要您不删除您所公开或共享的个人信息,有关个人信息可能一直留存在公众领域;即使您删除共享个人信息,有关个人信息仍可能由其他用户或不受我们控制的第三方独立地缓存、复制或储存,或由其他用户或该等第三方在公众领域保存。如您将个人信息通过上述渠道公开或共享,由此造成您的个人信息泄露,我们不承担责任。因此,我们提醒并请您慎重考虑是否通过上述渠道公开或共享您的个人信息。当您发现他人不正当地收集或使用您的个人信息时,您可以通过本政策第九条【如何联系我们】约定的联系方式联络我们。 + +2、其他方分享的您的个人信息。亦即其他方使用 TanCloud 服务时所提供有关您的共享个人信息。 + +3、我们获取的您的个人信息。您在使用 TanCloud 服务时,我们收集、汇总、记录的个人信息。 + +(二)我们会出于以下目的,收集和使用您以下类型的个人信息: + +1、帮助您完成注册、登录及注销 + +为便于我们为您提供完整的 TanCloud 服务,您需要提供基本注册或登录个人信息,包括使用手机号码注册登录或提供第三方账号登录 TanCloud 。如果您仅需使用浏览、查询、搜索等基本服务,您不需要注册成为 TanCloud 用户及提供上述个人信息。 + +2、客服与售后 + +依照相关法律法规规定及监管要求,或当您与我们联系时,我们的客服或售后可能会需要您提供真实身份信息(姓名、身份证)和账号信息以核验您的身份,以便帮助您问题,或记录相关问题的处理方案及结果。 + +请注意,您的身份信息属于个人敏感信息,请您谨慎提供,如果拒绝提供您将可能无法获得相关服务,但不影响其他功能与服务的正常使用。 + +3、维护基础功能的正常运行 + +在您使用我们服务过程中,为识别账号异常状态、了解产品适配性,向您提供浏览、搜索、注册/登录、查看和编辑个人资料、购买服务/产品、支付的服务,维护基础功能的正常运行,我们可能会自动收集、储存关于您使用的服务以及使用方式的信息并将这些信息进行关联,这些信息包括: + +(1)日志信息:当您使用我们的服务时,我们可能会自动收集您对我们服务的详细使用情况,作为有关网络日志保存。日志信息包括您的登录账号、搜索查询内容、IP 地址、浏览器的类型、电信运营商、网络环境、使用的语言、访问日期和时间及您访问的网页浏览记录、Push 打开记录、崩溃记录、停留时长、刷新记录、发布记录、关注、订阅、收藏及分享。 + +(2)设备信息:我们可能会根据您在软件安装及使用中授予的具体权限,接收并记录您所使用的设备相关信息(包括设备标识符( IMEI / MAC / OPEN UDID )、Serial、SIM 卡 IMSI 识别码、设备机型、操作系统及版本、客户端版本、设备分辨率、包名、设备设置、进程及软件列表、Android ID、IDFA、UUID、软硬件特征信息)、设备所在位置相关信息(包括 IP 地址、GPS 位置以及能够提供相关个人信息的 WLAN 接入点、蓝牙和基站传感器信息)。 + +同时为了收集上述基本的个人设备信息,我们将会申请访问您的设备信息的权限,我们收集这些信息是为了向您提供我们基本服务和基础功能,如您拒绝提供上述权限将可能导致您无法使用我们的产品与服务。 + +请注意,单独的设备信息、日志信息是无法识别特定自然人身份的个人信息。如果我们将这类非个人信息与其他个人信息结合用于识别特定自然人身份,或者将其与个人信息结合使用,则在结合使用期间,这类非个人信息将被视为个人信息,除取得您授权或法律法规另有规定外,我们会将该类个人信息做匿名化、去标识化处理。这些信息在结合使用期间,将作为您的个人信息按照本隐私政策处理与保护。 + +4、向您提供商品或服务 + +(1)个人信息的分享与发布:您在使用 TanCloud 服务时、上传和/或发布个人信息以及进行相关行为时,我们将收集您上传、发布或形成的个人信息,并有权展示您的昵称、头像和发布内容。 + +(2)商品或服务交付:当您在我们的商品或服务中订购具体商品或服务时,我们会通过系统为您生成购买该商品或服务的订单。为便于向您交付您在 TanCloud 购买的商品或服务,您可能需提供收货人个人身份信息、姓名、购买者主体及相关信息、订购人、联系电话、支付状态信息。如果您拒绝提供此类个人信息,我们将无法完成相关交付服务。如您通过 TanCloud 服务为其他人订购商品或服务,您需要提供该实际订购人的前述个人信息。向我们提供该实际订购人的前述个人信息之前,您需确保您已经取得其授权同意。 + +在您使用 TanCloud 服务时, TanCloud 将会收集、储存您上传的图片、语音信息,我们的相关识别程序会对这些数据进行处理分析。 + +(3)为完成订单支付、交付商品或服务、确认交易状态及为您提供售后与争议解决服务,我们会通过您基于交易所选择的交易对象、支付机构、物流公司等收集与交易进度相关的您的账号、订单、交易、支付、物流信息,或将您的交易信息共享给上述服务提供者。 + +(4)订单管理:为展示您的账户的订单信息及保障您的售后权益, TanCloud 会收集您在使用 TanCloud 过程中产生的订单信息、交易和消费记录用于向您展示及便于您对订单进行管理。 + +(5)客服与售后服务:当您联系我们的客服或使用其他用户响应功能时(包括提出售中售后申请、个人信息保护投诉或建议、其他客户投诉和需求),我们可能需要您提供必要的个人信息以匹配并核验您的用户身份,以便保障您的账号与系统安全。我们可能还会保存您的联系方式(您与我们联系时使用的或您向我们主动提供的其他联系方式)、您与我们的通信/通话记录和内容、与您需求相关联的其他必要信息,以便与您联系或帮助您解决问题,或记录相关问题的处理方案及结果。 + +5、我们通过间接方式收集到的您的个人信息: + +我们可能从管理关联方、第三方合作伙伴获取您授权共享的相关个人信息。我们可能从第三方获取您授权共享的账户信息(头像、昵称、登录时间)并在您同意本政策后将您的第三方账户与您的 TanCloud 服务账户绑定,使您可以通过第三方账户直接登录并使用我们的产品与/或服务。我们将在符合相关法律法规规定,并依据与关联方或第三方合作伙伴的约定、确信其提供的个人信息来源合法的前提下,收集并使用您的这些个人信息。 + +6、向您发送通知 + +我们可能在必需时(例如当我们由于系统维护而暂停某一单项服务、变更、终止提供某一单项服务时)向您发出与服务有关的通知。 + +如您不希望继续接收我们推送的消息,您可要求我们停止推送,例如:根据短信退订指引要求我们停止发送推广短信,或在移动端设备中进行设置,不再接收我们推送的消息;但我们依法律规定或服务协议约定发送消息的情形除外。 + +7、为您提供安全保障 + +为提高您使用我们及合作伙伴提供服务的安全性,保护您或其他用户或公众的人身财产安全免遭侵害,更好地预防钓鱼网站、欺诈、网络漏洞、计算机病毒、网络攻击、网络侵入等安全风险,更准确地识别违反法律法规或 TanCloud 服务相关协议规则的情况,我们可能会收集、使用或整合您的账户信息、交易信息、设备信息、日志信息以及我们关联公司、合作伙伴取得您授权或依据法律共享的个人信息,来综合判断您账户及交易风险、进行身份验证、检测及防范安全事件,并依法采取必要的记录、审计、分析、处置措施。 + +8、其他 + +您了解并同意,在收集您的个人信息后,我们可能通过技术手段对数据进行去标识化处理,去标识化处理的信息将无法识别您的身份,在此情况下我们有权使用已经去标识化的信息,对用户数据库进行分析并予以商业化的利用,而无需另行获得您的同意。 + +请您注意,如果我们要将您的个人信息用于本政策中未载明的其他用途或额外收集未提及的其他个人信息,我们会另行事先请您同意(确认同意的方式:勾选、弹窗、站内信、邮件、短信方式)。一旦您同意,该等额外用途将视为本政策的一部分,该等额外个人信息也将适用本政策。 + +如果我们要将您的个人信息用于本政策中未载明的其他用途或额外收集未提及的其他个人信息,我们会依法通过页面提示、交互流程、网站公告或其他方式另行征得您的同意。在此过程中,您可通过本政策第九条【如何联系我们】约定的联系方式联络我们。 + +9、征得授权同意的例外 + +根据相关法律法规规定,以下情形中收集您的个人信息无需征得您的授权同意: + +(1)与个人信息控制者履行法律法规规定的义务相关的; + +(2)与国家安全、国防安全直接相关的; + +(3)与公共安全、公共卫生、重大公共利益直接相关的; + +(4)与刑事侦查、起诉、审判和判决执行等直接相关的; + +(5)出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的; + +(6)所涉及的个人信息是个人信息主体自行向社会公众公开的; + +(7)根据个人信息主体要求签订和履行合同所必需的; + +(8)从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道; + +(9)维护所提供产品或服务的安全稳定运行所必需的,如发现、处置产品或服务的故障; + +10、您理解并同意, TanCloud 服务可能需要您在您的设备中开启特定的访问权限,以实现这些权限所涉及个人信息的收集和使用: + +(1)如我们访问您的摄像头,是为了使您可以使用摄像头进行扫码、拍摄,用于实现登录、使用"拍照"功能支付、图片评论、拍照取词、拍照翻译及上传头像; + +(2)如我们访问您的相册,是为了使您可以实现您设备中的照片、图片或视频的取用与上传、发表评论/分享、使用相册中的图片上传头像; + +(3)如我们访问您的存储,是为了使您可以实现裁剪头像图片、崩溃日志查询等功能; + +(4)如我们访问您的麦克风,是为了使您可以实现语音翻译功能、语音评论、与客服实现语音交互以及语音教学交互功能,在这些功能中我们会收集您的录音内容以识别您的具体需求。 + +(5)如我们访问您的浏览器,是为了使您可以实现“自动登录”等功能,在这些功能中我们将收集您浏览器的相关数据以识别具体需求。 + +当您需要关闭该功能时,大多数移动设备都会支持您的这项需求,具体方法请参考或联系您移动设备的服务商或生产商。请您注意,您开启任一权限即代表您授权我们可以收集和使用相关个人信息来为您提供对应服务,您一旦关闭任一权限即代表您取消了授权,我们将不再基于对应权限继续收集和使用相关个人信息,也无法为您提供该权限所对应的服务。但是,您关闭权限的决定不会影响您使用已授权其他权限的功能,以及此前基于您的授权所进行的个人信息收集及使用。 + +11、有关个人敏感信息的提示 + +以上由您提供或我们收集您的个人信息中,可能包含您的个人敏感信息,包括银行账号、交易和消费记录、虚拟财产信息、系统账号、邮箱地址及其有关的密码、电话号码、网页浏览记录、位置信息。请您谨慎并留意个人敏感信息,您同意您的个人敏感信息我们可以按本政策所述的目的和方式来处理。 + +二、我们如何使用 Cookies 或同类技术 + +(一) Cookies + +我们或我们的第三方合作伙伴可能通过 Cookies 获取和使用您的个人信息,并将该等个人信息储存为日志信息。 + +通过使用 Cookies ,我们向您提供简单易行并富个性化的网络体验。一个 Cookies 是少量的数据,它们从一个网络服务器送至您的浏览器并存在计算机硬盘上。我们使用 Cookies 是为了让您可以受益。比如,为使得 TanCloud 的登录过程更快捷,您可以选择把用户名存在一个 Cookies 中。这样下次当您要登录 TanCloud 的服务时能更加方便快捷。Cookies 能帮助我们确定您连接的页面和内容,您在 TanCloud 特定服务上花费的时间和您所选择的 TanCloud 服务。 + +Cookies 使得我们能更好、更快地为您服务,并且使您在 TanCloud 服务上的经历更富个性化。然而,您应该能够控制 Cookies 是否以及怎样被你的浏览器接受。请查阅您的浏览器附带的文件以获得更多这方面的信息。 + +我们和第三方合作伙伴可能通过 Cookies 收集和使用您的个人信息,并将该等个人信息储存。 + +我们使用自己的 Cookies ,可能用于以下用途: + +(1)记住您的身份。Cookies 有助于我们辨认您作为我们的注册用户的身份,或保存您向我们提供有关您的喜好或其他个人信息; + +(2)分析您使用我们服务的情况。我们可利用 Cookies 来了解您使用 TanCloud 服务进行什么活动、或哪些服务或服务最受欢迎; + +(3)广告优化。 Cookies 有助于我们根据您的个人信息,向您提供与您相关的广告而非进行普遍的广告投放。 + +我们为上述目的使用 Cookies 的同时,可能将通过 Cookies 收集的非个人身份信息汇总提供给广告商和其他伙伴,用于分析您和其他用户如何使用 TanCloud 服务并用于广告服务。 + +TanCloud 服务上可能会有广告商和其他合作方放置的 Cookies 。这些 Cookies 可能会收集与您相关的非个人身份信息,以用于分析用户如何使用该等服务、向您发送您可能感兴趣的广告,或用于评估广告服务的效果。这些第三方 Cookies 收集和使用该等个人信息不受本政策约束,而是受到其自身的个人信息保护声明约束,我们不对第三方的 Cookies 承担责任。 + +您可以通过浏览器或用户选择机制拒绝或管理 Cookies 。但请您注意,如果您停用 Cookies ,我们有可能无法为您提供最佳的服务体验,某些服务也可能无法正常使用。同时,您仍然将收到广告,只是这些广告与您的相关性会降低。 + +(二)网站信标和像素标签 + +除 Cookies 外,我们还会在网站上使用网站信标和像素标签等其他同类技术。例如,我们向您发送的电子邮件可能含有链接至我们网站内容的地址链接,如果您点击该链接,我们则会跟踪此次点击,帮助我们了解您的产品或服务偏好以便于我们主动改善客户服务体验。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,我们能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从我们的寄信名单中退订。 + +三、我们可能共享、转让或披露的个人信息 + +(一)共享 + +您同意我们依据本政策向我们的关联方或相关法人团体、与我们合作的一些商业合作伙伴(合称"信息接收方")共享您的个人信息。我们将积极帮助您了解信息接收方对个人信息的存储、使用等情况,以及您享有的访问、更正、删除、注销账户等权利。除以下情形外,未经您同意,我们不会与我们及我们的信息接收方之外的任何第三方共享您的个人信息: + +1、向您提供我们的服务。我们可能向信息接收方共享您的个人信息,以实现您需要的核心功能或提供您需要的服务; + +2、维护和改善我们的服务。我们可能向信息接收方共享您的个人信息,以帮助我们为您提供更有针对性、更完善的服务,例如:代表我们发出电子邮件或推送通知的通讯服务提供商; + +3、实现本政策第一条"我们如何收集和使用您的个人信息"部分所述目的; + +4、履行我们在本政策或我们与您达成的其他协议中的义务和行使我们的权利; + +5、向委托我们进行推广的信息接收方共享,目的是为了使该等委托方了解推广的覆盖面和有效性。比如我们可以告知该委托方有多少人看了他们的推广信息或在看到这些信息后购买了委托方的商品,或者向他们提供不能识别个人身份的统计信息,帮助他们了解其受众或顾客。 + +6、在法律法规允许的范围内,为了遵守法律、维护我们及我们的关联方或合作伙伴、您或其他 TanCloud 用户或社会公众利益、财产或安全免遭损害,比如为防止欺诈等违法活动和减少信用风险,我们可能与其他公司和组织交换个人信息。不过,这并不包括违反本政策中所作的承诺而为获利目的出售、出租、共享或以其它方式披露的个人信息。 + +7、应您合法需求,协助处理您与他人的纠纷或争议; + +8、应您的监护人合法要求而提供您的个人信息; + +9、根据与您签署的服务协议(包括在线签署的电子协议以及相应的平台规则)或其他的法律文件约定所提供; + +10、基于学术研究而提供; + +11、基于符合法律法规的社会公共利益而提供。 + +我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息。对我们与之共享个人信息的公司、组织和个人,我们会与其签署严格的保密协定,要求他们按照我们的说明、本政策以及其他任何相关的保密和安全措施来处理个人信息。 + +(二)转让 + +1、随着我们业务的持续发展,我们有可能进行合并、收购、资产转让或类似的交易,而您的个人信息有可能作为此类交易的一部分而被转移。我们会要求新的持有您个人信息的公司、组织继续受本政策的约束,否则,我们将要求该公司、组织重新向您征求授权同意。 + +2、在获得您的明确同意后,我们会向其他方转让您的个人信息。 + +(三)披露 + +我们仅会在以下情况下,且采取符合业界标准的安全防护措施的前提下,才会披露您的个人信息: + +1、根据您的需求,在您明确同意的披露方式下披露您所指定的个人信息; + +2、根据法律、法规的要求、强制性的行政执法或司法要求所必须提供您个人信息的情况下,我们可能会依据所要求的个人信息类型和披露方式披露您的个人信息。在符合法律法规的前提下,当我们收到上述披露个人信息的请求时,我们会要求接收方必须出具与之相应的法律文件,如传票或调查函。我们坚信,对于要求我们提供的个人信息,应该在法律允许的范围内尽可能保持透明。我们对所有的请求都进行了慎重的审查,以确保其具备合法依据,且仅限于执法部门因特定调查目的且有合法权利获取的数据。 + +(四)共享、转让、披露个人信息时事先征得授权同意的例外 + +以下情形中,共享、转让、公开披露您的个人信息无需事先征得您的授权同意: + +1、与个人信息控制者履行法律法规规定的义务相关的; + +2、与国家安全、国防安全有关的; + +3、与公共安全、公共卫生、重大公共利益有关的; + +4、与刑事侦查、起诉、审判和判决执行等司法或行政执法有关的; + +5、出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的; + +6、您自行向社会公众公开的个人信息; + +7、从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。 + +根据法律规定,共享、转让经去标识化处理的个人信息,且确保数据接收方无法复原并重新识别个人信息主体的,不属于个人信息的对外共享、转让及公开披露行为,对此类数据的保存及处理将无需另行向您通知并征得您的同意。 + +四、我们如何保留、储存和保护您的个人信息安全 + +(一)我们仅在本政策所述目的所必需期间和法律法规及监管规定的时限内保存您的个人信息, TanCloud 判断前述期限的标准包括: + +1、完成与您相关的交易目的、维护相应交易及业务记录、应对您可能的查询或投诉; + +2、保证 TanCloud 为您提供服务的安全和质量; + +3、您是否同意更长的留存期间; + +4、是否存在保留期限的其他特别约定。 + +在您的个人信息超出保留期间后, TanCloud 会根据适用法律的要求删除您的个人信息,或使其匿名化处理(如您为未成年人,在您的个人信息超出保留期间后, TanCloud 会按照相关法律法规要求对您的个人信息进行相应处理)。如因特殊情形无法按照相关要求删除的,平台将对该部分事项向您进行说明。 + +如我们终止服务或运营,我们将及时停止继续收集您个人信息的活动,同时会遵守相关法律法规要求提前向您通知,并在终止服务或运营后对您的个人信息进行删除或匿名化处理,法律法规或监管部门另有规定的除外。 + +(二)我们在中华人民共和国境内运营中收集和产生的个人信息,存储在中国境内。以下情形除外: + +1、法律法规有明确规定; + +2、获得您的授权同意; + +3、您使用的产品、服务涉及跨境,我们需要向境外提供您的个人信息的。 + +针对以上情形,我们会确保依据本政策及国家法律法规要求对您的个人信息提供足够的保护。 + +(三)我们非常重视个人信息安全,指定了特定人员,并采取一切合理可行的措施,保护您的个人信息: + +1、数据安全技术措施 + +我们会采用符合业界标准的安全防护措施,包括建立合理的制度规范、安全技术来防止您的个人信息遭到未经授权的访问使用、修改,避免数据的损坏或丢失。网络服务采取了多种加密技术,例如在某些服务中,我们将利用加密技术来保护您的个人信息,采取加密技术对您的个人信息进行加密保存,并通过隔离技术进行隔离。在个人信息使用时,例如个人信息展示、个人信息关联计算,我们会采用多种数据脱敏技术增强个人信息在使用中的安全性。采用严格的数据访问权限控制和多重身份认证技术保护个人信息,避免数据被违规使用。 + +2、我们为保护个人信息采取的其他安全措施 + +(1)我们通过建立数据分类分级制度、数据安全管理规范、数据安全开发规范来管理规范个人信息的存储和使用。 + +(2)我们通过个人信息接触者保密协议、监控和审计机制来对数据进行全面安全控制。 + +(3)我们还会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识和安全意识。 + +(4)我们仅允许有必要知晓这些个人信息的我们及我们关联方的员工、合作伙伴访问您的个人信息,并为此设置了严格的访问权限控制和监控机制。我们同时要求可能接触到您的个人信息的所有人员履行相应的保密义务。如果未能履行这些义务,可能会被追究法律责任或被中止与我们的合作关系。 + +3、互联网并非绝对安全的环境,而且电子邮件、即时通讯、社交软件或其他服务软件等与其他用户的交流方式无法确定是否完全加密,我们建议您使用此类工具时请使用复杂密码,并注意保护您的个人信息安全。 + +4、我们将尽力确保或担保您发送给我们的任何个人信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致个人信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。 + +(四)安全事件处置 + +在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们同时将及时将事件相关情况以邮件、信函、短信、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。 + +请您理解,由于技术的限制以及风险防范的局限,即便我们已经尽量加强安全措施,也无法始终保证个人信息百分之百的安全。您需要了解,您接入 TanCloud 服务所用的系统和通讯网络,有可能因我们可控范围外的情况而发生问题。 + +五、如何管理您的个人信息 + +我们鼓励您更新和修改您的个人信息以使其更准确有效,也请您理解,您更正、删除、撤回授权或停止使用 TanCloud 服务的决定,并不影响我们此前基于您的授权而开展的个人信息处理。 + +您可以通过以下方式来管理您的个人信息: + +(一)访问您的个人信息 + +1、账户个人信息:如果您希望访问您的账户中的个人基本个人信息(包括头像、昵称、生日、公司、地址等),您可以登录账号通过"个人中心"进行访问。 + +2、订单个人信息:您可以在"控制台-费用管理-订单信息"查看您的所有订单状态。 + +(二)更正您的个人信息 + +如果您希望更正您的账户中的个人基本个人信息(包括头像、昵称、手机号等),您可以登录账号在"个人中心"进行修改。 + +(三)删除您的个人信息 + +您可以通过"(一)访问、更正您的个人信息"中列明的方式自主删除您的部分个人信息。在部分个人信息删除时,我们可能会要求您进行身份验证,以保障个人信息安全。 + +在以下情形中,您可以向我们提出删除个人信息的请求: + +1、如果我们处理个人信息的行为违反法律法规; + +2、如果我们收集、使用您的个人信息,却未征得您的授权同意; + +3、如果我们处理个人信息的行为严重违反了与您的约定; + +4、如果我们不再为您提供 TanCloud 服务。 + +若我们决定响应您的删除请求,我们还将同时尽可能通知从我们处获得您的个人信息的实体,要求其及时删除,除非法律法规另有规定,或这些实体获得您的独立授权。 + +(四)改变您授权同意的范围 + +您总是可以选择是否披露个人信息。有些个人信息是使用 TanCloud 服务所必需的,但大多数其他个人信息的提供是由您决定的。您可以通过"本条(一)访问、更正您的个人信息"中列明的方式"删除个人信息、关闭设备功能或注销账号等方式改变您授权我们继续收集个人信息的范围或通过本政策第九条【如何联系我们】约定的联系方式联络我们撤回您的授权,一般情况下,我们将在十五天内予以回复。 + +(五)注销您的账号 + +如果您不再使用 TanCloud 服务,在符合服务协议约定条件及国家相关法律法规规定的情况下,您可以通过登录" TanCloud "-"个人中心"-"安全等级"-"账号注销"所示的流程或本政策第九条【如何联系我们】约定的联系方式联络我们注销您的账号,一般情况下,我们将在十五个工作日内为您注销账号,届时我们将停止为您提供 TanCloud 服务。当您的帐号注销或被删除后,与该帐号相关的 TanCloud 服务项下的全部服务资料和数据将被删除或匿名化处理,但法律法规另有规定的除外。 + +(六)获取个人信息副本:您可以通过邮箱 sales@TanCloud.cn 服务渠道联系我们并且告知我们您想要获取您的个人信息副本,一般情况下,我们将在收到您的问题之日起十五天内予以回复。 + +(七)响应您的上述请求 + +为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。我们可能会先要求您验证自己的身份,然后再处理您的请求。对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情收取一定成本费用。对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,我们可能会予以拒绝。 + +在以下情形中,我们将无法响应您的请求: + +1、与我们履行法律法规规定的义务相关的; + +2、与国家安全、国防安全直接相关的; + +3、与公共安全、公共卫生、重大公共利益直接相关的; + +4、与刑事侦查、起诉、审判和执行判决等直接相关的; + +5、我们有充分证据表明您存在主观恶意或滥用权利的; + +6、出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的; + +7、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的; + +8、涉及商业秘密的。 + +六、第三方服务 + +TanCloud 服务可能链接至第三方提供的社交媒体或其他服务(包括网站或其他服务形式)。包括: + +(一)您可利用"分享"键将某些 TanCloud 服务内容分享到第三方服务,或您将第三方服务内容分享到 TanCloud 。这些功能可能会收集您的信息(包括您的日志信息),并可能在您的电脑装置 Cookies,从而正常运行上述功能; + +(二)我们通过广告或我们服务的其他方式向您提供链接,使您可以链接至第三方的服务或网站; + +(三)其他接入第三方服务的情形。为实现本政策中声明的目的,我们可能会接入第三方服务商提供的 SDK 或其他类似的应用程序,并将我们依照本政策收集的您的某些信息共享给该等第三方服务商,以便提供更好的客户服务和用户体验。目前,我们接入的第三方服务商主要包括以下几种类型: + +(1)用于广告相关服务,包括广告展示、广告数据监测/统计等; + +(2)用于消息推送功能,包括手机厂商 Push 推送、特定事件提醒等; + +(3)用于支付相关服务,包括订单支付、交易行为核验、收入结算、支付信息汇总统计等; + +(4)用于在您同意的情况下获取设备位置权限、搜集设备信息和日志信息等; + +(5)用于第三方授权服务,包括第三方帐号登陆、将有关内容分享至第三方产品等; + +(6)用于支持产品功能模块,包括在线直播、视频播放、语音识别、智能客服、内容存储等; + +我们接入的部分第三方 SDK 或类似应用程序可能会收集您的个人信息,如您在我们的服务中使用这类由第三方提供的服务时,您同意将由其直接收集和处理您的信息。我们会评估这类第三方服务收集个人信息的合法性、正当性、必要性,要求该等第三方对您的个人信息采取保护措施,并严格遵守相关法律法规与监管要求。您也可以选择通过本政策"如何联系我们"章节所列的反馈渠道联系我们,我们会尽快为您作出解答。 + +如上所述服务由相关的第三方负责运营。您使用该等第三方服务(包括您向该等第三方提供的任何个人信息),须受第三方自己的服务条款及个人信息保护声明(而非本政策)约束,您需要仔细阅读其条款。我们仅会出于正当、必要、特定的目的共享您的信息。我们会要求他们履行相关保密义务并采取相应的安全措施。 + +七、未成年人保护 + +如您为未满 18 周岁的未成年人的,请务必让您的监护人仔细阅读本政策,并在征得您的监护人同意的前提下使用我们的服务或向我们提供个人信息。我们将根据国家相关法律法规的规定保护未成年人的相关个人信息。如监护人发现相关未成年人个人信息为未成年人自行填写,需要进行修改或删除处理的,请随时与我们联系。 + +特别地,若您是 14 周岁以下的儿童,请您通知您的监护人,并在您使用 TanCloud 服务、提交个人信息之前,寻求其同意和指导。 + +八、通知和修订 + +我们可能适时修改本政策的条款,该等修改构成本政策的一部分。对于重大变更,我们会提供更显著的通知,您如果不同意该等变更,可以选择停止使用 TanCloud 服务;如您仍然继续使用 TanCloud 服务的,即表示同意受经修订的本政策的约束。 + +我们鼓励您在每次使用 TanCloud 服务时都查阅我们的隐私政策。 + +我们可能在必需时(例如当我们由于系统维护而暂停某一项服务时)发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于推广的公告。 + +最后,您必须对您的账号和密码信息负有保密义务。任何情况下,请小心妥善保管。 + +九、法律适用与管辖 + +如果出现纠纷,双方协商一致解决;如果双方无法通过协商解决争端,则双方同意由中国国际经济贸易仲裁委员会(简称" CIETAC ")根据 CIETAC 有效的仲裁规则以及适用法律在中国北京进行仲裁,仲裁语言为中文,并由3名仲裁员进行审理。 + +十、如何联系我们 + +绵阳探云科技有限公司的联系地址为:四川省绵阳市涪城区绵安路35号。我们将按照本政策保护您的个人信息。 + +我们指定了个人信息保护专门人员,如您有关于个人信息安全的投诉和举报,或您对本政策、您的个人信息的相关事宜有任何问题、意见或建议,以及有关本政策或 TanCloud 的隐私措施的问题,请与我们联系:电话:18781603458;邮箱地址: gongchao@tancloud.cn 。 + +一般情况下,我们将在收到您的问题、意见或建议之日起十五天内予以回复。 \ No newline at end of file diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/private.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/private.md new file mode 100644 index 00000000000..f532ac410a6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/private.md @@ -0,0 +1,49 @@ +--- +id: private +title: 企业版 +sidebar_label: 企业版 +--- + +:::tip +**开源不等同于免费,如果您基于HertzBeat二次开发修改了[logo,名称,版权](https://github.com/dromara/hertzbeat/blob/master/NOTICE)等,请找我们授权,否则会有[法律风险](legal)。** +**我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得,也欢迎给我们[提供侵权线索](legal)。** +::: + +--- + +HertzBeat监控产品分开源社区版本和企业版本,企业版本提供用户管理,日志审计等更多企业级特性,维护团队快速响应企业需求。 + +## HertzBeat授权版(付费) + +我们提供社区开源版监控产品 HertzBeat, 个人和企业可以免费使用,**需要完整保留版权,Logo,商标,页脚版权声明,和归属声明**。 +有些情况企业基于开源版本二次开发需要修改版权LOGO和归属声明等,对这样需求我们推出了 **HertzBeat授权版**。 +此授权需付费,我们实行企业规模阶梯定价,并会赠送技术支持等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:授权+团队名 + +## 企业版TanCloud(付费) + +监控系统企业版本为TanCloud团队针对企业级需求特别推出的版本,提供**用户管理,权限,日志等企业级特性**,得到我们维护团队的快速响应与技术支持。 +企业版本为付费版本,我们实行企业规模阶梯定价,并会赠送技术支持,免费维护期,技术讲解等,关于具体方案及价格,请加我们微信 tan-cloud 咨询,加微信请备注:企业版+团队名 + +欢迎介绍业务成为推荐官,交易成功有奖励哦 + +## 增值服务(付费) + +我们提供技术支持,讲解,企业监控方案设计咨询等系列增值服务,欢迎加微信 tan-cloud 咨询了解,加微信请备注:增值服务+团队名 + +- 一对一hertzbeat项目答疑讲解: 888元/2小时 + +如果您觉得看hertzbeat源码,文档等有疑惑,或遇到了技术难点或在功能使用上有疑惑,都可以联系我们,我们提供hertzbeat相关讲解答疑服务。 + +- 有偿远程安装部署服务:666元/1次 + +如果您不想自己部署hertzbeat,或在搭建部署中遇到困难,我们提供远程帮您安装部署hertzbeat监控服务。 + +- 新增适配监控类型:1000元-5000元/1款 + +如果您企业需要基于hertzbeat新增适配一款目前还没有的监控类型,或对您企业的内部服务定制化适配监控,我们提供定制化监控服务,根据复杂度收费1000元-5000元不等。 + +- 快速答疑群: 1000元/1月 + +为您团队专门拉一个答疑小群,快速响应群内的各种问题。 + +> **请您理解我们这些付费点,开源不代表什么都免费,我们也是全职在做开源这件事情,因为爱和理想,但我们也需要面包和大米来保证开源这件事能持续下去,而不是做着做着就中断了。** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/resource.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/resource.md new file mode 100644 index 00000000000..c799bff2f31 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/resource.md @@ -0,0 +1,25 @@ +--- +id: resource +title: 相关资源 +sidebar_label: 相关资源 +--- + +## 图标资源 + +### HertzBeat LOGO + +![logo](/img/tancloud-logo.svg) + +下载: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.svg) [PNG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.png) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.jpg) + +### HertzBeat Brand LOGO + +![logo](/img/hertzbeat-brand.svg) + +下载: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/hertzbeat-brand.svg) [PNG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/hertzbeat-brand.png) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/hertzbeat-brand.jpg) + +### TANCLOUD Brand LOGO + +![logo](/img/tancloud-brand.svg) + +下载: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-brand.svg) [PNG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-brand.png) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-brand.jpg) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/service.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/service.md new file mode 100644 index 00000000000..441e52e8156 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/service.md @@ -0,0 +1,189 @@ +--- +id: service +title: TanCloud 通用服务条款 +sidebar_label: 通用服务条款 +--- + +> 本版更新日期:2022 年 02 月 17 日 + +欢迎您与绵阳探云科技科技有限公司(以下简称“TanCloud”)共同签署本《TanCloud 产品服务协议》(下称“本协议”)并使用 TanCloud 服务! + +协议中条款前所列索引关键词仅为帮助您理解该条款表达的主旨之用,不影响或限制本协议条款的含义或解释。为维护您自身权益,建议您仔细阅读各条款具体表述。 + +【审慎阅读】您在同意本协议之前,应当认真阅读本协议。请您务必审慎阅读、充分理解各条款的内容,特别是免除或者限制责任的条款、法律适用和争议解决条款,这些条款将以粗体下划线标识,您应重点阅读。如您对协议有任何疑问,可以向客服和相关业务部门进行咨询。 + +【签约动作】当您阅读并点击同意本协议或以其他方式选择接受本协议后,即表示您已充分阅读、理解并接受本协议的全部内容,并与TanCloud达成一致。本协议自您通过网络页面点击确认或以其他方式选择接受本协议之日起成立。阅读本协议的过程中,如果您不同意本协议或其中任何条款约定,请勿进行签约动作。 + +通用服务条款 +1. 签约主体及协议范围 + 本服务协议是您与绵阳探云科技科技有限公司就您使用 TanCloud 服务所签署的服务协议。 + +2. 服务内容 + 本条款中“服务”指:TanCloud 服务 tancloud.cn 网站和客户端(以下单独或统称“TanCloud”)所展示的、您申请订购且 TanCloud 同意向您提供的服务 + +3. 服务费用 +3.1. 服务费用将在您订购页面予以列明公示,您可自行选择具体服务类型并按列明的价格予以支付。TanCloud 仅供选择先付费的服务。 + +3.2. 先付费: + +3.2.1. 在您付费之后,TanCloud 才开始为您提供服务。您未在下单后立即付费的,订单会失效,订单失效后 TanCloud 与您就服务所达成的合意失效。 + +3.2.2. 服务期满双方愿意继续合作的,您至少应在服务期满前7天内支付续费款项,以使服务得以继续进行。 + +3.3. TanCloud 保留在您未按照约定支付全部费用之前不向您提供服务和/或技术支持,或者终止服务和/或技术支持的权利。同时,TanCloud 保留对您的欠费要求您按日承担万分之五的违约金以及追究其他法律责任的权利。 + +3.4. 您完全理解 TanCloud 价格体系中所有的赠送服务项目或优惠活动均为 TanCloud 在正常服务价格之外的一次性特别优惠,赠送的服务项目或优惠活动不可折价、冲抵服务价格。 + +4. 您的权利和义务 +4.1. 成功订购服务后,您有权要求 TanCloud 按照本服务协议以及 TanCloud 网站相关页面所展示的服务说明、技术规范等内容向您提供服务。 + +4.2. 您订购 TanCloud 的服务后,您可享受免费的售后服务。除此之外 TanCloud 并提供其他付费的技术服务。 + +4.3. 您应按照 TanCloud 的网站页面提示及本服务协议的约定支付相应服务费用。 + +4.4. 就 TanCloud 服务的使用应符合 TanCloud 的《服务使用规则》以及本服务协议。 + +4.5. 您对自己存放在 TanCloud 云平台上的数据以及进入和管理 TanCloud 云平台上各类产品与服务的口令、密码的完整性和保密性负责。因您维护不当或保密不当致使上述数据、口令、密码等丢失或泄漏所引起的损失和后果均由您承担。 + +4.6. 您须依照《网络安全法》、《互联网信息服务管理办法》等法律法规的规定保留自己网站的访问日志记录,包括发布的信息内容及其发布时间、互联网地址(IP)、域名等,国家有关机关依法查询时应配合提供。您将承担未按规定保留相关记录而引起的相应法律责任。 + +4.7. 为了数据的安全,您应负责您数据的备份工作。 TanCloud 的产品或服务可能会为您配置数据备份的功能或工具,您负责操作以完成备份。 + +4.8. 您应对您的用户业务数据的来源及内容负责,TanCloud 提示您谨慎判断数据来源及内容的合法性。您将承担因您的用户业务数据内容违反法律法规、部门规章或国家政策而造成的相应结果及责任。 + +4.9. 您理解并同意,中华人民共和国的国家秘密受法律保护,您有保守中华人民共和国的国家秘密的义务;您使用 TanCloud 服务应遵守相关保密法律法规的要求,并不得危害中华人民共和国国家秘密的安全。 + +4.10. 您还应仔细阅读并遵守 TanCloud 在网站页面上展示的相应服务说明、技术规范、使用流程、操作文档等内容(以上简称“操作指引”),依照相关操作指引进行操作。您将承担违反相关操作指引所引起的后果;同时,TanCloud 郑重提示您,请把握风险谨慎操作。 + +5. TanCloud 的权利、义务 +5.1. TanCloud 应按照约定提供服务。 + +5.2. 服务期限内,TanCloud 将为您提供如下售后服务: + +5.2.1. TanCloud 将提供 7×24 企业微信服务群以及在线工单咨询服务,解答您在使用中的问题; + +5.2.2. TanCloud 将为您提供故障支持服务,您应通过在线工单申报故障; TanCloud 将及时就您非人为操作所出现的故障提供支持,但因您的人为原因和/或不可抗力、以及其他非 TanCloud 控制范围内的事项除外。 + +5.3. 您还可通过 TanCloud 获得其他付费的售后服务,具体详见 TanCloud 的网站相关页面的收费售后服务内容。 + +5.4. TanCloud 仅负责 TanCloud 提供的软件的运营维护,TanCloud 软件之外部分(如您的身份源、数据源、应用程序)由您负责。 + +5.5. 您了解 TanCloud 无法保证其所提供的服务毫无瑕疵(如 TanCloud 安全产品并不能保证您的硬件或软件的绝对安全),但 TanCloud 承诺不断提升服务质量及服务水平。所以您同意:即使 TanCloud 提供的服务存在瑕疵,但上述瑕疵是当时行业技术水平所无法避免的,其将不被视为 TanCloud 违约。您同意和 TanCloud 一同合作解决上述瑕疵问题。 + +5.6. TanCloud 的某些服务可能具备账户授权管理功能,即您可将您对服务的全部或部分操作权限授权给您指定的一个或多个被授权账户,此种情况下,任一被授权账户下进行的所有操作行为,均将被视为您通过本人账户所进行的行为,都将由您承担相应的责任和由此产生的服务费用 + +5.7. 您理解并认可,TanCloud 将为您提供基于某些服务的安全协议(如 LDAP、SAML、OIDC)以及管理与监控的相关功能及服务(如“用户概览”),尽管 TanCloud 对该等服务经过详细的测试,但并不能保证其与所有的软硬件系统完全兼容,亦不能保证其软件及服务的完全准确性。如果出现不兼容及软件错误的情况,您应立即关闭或停止使用相关功能,并及时联系 TanCloud ,获得技术支持。 + +5.8. 您应理解并同意,TanCloud 在对服务进行公测、邀测等您免费试(使)用服务期间或免费服务额度内,虽然 TanCloud 会对服务可用性和可靠性提供支撑,但将不对任何服务可用性、可靠性做出承诺,TanCloud 亦不对您使用或不能使用 TanCloud 服务的工作或结果承担任何责任。 TanCloud 保留日后对该等免费服务收取费用的可能性,收取服务费用之前,TanCloud 将另行通知您。 + +6. 用户业务数据 +6.1. TanCloud 理解并认可,您通过 TanCloud 提供的服务,加工、存储、上传、下载、分发以及通过其他方式处理的数据,均为您的用户业务数据,您完全拥有您的用户业务数据。 + +6.2. 就用户业务数据,TanCloud 除执行您的服务要求外,不进行任何未获授权的使用及披露;但以下情形除外: + +6.2.1. 在国家有关机关依法查询或调阅用户业务数据时,TanCloud 具有按照相关法律法规或政策文件要求提供配合,并向第三方或者行政、司法等机构披露的义务; + +6.2.2. 您和 TanCloud 另行协商一致。 + +6.3. 您可自行对您的用户业务数据进行删除、更改等操作。如您释放服务或删除数据的,TanCloud 将删除您的数据,按照您的指令不再保留该等数据。就数据的删除、更改等操作,您应谨慎操作 + +6.4. 当服务期届满、服务提前终止(包括双方协商一致提前终止,其他原因导致的提前终止等)或您发生欠费时,除法律法规明确规定、主管部门要求或双方另有约定外,TanCloud 仅在一定的缓冲期(以您所订购的服务适用的专有条款、产品文档、服务说明等所载明的时限为准)内继续存储您的用户业务数据(如有),缓冲期届满 TanCloud 将删除所有用户业务数据,包括所有缓存或者备份的副本,不再保留您的任何用户业务数据。 + +6.5. 用户业务数据一经删除,即不可恢复;您应承担数据因此被删除所引发的后果和责任,您理解并同意,TanCloud 没有继续保留、导出或者返还用户业务数据的义务。 + +6.6. TanCloud 恪守对用户的安全承诺,根据适用的法律保护用户存储在 TanCloud 数据中心的数据。 + +7. 知识产权 +7.1. 在本协议项下一方向对方提供的任何资料、技术或技术支持、软件、服务等的知识产权均属于提供一方或其合法权利人所有; 除提供方或合法权利人明示同意外,另一方无权复制、传播、转让、许可或提供他人使用上述知识成果,否则应承担相应的责任。 + +7.2. 您应保证提交 TanCloud 的素材、对 TanCloud 服务的使用及使用 TanCloud 服务所产生的成果未侵犯任何第三方的合法权益。 TanCloud 应保证向您提供的服务未侵犯任何第三方的合法权益。 + +7.3. 如果第三方机构或个人对您使用 TanCloud 服务所涉及的相关素材的知识产权归属提出质疑或投诉,或对您使用的 TanCloud 服务的知识产权的归属提出质疑或投诉,您和 TanCloud 均有责任出具相关知识产权证明材料,并配合对方的相关投诉处理工作。对于因此引起的索赔、诉讼或可能向其提起诉讼,违约方应负责解决,承担费用和损失,以及使另一方免责。 + +8. 保密条款 +8.1. 本服务条款所称保密信息,是指一方(以下简称“接受方”)从对方(以下简称“披露方”)取得的、获知的、或因双方履行本协议而产生的商业秘密(包括财务秘密)、技术秘密、经营诀窍和(或)其他应予保密的信息和资料(包括产品资料,产品计划,价格,财务及营销规划,业务战略,客户信息,客户数据,研发,软件,硬件,API应用数据接口,技术说明,设计,特殊公式,特殊算法等),无论上述信息和资料以何种形式或载于何种载体,无论披露方在披露时是否以口头、图像或书面等方式表明其具有保密性。 + +8.2. 双方应采取适当措施妥善保存对方提供的保密信息,措施的审慎程度不少于其保护自身的保密信息时的审慎程度。双方仅能将保密信息用于与本协议项下的有关用途或目的。 + +8.3. 双方保证保密信息仅可在各自一方从事该业务的负责人和雇员范围内知悉,并严格限制接触上述保密信息的员工遵守本条之保密义务。 + +8.4. 本条上述限制条款不适用于以下情况: + +8.4.1. 在签署本协议之时或之前,该保密信息已以合法方式属接受方所有; + +8.4.2. 保密信息在通知给接受方时,已经公开或能从公开领域获得; + +8.4.3. 保密信息是接受方从与其没有保密或不透露义务的第三方获得的; + +8.4.4. 在不违反本协议约定责任的前提下,该保密信息已经公开或能从公开领域获得; + +8.4.5. 该保密信息是接受方或其关联或附属公司独立开发,而且未从通知方或其关联或附属公司获得的信息中获益; + +8.4.6. 接受方应法院或其它法律、行政管理部门要求(通过口头提问、询问、要求资料或文件、传唤、民事或刑事调查或其他程序)因而透露保密信息; + +8.4.7. 接受方为向行政管理部门、行业协会等机构申请某项业务资质、获得某项认定、或符合国家、行业标准/认证,需结合对方情况向前述机构提交材料或进行说明的而披露的信息,在该等情况下,接受方应秉持必要情况下最少披露原则及要求因此获知保密信息的机构按不低于本协议的标准予以保密。 + +8.5. 您和 TanCloud 都应尽最大的努力保护上述保密信息不被泄露。一旦发现有上述保密信息泄露事件,双方应合作采取一切合理措施避免或者减轻损害后果的产生。如因此给对方造成损失的,应赔偿因此给对方造成的直接经济损失。 + +9. 服务的开通、终止与变更 +9.1. 先付费的服务: + +9.1.1. 您付费后服务即开通,开通后您获得 TanCloud 向您发送的登录、使用服务的密钥、口令即可使用服务,服务期限自开通之时起算(而非自您获得登录、使用服务的密钥、口令时起算); + +9.1.2. 以包年包月等固定期限形式售卖的服务,服务期限至订购的期限届满为止;以资源包(或套餐包)形式售卖的服务,服务期限则至您订购的资源包服务期限到期或资源包中的服务被使用完毕为止(以前述二者早发生为准); + +9.1.3. 您应在服务期限内将资源包的服务数量使用完毕,如资源包的服务期限届满,您已订购但未使用完毕的服务将被作废且 TanCloud 将不提供其他替代或补充。 + +9.1.4. 您对于服务的使用将优先消耗订购的资源包,除法定及双方另行约定外,如资源包中的各项服务使用完毕或者服务期限到期,且您未继续订购资源包服务但持续使用此项服务的,TanCloud 将视为您使用 TanCloud 以后付费形式售卖的该服务(如有),TanCloud 将持续计费并根据计费结果予以扣划服务费用。 + +9.2. 发生下列情形之一的,服务期限提前终止: + +9.2.1. 双方协商一致提前终止的; + +9.2.2. 您严重违反本协议(包括,您严重违反相关法律法规规定,或您严重违反本协议项下之任一承诺内容等),TanCloud 有权提前终止服务直至清除您的全部数据; + +9.2.3. 您理解并充分认可,虽然 TanCloud 已经建立(并将根据技术的发展不断完善)必要的技术措施来防御包括计算机病毒、网络入侵和攻击破坏(包括DDoS)等危害网络安全事项或行为(以下统称该等行为),但鉴于网络安全技术的局限性、相对性以及该等行为的不可预见性,因此如因您网站遭遇该等行为而给 TanCloud 或者 TanCloud 的其他网络或服务器(包括本地及外地和国际的网络、服务器等)带来危害,或影响 TanCloud 与国际互联网或者 TanCloud 与特定网络、服务器及 TanCloud 内部的通畅联系,TanCloud 可决定暂停或终止服务。如果终止服务的,将按照实际提供服务月份计算(不足一个月的按天计)服务费用,将剩余款项(如有)返还。 + +9.2.4. TanCloud 可提前30天在 TanCloud 网站上通告或给您发网站内通知或书面通知的方式终止本服务服务协议;届时 TanCloud 应将您已预付但未消费的款项退还至您的 TanCloud 账户。 + +9.3. 您理解并认可,为技术升级、服务体系升级、或因经营策略调整或配合国家重大技术、法规政策等变化,TanCloud 不保证永久的提供某种服务,并有权变更所提供服务的形式、规格或其他方面(如服务的价格和计费模式),在终止该种服务或进行此种变更前,TanCloud 将尽最大努力且提前以网站公告、站内信、邮件或短信等一种或多种方式进行事先通知。 + +10. 违约责任 +10.1. 您违反本协议中的承诺、保证条款、服务使用规则或义务的任一内容,或 TanCloud 根据其判断认为您的使用行为存在异常的,TanCloud 均有权就其情节,根据独立判断并单方采取以下措施中的一种或多种:(1)限制、中止使用服务;(2)终止提供服务,终止本协议;(3)追究您的法律责任;(4)其他 TanCloud 认为适合的处理措施。 TanCloud 依据前述约定采取中止服务、终止服务等措施而造成的用户损失将由您承担。 + +10.2. 如因您违反有关法律法规或者本协议、相关规则之规定,使 TanCloud 遭受任何损失、受到其他用户、任何第三方的索赔或任何行政管理部门的处罚,您应对 TanCloud、其他用户或相关第三方的实际损失进行全额赔偿,包括合理的律师费用。 + +10.3. 您理解且同意,鉴于计算机、互联网的特殊性,下述情况不属于 TanCloud 违约: + +10.3.1. TanCloud 在进行系统及服务器配置、维护、升级时,需要短时间中断服务; + +10.3.2. 由于 Internet 上的通路阻塞造成您网站访问速度下降。 + +10.4. 如果因 TanCloud 原因造成您连续 72 小时不能正常使用服务的,您可终止接受服务,但非 TanCloud 控制之内的原因引起的除外。 + +10.5. 在任何情况下,TanCloud 均不对任何间接性、后果性、惩戒性、偶然性、特殊性的损害,包括您使用 TanCloud 服务而遭受的利润损失承担责任(即使您已被告知该等损失的可能性)。 + +10.6. 在法律允许的情况下,TanCloud 在本协议项下所承担的损失赔偿责任不超过就该服务过往 12 个月所缴纳的服务费用的总和。 + +11. 不可抗力 +11.1. 因不可抗力或者其他意外事件,使得本服务条款的履行不可能、不必要或者无意义的,遭受不可抗力、意外事件的一方不承担责任。 + +11.2. 不可抗力、意外事件是指不能预见、不能克服并不能避免且对一方或双方当事人造成重大影响的客观事件,包括自然灾害如洪水、地震、瘟疫流行等以及社会事件如战争、动乱、政府行为、电信主干线路中断、黑客、网路堵塞、电信部门技术调整和政府管制等。 + +12. 法律适用及争议解决 +12.1. 本协议之订立、生效、解释、修订、补充、终止、执行与争议解决均适用中华人民共和国大陆法律。 + +12.2. 您因使用 TanCloud 服务所产生及与 TanCloud 服务有关的争议,由 TanCloud 与您协商解决。协商不成时,任何一方均可向北京市海淀区人民法院提起诉讼。 + +13. 附则 +13.1. 本协议的附件,以及 TanCloud 在 TanCloud 网站相关页面上的服务说明、价格说明和您确认同意的订购页面(包括产品的专用条款、服务说明、操作文档等)均为本协议不可分割的一部分。如遇不一致之处,以(1)服务说明、价格说明、其他订购页面,(2)专用条款和附件,(3)本协议通用条款的顺序予以适用。 + +13.2. 如本协议内容发生变动,TanCloud 应通过提前30天在 TanCloud 网站的适当版面公告向您提示修改内容;如您继续使用 TanCloud 服务,则视为您接受 TanCloud 所做的相关修改。 + +13.3. TanCloud 有权经提前通知将本协议的权利义务全部或者部分转移给 TanCloud 的关联公司。 + +13.4. TanCloud 于您过失或违约时放弃本协议规定的权利,不应视为其对您的其他或以后同类之过失或违约行为弃权。 + +13.5. 本协议任一条款被视为废止、无效或不可执行,该条应视为可分的且并不影响本协议其余条款的有效性及可执行性。 + +13.6. 本协议项下之保证条款、保密条款、知识产权条款、法律适用及争议解决条款等内容,不因本协议的终止而失效。 \ No newline at end of file diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/sponsor.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/sponsor.md new file mode 100644 index 00000000000..0b52c4e75a4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/others/sponsor.md @@ -0,0 +1,18 @@ +--- +id: sponsor +title: 赞助我们 +sidebar_label: 赞助我们 +--- + +**HertzBeat对个人或企业完全免费,我们也在全职做这件事情,如果您喜欢这个项目并且愿意提供帮助,请我们喝杯咖啡吧** + +planet + + +感谢[吉实信息(构建全新的微波+光交易网络)](https://www.flarespeed.com) 赞助服务器采集节点 +感谢[蓝易云(全新智慧上云)](https://www.tsyvps.com/aff/BZBEGYLX) 赞助服务器采集节点 +感谢[Postcat(开源 API 管理工具)](https://datayi.cn/w/xRxVBBko) 赞助 + + + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/account-modify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/account-modify.md new file mode 100644 index 00000000000..664b033dfa4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/account-modify.md @@ -0,0 +1,114 @@ +--- +id: account-modify +title: 配置修改账户密码(可选) +sidebar_label: 配置修改账户密码(可选) +--- + +HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat +若需要新增删除修改账户或密码,可以通过配置 `sureness.yml` 实现,若无此需求可忽略此步骤 +修改位于安装目录下的 `/hertzbeat/config/sureness.yml` 的配置文件,docker环境目录为`opt/hertzbeat/config/sureness.yml`,建议提前挂载映射 +配置文件内容参考 项目仓库[/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) + +```yaml + +resourceRole: + - /api/account/auth/refresh===post===[admin,user,guest] + - /api/apps/**===get===[admin,user,guest] + - /api/monitor/**===get===[admin,user,guest] + - /api/monitor/**===post===[admin,user] + - /api/monitor/**===put===[admin,user] + - /api/monitor/**===delete==[admin] + - /api/monitors/**===get===[admin,user,guest] + - /api/monitors/**===post===[admin,user] + - /api/monitors/**===put===[admin,user] + - /api/monitors/**===delete===[admin] + - /api/alert/**===get===[admin,user,guest] + - /api/alert/**===post===[admin,user] + - /api/alert/**===put===[admin,user] + - /api/alert/**===delete===[admin] + - /api/alerts/**===get===[admin,user,guest] + - /api/alerts/**===post===[admin,user] + - /api/alerts/**===put===[admin,user] + - /api/alerts/**===delete===[admin] + - /api/notice/**===get===[admin,user,guest] + - /api/notice/**===post===[admin,user] + - /api/notice/**===put===[admin,user] + - /api/notice/**===delete===[admin] + - /api/tag/**===get===[admin,user,guest] + - /api/tag/**===post===[admin,user] + - /api/tag/**===put===[admin,user] + - /api/tag/**===delete===[admin] + - /api/summary/**===get===[admin,user,guest] + - /api/summary/**===post===[admin,user] + - /api/summary/**===put===[admin,user] + - /api/summary/**===delete===[admin] + +# 需要被过滤保护的资源,不认证鉴权直接访问 +# /api/v1/source3===get 表示 /api/v1/source3===get 可以被任何人访问 无需登录认证鉴权 +excludedResource: + - /api/account/auth/**===* + - /api/i18n/**===get + - /api/apps/hierarchy===get + # web ui 前端静态资源 + - /===get + - /dashboard/**===get + - /monitors/**===get + - /alert/**===get + - /account/**===get + - /setting/**===get + - /passport/**===get + - /**/*.html===get + - /**/*.js===get + - /**/*.css===get + - /**/*.ico===get + - /**/*.ttf===get + - /**/*.png===get + - /**/*.gif===get + - /**/*.jpg===get + - /**/*.svg===get + - /**/*.json===get + # swagger ui 资源 + - /swagger-resources/**===get + - /v2/api-docs===get + - /v3/api-docs===get + +# 用户账户信息 +# 下面有 admin tom lili 三个账户 +# eg: admin 拥有[admin,user]角色,密码为hertzbeat +# eg: tom 拥有[user],密码为hertzbeat +# eg: lili 拥有[guest],明文密码为lili, 加盐密码为1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin,user] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] +``` + +修改`sureness.yml`的如下**部分参数**:**[注意⚠️sureness配置的其它默认参数需保留]** + +```yaml + +# 用户账户信息 +# 下面有 admin tom lili 三个账户 +# eg: admin 拥有[admin,user]角色,密码为hertzbeat +# eg: tom 拥有[user],密码为hertzbeat +# eg: lili 拥有[guest],明文密码为lili, 加盐密码为1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin,user] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] +``` + + +**重启 HertzBeat 浏览器访问 http://ip:1157/ 即可探索使用 HertzBeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/custom-config.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/custom-config.md new file mode 100644 index 00000000000..50d50c46bd3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/custom-config.md @@ -0,0 +1,72 @@ +--- +id: custom-config +title: 常见参数配置 +sidebar_label: 常见参数配置 +--- + +这里描述了如果配置短信服务器,内置可用性告警触发次数等。 + +**`hertzbeat`的配置文件`application.yml`** + +### 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地 + 安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + +1. 配置短信发送服务器 + +> 只有成功配置了您自己的短信服务器,监控系统内触发的告警短信才会正常发送。 + +在`application.yml`新增如下腾讯平台短信服务器配置(参数需替换为您的短信服务器配置) +```yaml +common: + sms: + tencent: + secret-id: AKIDbQ4VhdMr89wDedFrIcgU2PaaMvOuBCzY + secret-key: PaXGl0ziY9UcWFjUyiFlCPMr77rLkJYlyA + app-id: 1435441637 + sign-name: 赫兹跳动 + template-id: 1343434 +``` +1.1 腾讯云短信创建签名(sign-name) +![image](https://github.com/dromara/hertzbeat/assets/40455946/3a4c287d-b23d-4398-8562-4894296af485) + +1.2 腾讯云短信创建正文模板(template-id) +``` +监控:{1},告警级别:{2}。内容:{3} +``` +![image](https://github.com/dromara/hertzbeat/assets/40455946/face71a6-46d5-452c-bed3-59d2a975afeb) + + +1.3 腾讯云短信创建应用(app-id) +![image](https://github.com/dromara/hertzbeat/assets/40455946/2732d710-37fa-4455-af64-48bba273c2f8) + +1.4 腾讯云访问管理(secret-id、secret-key) +![image](https://github.com/dromara/hertzbeat/assets/40455946/36f056f0-94e7-43db-8f07-82893c98024e) + + +2. 配置告警自定义参数 + +```yaml +alerter: + # 自定义控制台地址 + console-url: https://console.tancloud.cn +``` + +3. 使用外置redis代替内存存储实时指标数据 + +> 默认我们的指标实时数据存储在内存中,可以配置如下来使用redis代替内存存储。 + +注意⚠️ `memory.enabled: false, redis.enabled: true` +```yaml +warehouse: + store: + memory: + enabled: false + init-size: 1024 + redis: + enabled: true + host: 127.0.0.1 + port: 6379 + password: 123456 +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/docker-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/docker-deploy.md new file mode 100644 index 00000000000..5be02e67366 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/docker-deploy.md @@ -0,0 +1,145 @@ +--- +id: docker-deploy +title: 通过 Docker 方式安装 HertzBeat +sidebar_label: Docker方式部署 +--- + +> 推荐使用Docker部署HertzBeat + +1. 下载安装Docker环境 + Docker 工具自身的下载请参考以下资料: + [Docker官网文档](https://docs.docker.com/get-docker/) + [菜鸟教程-Docker教程](https://www.runoob.com/docker/docker-tutorial.html) + 安装完毕后终端查看Docker版本是否正常输出。 + + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. 拉取HertzBeat Docker镜像 + 镜像版本TAG可查看 [dockerhub 官方镜像仓库](https://hub.docker.com/r/tancloud/hertzbeat/tags) + 或者使用 [quay.io 镜像仓库](https://quay.io/repository/tancloud/hertzbeat) + + ```shell + $ docker pull tancloud/hertzbeat + ``` + 若网络超时或者使用 + ```shell + $ docker pull quay.io/tancloud/hertzbeat + ``` + +3. 部署HertzBeat您可能需要掌握的几条命令 + + ```shell + #查看所有容器(在运行和已经停止运行的容器) + $ docker ps -a + #启动/终止/重启/运行状态 + $ docker start/stop/restart/stats 容器id或者容器名 + #进入容器并打开容器的shell终端 + $ docker exec -it 容器id或者容器名 /bin/bash + #退出容器终端 + ctrl+p然后ctrl+q + #完全退出容器的终端 + ctrl+d或者 + $ exit + ``` + +4. 配置挂载的HertzBeat的配置文件(可选) + 在主机目录下创建application.yml,eg:/opt/application.yml + 配置文件完整内容见项目仓库[/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) 您可以根据需求修改配置文件 + - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 + - **推荐**若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](mysql-change)) + - **推荐**若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.td-engine`参数 具体步骤参见 [使用TDengine存储指标数据](tdengine-init) + - **推荐**若需使用时序数据库IotDB来存储指标数据库,需替换`application.yml`里面的`warehouse.storeiot-db`参数 具体步骤参见 [使用IotDB存储指标数据](iotdb-init) + +5. 配置挂载的HertzBeat用户配置文件,自定义用户密码(可选) + HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过配置 `sureness.yml` 实现,若无此需求可忽略此步骤 + 在主机目录下创建sureness.yml,eg:/opt/sureness.yml + 配置文件完整内容见项目仓库[/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) + 具体修改步骤参考 [配置修改账户密码](account-modify) + +6. 启动HertzBeat Docker容器 + +```shell +$ docker run -d -p 1157:1157 \ + -e LANG=zh_CN.UTF-8 \ + -e TZ=Asia/Shanghai \ + -v /opt/data:/opt/hertzbeat/data \ + -v /opt/logs:/opt/hertzbeat/logs \ + -v /opt/application.yml:/opt/hertzbeat/config/application.yml \ + -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml \ + --restart=always \ + --name hertzbeat tancloud/hertzbeat +``` + + 这条命令启动一个运行HertzBeat的Docker容器,并且将容器的1157端口映射到宿主机的1157端口上。若宿主机已有进程占用该端口,则需要修改主机映射端口。 + - `docker run -d` : 通过Docker运行一个容器,使其在后台运行 + + - `-p 1157:1157` : 映射容器端口到主机端口,请注意,前面是宿主机的端口号,后面是容器的端口号。 + + - `-e LANG=zh_CN.UTF-8` : (可选) 设置语言 + + - `-e TZ=Asia/Shanghai` : (可选) 设置时区 + + - `-v /opt/data:/opt/hertzbeat/data` : (可选,数据持久化)重要⚠️ 挂载H2数据库文件到本地主机,保证数据不会因为容器的创建删除而丢失 + + - `-v /opt/logs:/opt/hertzbeat/logs` : (可选,不需要可删除)挂载日志文件到本地主机,保证日志不会因为容器的创建删除而丢失,方便查看 + + - `-v /opt/application.yml:/opt/hertzbeat/config/application.yml` : (可选,不需要可删除)挂载上上一步修改的本地配置文件到容器中,即使用本地配置文件覆盖容器配置文件。我们需要修改此配置文件的MYSQL,TDengine配置信息来连接外部服务。 + + - `-v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (可选,不需要可删除)挂载上一步修改的账户配置文件到容器中,若无修改账户需求可删除此命令参数。 + + - 注意⚠️ 挂载文件时,前面参数为你自定义本地文件地址,后面参数为docker容器内文件地址(固定) + + - `--name hertzbeat` : 命名容器名称 hertzbeat + + - `--restart=always`:(可选,不需要可删除)使容器在Docker启动后自动重启。若您未在容器创建时指定该参数,可通过以下命令实现该容器自启。 + + ```shell + $ docker update --restart=always hertzbeat + ``` + + - `tancloud/hertzbeat` : 使用拉取最新的的HertzBeat官方发布的应用镜像来启动容器,**若使用`quay.io`镜像需用参数`quay.io/tancloud/hertzbeat`代替。** + +7. 开始探索HertzBeat + 浏览器访问 http://ip:1157/ 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +### Docker部署常见问题 + +**最多的问题就是网络问题,请先提前排查** + +1. **MYSQL,TDENGINE或IotDB和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败** +此问题本质为Docker容器访问宿主机端口连接失败,由于docker默认网络模式为Bridge模式,其通过localhost访问不到宿主机。 +> 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP +> 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` + +2. **按照流程部署,访问 http://ip:1157/ 无界面** +请参考下面几点排查问题: +> 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 +> 二:HertzBeat的配置文件 `application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以 `docker logs hertzbeat` 查看容器日志是否有明显错误,提issue或交流群或社区反馈 + +3. **日志报错TDengine连接或插入SQL失败** +> 一:排查配置的数据库账户密码是否正确,数据库是否创建 +> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +4. **监控历史图表长时间都一直无数据** +> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据 +> 二:Tdengine的数据库`hertzbeat`是否创建 +> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB或Tdengine IP账户密码等配置是否正确 + +5. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - +> 安装初始化此数据库参考 [TDengine安装初始化](tdengine-init) 或 [IoTDB安装初始化](iotdb-init) + +6. 安装配置了时序数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 请检查配置参数是否正确 +> iot-db 或td-engine enable 是否设置为true +> 注意⚠️若hertzbeat和IotDB,TDengine都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP +> 可根据logs目录下启动日志排查 + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/greptime-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/greptime-init.md new file mode 100644 index 00000000000..7107a0496f6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/greptime-init.md @@ -0,0 +1,62 @@ +--- +id: greptime-init +title: 依赖时序数据库服务GreptimeDB安装初始化 +sidebar_label: 使用GreptimeDB存储指标数据(可选) +--- + +HertzBeat的历史数据存储依赖时序数据库 GreptimeDB, 或 TDengine 或 IoTDB,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +GreptimeDB is an open-source time-series database with a special focus on scalability, analytical capabilities and efficiency. +It's designed to work on infrastructure of the cloud era, and users benefit from its elasticity and commodity storage. + +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +### 通过Docker方式安装GreptimeDB +> 可参考官方网站[安装教程](https://docs.greptime.com/getting-started/overview) +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Docker安装GreptimeDB + +```shell +$ docker run -p 4000-4004:4000-4004 \ + -p 4242:4242 -v /opt/greptimedb:/tmp/greptimedb \ + --name greptime \ + greptime/greptimedb standalone start \ + --http-addr 0.0.0.0:4000 \ + --rpc-addr 0.0.0.0:4001 +``` + + `-v /opt/greptimedb:/tmp/greptimedb` 为greptimedb数据目录本地持久化挂载,需将`/opt/greptimedb`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + +**修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.greptime`数据源参数,URL账户密码,并启用`enabled`为`true`** + +```yaml +warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + greptime: + enabled: true + endpoint: localhost:4001 +``` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库 GreptimeDB 或者 IoTDB 或者 TDengine 是否都需要配置,能不能都用 +> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/influxdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/influxdb-init.md new file mode 100644 index 00000000000..7e6b056511a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/influxdb-init.md @@ -0,0 +1,74 @@ +--- +id: influxdb-init +title: 依赖时序数据库服务InfluxDB安装初始化 +sidebar_label: 使用InfluxDB存储指标数据(可选) +--- + +HertzBeat的历史数据存储依赖时序数据库 InfluxDB, TDengine 或 IoTDB,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等。 注意支持⚠️ 1.x版本。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +### 1. 直接使用华为云服务 GaussDB For Influx + +> 开通使用[华为云云数据库 GaussDB For Influx](https://www.huaweicloud.com/product/gaussdbforinflux.html) + +> 获取云数据库对外暴露连接地址,账户密码即可 + +⚠️注意云数据库默认开启了SSL,云数据库地址应使用 `https:` + +### 2. 通过Docker方式安装InfluxDB +> 可参考官方网站[安装教程](https://hub.docker.com/_/influxdb) +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Docker安装InfluxDB 1.x + +```shell +$ docker run -p 8086:8086 \ + -v /opt/influxdb:/var/lib/influxdb \ + influxdb:1.8 +``` + + `-v /opt/influxdb:/var/lib/influxdb` 为influxdb数据目录本地持久化挂载,需将`/opt/influxdb`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + +**修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.influxdb`数据源参数,URL账户密码,并启用`enabled`为`true`** + +```yaml +warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + influxdb: + enabled: true + server-url: http://localhost:8086 + username: root + password: root + expire-time: '30d' + replication: 1 +``` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库InfluxDb, IoTDB和TDengine是否都需要配置,能不能都用 + +> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + + diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/iotdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/iotdb-init.md new file mode 100644 index 00000000000..9145649b602 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/iotdb-init.md @@ -0,0 +1,81 @@ +--- +id: iotdb-init +title: 依赖时序数据库服务IoTDB安装初始化 +sidebar_label: 使用IoTDB存储指标数据(可选) +--- + +HertzBeat的历史数据存储依赖时序数据库 IoTDB 或 TDengine,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +Apache IoTDB是一体化收集、存储、管理与分析物联网时序数据的软件系统,我们使用其存储分析采集到的监控指标历史数据。支持V0.12 - V0.13版本,推荐使用V0.13.*版本。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有IoTDB环境,可直接跳到YML配置那一步。 + + +### 通过Docker方式安装IoTDB +> 可参考官方网站[安装教程](https://iotdb.apache.org/zh/UserGuide/V0.13.x/QuickStart/WayToGetIoTDB.html) +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Docker安装IoTDB + +```shell +$ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ + -v /opt/iotdb/data:/iotdb/data \ + --name iotdb \ + apache/iotdb:0.13.3-node +``` + + `-v /opt/iotdb/data:/iotdb/data` 为IoTDB数据目录本地持久化挂载,需将`/iotdb/data`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +3. 在hertzbeat的`application.yml`配置文件配置IoTDB数据库连接 + + 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + +**修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置`warehouse.store.iot-db`数据源参数,HOST账户密码等,并启用`enabled`为`true`** + +```yaml +warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + # 启用IotDB + iot-db: + enabled: true + host: 127.0.0.1 + rpc-port: 6667 + username: root + password: root + # V_O_12 || V_0_13 + version: V_0_13 + # if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0 + query-timeout-in-ms: -1 + # 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期) + expire-time: '7776000000' +``` + +4. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用 +> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + +2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库 + +3. 安装配置了IotDB数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 请检查配置参数是否正确 +> iot-db enable是否设置为true +> 注意⚠️若hertzbeat和IotDB都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP +> 可根据logs目录下启动日志排查 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/mysql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/mysql-change.md new file mode 100644 index 00000000000..4f4d72c565f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/mysql-change.md @@ -0,0 +1,87 @@ +--- +id: mysql-change +title: 关系型数据库使用 Mysql 替换依赖的 H2 存储系统元数据 +sidebar_label: 元数据使用Mysql存储(可选) +--- +MYSQL是一款值得信赖的关系型数据库,HertzBeat除了支持使用默认内置的H2数据库外,还可以切换为使用MYSQL存储监控信息,告警信息,配置信息等结构化关系数据。 + +注意⚠️ 使用外置Mysql数据库替换内置H2数据库为可选项,但建议生产环境配置,以提供更好的性能 + +> 如果您已有MYSQL环境,可直接跳到数据库创建那一步。 + +### 通过Docker方式安装MYSQL +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Docker安装MYSQl + ``` + $ docker run -d --name mysql \ + -p 3306:3306 \ + -v /opt/data:/var/lib/mysql \ + -e MYSQL_ROOT_PASSWORD=123456 \ + --restart=always \ + mysql:5.7 + ``` + `-v /opt/data:/var/lib/mysql` 为mysql数据目录本地持久化挂载,需将`/opt/data`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +### 数据库创建 +1. 进入MYSQL或使用客户端连接MYSQL服务 + `mysql -uroot -p123456` +2. 创建名称为hertzbeat的数据库 + `create database hertzbeat default charset utf8mb4 collate utf8mb4_general_ci;` +3. 查看hertzbeat数据库是否创建成功 + `show databases;` + +### 修改hertzbeat的配置文件application.yml切换数据源 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + 替换里面的`spring.database`数据源参数,IP端口账户密码驱动 + ⚠️注意`application.yml`文件内容需完整,除下方修改内容外其他参数需保留,完整内容见[/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml) + +需修改部分原参数: +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL +``` +具体替换参数如下,需根据mysql环境配置账户密码IP: +```yaml +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false +``` + +2. 通过docker启动时,需要修改host为宿主机的外网Ip,包括mysql连接字符串和redis。 + + +**启动 HertzBeat 浏览器访问 http://ip:1157/ 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** + +### 常见问题 + +1. 缺少hibernate的mysql方言,导致启动异常 Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set + +如果上述配置启动系统,出现` Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set`异常, +需要在`application.yml`文件中增加以下配置: + +```yaml +spring: + jpa: + hibernate: + ddl-auto: update + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL5InnoDBDialect +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/package-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/package-deploy.md new file mode 100644 index 00000000000..209f954addb --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/package-deploy.md @@ -0,0 +1,73 @@ +--- +id: package-deploy +title: 通过安装包安装 HertzBeat +sidebar_label: 安装包方式部署 +--- +> HertzBeat支持在Linux Windows Mac系统安装运行,CPU支持X86/ARM64。 +> 由于安装包自身不包含JAVA运行环境,需您提前准备JAVA运行环境。 + +1. 安装JAVA运行环境-可参考[官方网站](http://www.oracle.com/technetwork/java/javase/downloads/index.html) + 要求:JAVA11环境 + 下载JAVA安装包: [镜像站](https://repo.huaweicloud.com/java/jdk/) + 安装后命令行检查是否成功安装 + ``` + $ java -version + java version "11.0.12" + Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237) + Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode) + + ``` + +2. 下载HertzBeat安装包 + 下载您系统环境对应的安装包 + - 从[GITEE Release](https://gitee.com/dromara/hertzbeat/releases) 仓库下载 + - 从[GITHUB Release](https://github.com/dromara/hertzbeat/releases) 仓库下载 + +3. 配置HertzBeat的配置文件(可选) + 解压安装包到主机 eg: /opt/hertzbeat + ``` + $ tar zxvf hertzbeat-[版本号].tar.gz + ``` + 修改位于 `hertzbeat/config/application.yml` 的配置文件(可选),您可以根据需求修改配置文件 + - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 + - **推荐**若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](mysql-change)) + - **推荐**若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.td-engine`参数 具体步骤参见 [使用TDengine存储指标数据](tdengine-init) + - **推荐**若需使用时序数据库IotDB来存储指标数据库,需替换`application.yml`里面的`warehouse.storeiot-db`参数 具体步骤参见 [使用IotDB存储指标数据](iotdb-init) + +4. 配置用户配置文件(可选,自定义配置用户密码) + HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过修改位于 `hertzbeat/config/sureness.yml` 的配置文件实现,若无此需求可忽略此步骤 + 具体参考 [配置修改账户密码](account-modify) + +5. 部署启动 + 执行位于安装目录hertzbeat/bin/下的启动脚本 startup.sh, windows环境下为 startup.bat + ``` + $ ./startup.sh + ``` + +⚠️注意,如果在多java环境中,环境变量中JAVA已经配置了其他java环境如`java8`,没有`java11`,需编辑`$ ./startup.sh ` 或 `startup.bat`手动指定java路径。 +`startup.sh`在第一行添加`JAVA_HOME=${JAVA_DIR}`,`startup.bat`修改`start javaw %JAVA_OPTS% %JAVA_MEM_OPTS% %CONFIG_FILES% -jar %DEPLOY_DIR%\%JAR_NAME% >logs\startup.log 2>&1 &`中的`javaw`为`java11`的路径,如`C:\Users\user\.jdks\corretto-11.0.18\bin\javaw` + +6. 开始探索HertzBeat + 浏览器访问 http://ip:1157/ 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +### 安装包部署常见问题 + +**最多的问题就是网络问题,请先提前排查** + +1. **按照流程部署,访问 http://ip:1157/ 无界面** + 请参考下面几点排查问题: +> 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 +> 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 + +2. **日志报错TDengine连接或插入SQL失败** +> 一:排查配置的数据库账户密码是否正确,数据库是否创建 +> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +3. **监控历史图表长时间都一直无数据** +> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据 +> 二:若使用了Tdengine,排查Tdengine的数据库`hertzbeat`是否创建 +> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB 或 Tdengine IP账户密码等配置是否正确 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/postgresql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/postgresql-change.md new file mode 100644 index 00000000000..ef349af156a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/postgresql-change.md @@ -0,0 +1,84 @@ +--- +id: postgresql-change +title: 关系型数据库使用 PostgreSQL 替换依赖的 H2 存储系统元数据 +sidebar_label: 元数据使用PostgreSQL存储(可选) +--- +PostgreSQL是一个功能强大,开源的关系型数据库管理系统(RDBMS)。HertzBeat除了支持使用默认内置的H2数据库外,还可以切换为使用PostgreSQL存储监控信息,告警信息,配置信息等结构化关系数据。 + +注意⚠️ 使用外置PostgreSQL数据库替换内置H2数据库为可选项,但建议生产环境配置,以提供更好的性能 + +> 如果您已有PostgreSQL环境,可直接跳到数据库创建那一步。 + + +### 通过Docker方式安装PostgreSQL + +1. Download and install the Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/)。 + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装 PostgreSQL + ``` + $ docker run -d --name postgresql -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgresql:15 + ``` + 使用```$ docker ps```查看数据库是否启动成功 + +3. Create database in container manually or with [script](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose/hertzbeat-postgresql-iotdb/conf/sql/schema.sql). + +### 数据库创建 + +1. 进入 PostgreSQL 或使用客户端连接 PostgreSQL 服务 + ``` + su - postgres + psql + ``` + +2. 创建名称为hertzbeat的数据库 + `CREATE DATABASE hertzbeat;` + +3. 查看hertzbeat数据库是否创建成功 + `\l` + +### 修改hertzbeat的配置文件application.yml切换数据源 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + 替换里面的`spring.database`数据源参数,IP端口账户密码驱动 + ⚠️注意`application.yml`文件内容需完整,除下方修改内容外其他参数需保留,完整内容见[/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml) + +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL +``` +具体替换参数如下,需根据 PostgreSQL 环境配置账户密码IP: +```yaml +spring: + config: + activate: + on-profile: prod + datasource: + driver-class-name: org.postgresql.Driver + username: root + password: 123456 + url: jdbc:postgresql://127.0.0.1:5432/hertzbeat + hikari: + max-lifetime: 120000 + + jpa: + database: postgresql + hibernate: + ddl-auto: update + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQLDialect +``` + +**启动 HertzBeat 浏览器访问 http://ip:1157/ 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/quickstart.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/quickstart.md new file mode 100644 index 00000000000..29b33e2cab9 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/quickstart.md @@ -0,0 +1,92 @@ +--- +id: quickstart +title: 快速开始 +sidebar_label: 快速开始 +--- + +### 🐕 开始使用 + +- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻[登录注册](https://console.tancloud.cn)免费使用。 +- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 + +### 🐵 依赖服务部署(可选) + +> HertzBeat依赖于 **关系型数据库** H2(默认已内置无需安装) 或 [Mysql](mysql-change) 和 **时序性数据库** [TDengine2+](tdengine-init) 或 [IOTDB](iotdb-init) (可选) + +**注意⚠️ 若需要部署时序数据库,IotDB 和 TDengine 任选其一即可!** + +##### 安装Mysql(可选) + +1. docker安装Mysql + ` $ docker run -d --name mysql -p 3306:3306 -v /opt/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7` + `-v /opt/data:/var/lib/mysql` - 为mysql数据目录本地持久化挂载,需将`/opt/data`替换为实际本地存在的目录 +2. 创建名称为hertzbeat的数据库 + `create database hertzbeat default charset utf8mb4 collate utf8mb4_general_ci;` +3. 在hertzbeat的配置文件`application.yml`配置Mysql数据库替换H2内置数据库连接参数 + +详细步骤参考 [使用Mysql替换内置H2数据库](mysql-change) + +##### 安装TDengine(可选) + +1. docker安装TDengine + `docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp --name tdengine tdengine/tdengine:3.0.4.0` +2. 创建名称为hertzbeat的数据库 +3. 在hertzbeat的配置文件`application.yml`配置tdengine连接 + +详细步骤参考 [使用时序数据库TDengine存储指标数据(可选)](tdengine-init) + +##### 安装IotDB(可选) + +1. Docker安装IoTDB + +```shell +$ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ + -v /opt/iotdb/data:/iotdb/data \ + --name iotdb \ + apache/iotdb:0.13.3-node +``` + +详细步骤参考 [使用时序数据库IoTDB存储指标数据(可选)](iotdb-init) + +### 🍞 HertzBeat安装 +> HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署,CPU架构支持X86/ARM64。 + +#### 方式一:Docker方式快速安装 + +1. `docker` 环境仅需一条命令即可开始 + +```docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat``` + +```或者使用 quay.io (若 dockerhub 网络链接超时)``` + +```docker run -d -p 1157:1157 --name hertzbeat quay.io/tancloud/hertzbeat``` + +2. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +更多配置详细步骤参考 [通过Docker方式安装HertzBeat](docker-deploy) + +#### 方式二:通过安装包安装 + +1. 下载您系统环境对应的安装包 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. 需要已安装java环境, `jdk11` +3. [可选]配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml` +4. 部署启动 `$ ./startup.sh ` +5. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +更多配置详细步骤参考 [通过安装包安装HertzBeat](package-deploy) + +#### 方式三:本地代码启动 +1. 此为前后端分离项目,本地代码调试需要分别启动后端工程manager和前端工程web-app +2. 后端:需要`maven3+`, `java11`和`lombok`环境,修改YML配置信息并启动manager服务 +3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在web-app目录下启动 `ng serve --open` +4. 浏览器访问 `localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` + +详细步骤参考 [参与贡献之本地代码启动](../others/contributing) + +##### 方式四:Docker-Compose 统一安装 hertzbeat+mysql+iotdb/tdengine + +通过 [docker-compose部署脚本](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose) 一次性把 mysql 数据库, iotdb/tdengine 时序数据库和 hertzbeat 安装部署。 + +详细步骤参考 [docker-compose部署方案](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose/README.md) + +**HAVE FUN** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/rainbond-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/rainbond-deploy.md new file mode 100644 index 00000000000..0a55beb17a7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/rainbond-deploy.md @@ -0,0 +1,32 @@ +--- +id: rainbond-deploy +title: 使用 Rainbond 部署 HertzBeat +sidebar_label: Rainbond方式部署 +--- + +如果你不熟悉 Kubernetes,想在 Kubernetes 中安装 HertzBeat,可以使用 Rainbond 来部署。Rainbond 是一个基于 Kubernetes 构建的云原生应用管理平台,可以很简单的将你的应用部署到 Kubernetes中。 + +## 前提 + +安装 Rainbond,请参阅 [Rainbond 快速安装](https://www.rainbond.com/docs/quick-start/quick-install)。 + +## 部署 HertzBeat + +登录 Rainbond 后,点击左侧菜单中的 `应用市场`,切换到开源应用商店,在搜索框中搜索 `HertzBeat`,点击安装按钮。 + +![](/img/docs/start/install-to-rainbond.png) + +填写以下信息,然后点击确认按钮进行安装。 + +* 团队:选择现有团队或创建新的团队 +* 集群:选择对应的集群 +* 应用:选择现有应用或创建新的应用 +* 版本:选择要安装的 HertzBeat 版本 + +等待安装完成,即可访问 HertzBeat 应用。 + +![](/img/docs/start/hertzbeat-topology.png) + +:::tip +通过 Rainbond 安装的 HertzBeat,默认使用了外部的 Mysql 数据库 和 Redis 以及 IoTDB。同时也挂载了 HertzBeat 的配置文件,可以在 `组件 -> 环境配置 -> 配置文件设置` 中修改配置文件。 +::: diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/sslcert-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/sslcert-practice.md new file mode 100644 index 00000000000..fc7b699aca1 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/sslcert-practice.md @@ -0,0 +1,119 @@ +--- +id: ssl-cert-practice +title: SSL证书过期监控使用案例 +sidebar_label: 使用案例 +--- + + +现在大部分网站都默认支持 HTTPS,我们申请的证书一般是3个月或者1年,很容易随着时间的流逝SSL证书过期了我们却没有第一时间发现,或者在过期之前没有及时更新证书。 + +这篇文章介绍如果使用 hertzbeat 监控系统来检测我们网站的SSL证书有效期,当证书过期时或证书快过期前几天,给我们发告警消息。 + +#### HertzBeat是什么 + +HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 + +**官网: https://hertzbeat.com | https://tancloud.cn** + +github: https://github.com/dromara/hertzbeat +gitee: https://gitee.com/dromara/hertzbeat + +#### 安装 HertzBeat + +1.如果不想安装可以直接使用云服务 [TanCloud探云 console.tancloud.cn](https://console.tancloud.cn) + +2. `docker` 环境仅需一条命令即可安装 + +`docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat` + +3. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +#### 监控SSL证书 + +1. 点击新增SSL证书监控 + +> 系统页面 -> 监控菜单 -> SSL证书 -> 新增SSL证书 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd53f343a5b54feab62e71458d076441~tplv-k3u1fbpfcp-zoom-1.image) + +2. 配置监控网站 + +> 我们这里举例监控百度网站, 配置监控host域名,名称,采集间隔等。 +> 点击确定 注意⚠️新增前默认会先去测试网站连接性,连接成功才会新增,当然也可以把**是否测试**按钮置灰。 + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ad1154670648413bb82c8bdeb5b13609~tplv-k3u1fbpfcp-zoom-1.image) + +3. 查看检测指标数据 + +> 在监控列表可以查看监控状态,进监控详情可以查看指标数据图表等。 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f874b45e909c4bb0acdd28b3fb034a61~tplv-k3u1fbpfcp-zoom-1.image) + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ef5d7443f8c04818ae5aa28d421203be~tplv-k3u1fbpfcp-zoom-1.image) + + + +4. 设置阈值(证书过期时触发) + +> 系统页面 -> 告警 -> 告警阈值 -> 新增阈值 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d6205172d43463aa34e534477f132f1~tplv-k3u1fbpfcp-zoom-1.image) + +> 配置阈值,选择SSL证书指标对象,配置告警表达式-当指标`expired`为`true`触发,即`equals(expired,"true")` , 设置告警级别通知模版信息等。 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/83d17b381d994f26a6240e01915b2001~tplv-k3u1fbpfcp-zoom-1.image) + +> 关联阈值与监控, 在阈值列表设置此阈值应用于哪些监控。 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9b9063d7bcf9454387be0491fc382bd1~tplv-k3u1fbpfcp-zoom-1.image) + + + + +5. 设置阈值(证书过期前一周触发) + +> 同理如上,新增配置阈值,配置告警表达式-当指标有效期时间戳 `end_timestamp`,`now()`函数为当前时间戳,若配置提前一周触发告警即:`end_timestamp <= (now() + 604800000)` , 其中 `604800000` 为7天总时间差毫秒值。 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d6f837f57c247e09f668f60eff4a0ff~tplv-k3u1fbpfcp-zoom-1.image) + +> 最终可以在告警中心看到已触发的告警。 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a61b23127524976b2c209ce0ca6a339~tplv-k3u1fbpfcp-zoom-1.image) + + +6. 告警通知(通过钉钉微信飞书等及时通知) + +> 监控系统 -> 告警通知 -> 新增接收人 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7f36956060ef410a82bbecafcbb2957f~tplv-k3u1fbpfcp-zoom-1.image) + +钉钉微信飞书等token配置可以参考帮助文档 + +https://hertzbeat.com/docs/help/alert_dingtalk +https://tancloud.cn/docs/help/alert_dingtalk + +> 告警通知 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知 + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d976343e81f843138344a039f3aff8a3~tplv-k3u1fbpfcp-zoom-1.image) + +7. OK 当阈值触发后我们就可以收到对应告警消息啦,如果没有配通知,也可以在告警中心查看告警信息。 + +---- + +#### 完! + +监控SSL证书的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/tdengine-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/tdengine-init.md new file mode 100644 index 00000000000..9bc29ca8d30 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/start/tdengine-init.md @@ -0,0 +1,128 @@ +--- +id: tdengine-init +title: 依赖时序数据库服务TDengine安装初始化 +sidebar_label: 使用TDengine存储指标数据(可选) +--- + +HertzBeat的历史数据存储依赖时序数据库 TDengine 或 IoTDB,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +TDengine是一款开源物联网时序型数据库,我们用其存储采集到的监控指标历史数据。 注意支持⚠️ 3.x版本。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有TDengine环境,可直接跳到创建数据库实例那一步。 + + +### 通过Docker方式安装TDengine +> 可参考官方网站[安装教程](https://docs.taosdata.com/get-started/docker/) +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Docker安装TDengine + +```shell +$ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \ + -v /opt/taosdata:/var/lib/taos \ + --name tdengine -e TZ=Asia/Shanghai \ + tdengine/tdengine:3.0.4.0 +``` + + `-v /opt/taosdata:/var/lib/taos` 为tdengine数据目录本地持久化挂载,需将`/opt/taosdata`替换为实际本地存在的目录 + `-e TZ="Asia/Shanghai"` 为tdengine设置时区,这里可选设置对应的时区 + 使用```$ docker ps```查看数据库是否启动成功 + +### 创建数据库实例 + +> [TDengine CLI 小技巧](https://docs.taosdata.com/develop/model/) + +1. 进入数据库Docker容器 + ``` + $ docker exec -it tdengine /bin/bash + ``` + +2. 修改账户密码 + + > 建议您修改密码。TDengine默认的账户密码是 root/taosdata + > 进入容器后,执行 `taos` 命令进入TDengine CLI , 如下: + + ``` + root@tdengine-server:~/TDengine-server# taos + Welcome to the TDengine shell from Linux, Client Version + Copyright (c) 2020 by TAOS Data, Inc. All rights reserved. + taos> + ``` + > 在 TDengine CLI 中使用 alter user 命令可以修改用户密码,缺省密码为 taosdata + +3. 创建名称为hertzbeat的数据库 + + 执行创建数据库命令 + + ``` + taos> show databases; + taos> CREATE DATABASE hertzbeat KEEP 90 DURATION 10 BUFFER 16; + ``` + + 上述语句将创建一个名为 hertzbeat 的库,这个库的数据将保留90天(超过90天将被自动删除),每 10 天一个数据文件,每个 VNode 的写入内存池的大小为 16 MB + +4. 查看hertzbeat数据库是否成功创建 + + ``` + taos> show databases; + taos> use hertzbeat; + ``` + +5. 退出TDengine CLI + + ``` + 输入 q 或 quit 或 exit 回车 + ``` + +**注意⚠️若是安装包安装的TDengine** + +> 除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + +**修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.td-engine`数据源参数,URL账户密码,并启用`enabled`为`true`** + +```yaml +warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + td-engine: + enabled: true + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:TAOS-RS://localhost:6041/hertzbeat + username: root + password: taosdata +``` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用 +> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + +2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库 + +3. 监控详情历史图片不展示或无数据,已经配置了TDengine +> 请确认是否安装的TDengine版本为3.0以上,版本2.x不支持兼容 + +4. 安装配置了TDengine数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] +> 请检查配置参数是否正确 +> td-engine enable是否设置为true +> 注意⚠️若hertzbeat和TDengine都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP +> 可根据logs目录下启动日志排查 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/template.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/template.md new file mode 100644 index 00000000000..570257a327d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.3.x/template.md @@ -0,0 +1,97 @@ +--- +id: template +title: 监控模版中心 +sidebar_label: 监控模版 +--- + +> Hertzbeat 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警工具。 + +> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +这是它的架构原理: + +![hertzBeat](/img/docs/hertzbeat-arch.png) + +**我们将所有监控采集类型(mysql,website,jvm,k8s)都定义为yml模版,用户可以导入这些模版到hertzbeat系统中,使其支持对应类型的监控,非常方便!** + +![](/img/docs/advanced/extend-point-1.png) + +**欢迎大家一起贡献你使用过程中自定义的通用监控类型YML模版,可用的模板如下:** + +### 应用服务监控模版 + + 👉 [Website monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml)
+ 👉 [HTTP API](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml)
+ 👉 [PING Connectivity](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml)
+ 👉 [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml)
+ 👉 [Full site monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml)
+ 👉 [SSL Cert monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml)
+ 👉 [JVM monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml)
+ 👉 [SpringBoot2.0](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml)
+ 👉 [SpringBoot3.0](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml)
+ 👉 [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml)
+ +### 数据库监控模版 + + 👉 [MYSQL database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml)
+ 👉 [MariaDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml)
+ 👉 [PostgreSQL database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml)
+ 👉 [SqlServer database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml)
+ 👉 [Oracle database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml)
+ 👉 [DM database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml)
+ 👉 [OpenGauss database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml)
+ 👉 [IoTDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml)
+ 👉 [ElasticSearch database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml)
+ 👉 [MongoDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml)
+ 👉 [ClickHouse database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml)
+ 👉 [Redis database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml)
+ 👉 [Redis Sentinel database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml)
+ 👉 [Redis Cluster database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml)
+ +### 操作系统监控模版 + + 👉 [Linux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml)
+ 👉 [Windows operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml)
+ 👉 [Ubuntu operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml)
+ 👉 [Centos operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml)
+ 👉 [EulerOS operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml)
+ 👉 [Fedora CoreOS operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml)
+ 👉 [OpenSUSE operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml)
+ 👉 [Rocky Linux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml)
+ 👉 [Red Hat operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml)
+ 👉 [FreeBSD operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml)
+ 👉 [AlmaLinux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml)
+ 👉 [Debian operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml)
+ + +### 中间件监控模版 + + 👉 [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml)
+ 👉 [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml)
+ 👉 [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml)
+ 👉 [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml)
+ 👉 [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml)
+ 👉 [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml)
+ 👉 [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml)
+ 👉 [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml)
+ 👉 [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml)
+ 👉 [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml)
+ + +### 云原生监控模版 + + 👉 [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml)
+ 👉 [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml)
+ +### 网络监控模版 + + 👉 [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml)
+ 👉 [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml)
+ 👉 [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml)
+ 👉 [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml)
+ 👉 [H3CSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml)
+ +--- + +**Have Fun!** diff --git a/home/sidebars.json b/home/sidebars.json index 93f1b174a0e..4c7bee22afc 100644 --- a/home/sidebars.json +++ b/home/sidebars.json @@ -187,6 +187,7 @@ "others/design", "others/sponsor", "others/private", + "others/legal", "others/resource" ] } diff --git a/home/src/constants.js b/home/src/constants.js index 8ce89228a79..87dfd581061 100644 --- a/home/src/constants.js +++ b/home/src/constants.js @@ -11,11 +11,10 @@ export const features = [ <> {'docker run -d -p 1157:1157 tancloud/hertzbeat'}, - TANCLOUD: TANCLOUD, + docker: {'docker run -d -p 1157:1157 -p 1158:1158 tancloud/hertzbeat'}, console: ( - Login Now + Login Now ), br:
, @@ -34,11 +33,6 @@ export const features = [ <> - Custom-Monitoring - - ), br:
, }} > @@ -57,12 +51,12 @@ export const features = [ values={{ github: ( - HertzBeat Code Github + HertzBeat Code Github ), gitee: ( - HertzBeat Code Gitee + HertzBeat Code Gitee ), br:
, diff --git a/home/src/pages/index.js b/home/src/pages/index.js index 0f2a361c6cc..f6a9bfd2de0 100644 --- a/home/src/pages/index.js +++ b/home/src/pages/index.js @@ -119,11 +119,17 @@ function Home() { loop={true} speed={0} autoplay={{ - delay: 3000, + delay: 6000, disableOnInteraction: false, waitForTransition: false, }} > + + + After calling the HTTP api to obtain the response data, use the default parsing method of hertzbeat to parse the response data. + +**The interface response data structure must be consistent with the data structure rules specified by hertzbeat** + +### HertzBeat data format specification +Note⚠️ The response data is JSON format. + +Single layer format :key-value +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` +Multilayer format:Set key value in the array +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` +eg: +Query the CPU information of the custom system. The exposed interface is `/metrics/cpu`. We need `hostname,core,useage` Metric. +If there is only one virtual machine, its single-layer format is : +```json +{ + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 +} +``` +If there are multiple virtual machines, the multilayer format is: : +```json +[ + { + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 + }, + { + "hostname": "linux-2", + "core": 3, + "usage": 78.0, + "allTime": 566, + "runningTime": 34 + }, + { + "hostname": "linux-3", + "core": 4, + "usage": 38.0, + "allTime": 500, + "runningTime": 20 + } +] +``` + +**The corresponding monitoring template yml can be configured as follows** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +params: + # field-field name identifier + - field: host + # name-parameter field display name + name: + zh-CN: 主机Host + en-US: Host + # type-field type, style(most mappings are input label type attribute) + type: host + # required or not true-required false-optional + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # When type is number, range is used to represent the range. + range: '[0,65535]' + required: true + # port default + defaultValue: 80 + # Prompt information of parameter input box + placeholder: 'Please enter the port' +# Metric group list +metrics: +# The first monitoring Metric group cpu +# Note:the built-in monitoring Metrics have (responseTime - response time) + - name: cpu + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # Specific monitoring Metrics in the Metric group + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) nstance: primary key of instance or not unit: Metric unit + - field: hostname + type: 1 + instance: true + - field: usage + type: 0 + unit: '%' + - field: core + type: 0 +# protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# Specific collection configuration when the protocol is HTTP protocol + http: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /metrics/cpu + # request mode: GET POST PUT DELETE PATCH + method: GET + # enable ssl/tls or not, that is to say, HTTP or HTTPS. The default is false + ssl: false + # parsing method for reponse data: default-system rules, jsonPath-jsonPath script, website-website availability Metric monitoring + # Hertzbeat default parsing is used here + parseType: default +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md b/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md new file mode 100644 index 00000000000..ec671991046 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-hertzbeat.md @@ -0,0 +1,239 @@ +--- +id: extend-http-example-hertzbeat +title: Tutorial 1 Adapting a monitoring type based on HTTP protocol +sidebar_label: Tutorial 1 Adapting an HTTP protocol monitoring +--- + +Through this tutorial, we describe step by step how to add a monitoring type based on the http protocol under the hertzbeat monitoring tool. + +Before reading this tutorial, we hope that you are familiar with how to customize types, metrics, protocols, etc. from [Custom Monitoring](extend-point) and [http Protocol Customization](extend-http). + + +### HTTP protocol parses the general response structure to obtain indicator data + +> In many scenarios, we need to monitor the provided HTTP API interface and obtain the index value returned by the interface. In this article, we use the http custom protocol to parse our common http interface response structure, and obtain the fields in the returned body as indicator data. + + +``` +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` +As above, usually our background API interface will design such a general return. The same is true for the background of the hertzbeat system. Today, we will use the hertzbeat API as an example, add a new monitoring type **hertzbeat**, and monitor and collect its system summary statistics API +`http://localhost:1157/api/summary`, the response data is: + +``` +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**This time we get the indicator data such as `category`, `app`, `status`, `size`, `availableSize` under the app. ** + +### Add custom monitoring template `hertzbeat` + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + + +Here we define a custom monitoring type `app` named `hertzbeat` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat +# The monitoring i18n name +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, instance-if is metrics group, unit-metric unit('%','ms','MB') + - field: app + type: 1 + instance: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + method: GET + # if enabled https, default value is false + ssl: ^_^ssl^_^ + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**The addition is complete, now we save and apply. We can see that the system page has added a `hertzbeat` monitoring type. ** + + +![](/img/docs/advanced/extend-http-example-1.png) + + +### The system page adds the monitoring of `hertzbeat` monitoring type + +> We click Add `HertzBeat Monitoring Tool`, configure monitoring IP, port, collection cycle, account password in advanced settings, etc., click OK to add monitoring. + + +![](/img/docs/advanced/extend-http-example-2.png) + + +![](/img/docs/advanced/extend-http-example-3.png) + +> After a certain period of time (depending on the collection cycle), we can see the specific indicator data and historical charts in the monitoring details! + + +![](/img/docs/advanced/extend-http-example-4.png) + + + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add recipients, set alarm notifications, etc. Have Fun!!! + + +---- + +#### over! + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please give us a star on GitHub Gitee, thank you very much. + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-token.md b/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-token.md new file mode 100644 index 00000000000..6f6d107eafe --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-http-example-token.md @@ -0,0 +1,398 @@ +--- +id: extend-http-example-token +title: Tutorial 2 Obtain TOKEN index value based on HTTP protocol for subsequent collection and authentication +sidebar_label: Tutorial 2 Get TOKEN for subsequent authentication +--- + +Through this tutorial, we will describe step by step how to modify on the basis of tutorial 1, add an metrics group, first call the authentication interface to obtain the TOKEN, and use the TOKEN as a parameter for the subsequent indicator group collection and authentication. + +Before reading this tutorial, we hope that you are familiar with how to customize types, indicators, protocols, etc. from [Custom Monitoring](extend-point) and [http Protocol Customization](extend-http). + +### Request process + +【**Authentication information indicator group (highest priority)**】【**HTTP interface carries account password call**】->【**Response data analysis**】->【**Analysis and issuance of TOKEN-accessToken as an indicator **] -> [**Assign accessToken as a variable parameter to other collection index groups**] + +> Here we still use the hertzbeat monitoring example of Tutorial 1! The hertzbeat background interface not only supports the basic direct account password authentication used in Tutorial 1, but also supports token authentication. + +**We need `POST` to call the login interface `/api/account/auth/form` to get `accessToken`, the request body (json format) is as follows**: + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` +**The response structure data is as follows**: + +```json +{ + "data": { + "token": "xxxx", + "refreshToken": "xxxx" + }, + "msg": null, + "code": 0 +} +``` + +### Add custom monitoring type `hertzbeat_token` + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + + +1. The custom monitoring type needs to add a new configuration monitoring template yml. We directly reuse the `hertzbeat` monitoring type in Tutorial 1 and modify it based on it + +A monitoring configuration definition file named after the monitoring type - hertzbeat_token + +We directly reuse the definition content in `hertzbeat` and modify it to our current monitoring type `hertzbeat_auth` configuration parameters, such as `app, category, etc`. + +```yaml +# This monitoring type belongs to the category: service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type (consistent with the file name) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + en-GB: HertzBeat Monitoring (Token) + en-US: Hertz Beat Monitor (Token) +params: + # field - field name identifier + - field: host + # name - parameter field display name + name: + en-CN: Host Host + en-US: Host + # type-field type, style (mostly map input tag type attribute) + type: host + # Whether it is a required item true-required false-optional + required: true + - field: port + name: + en-CN: port + en-US: Port + type: number + # When the type is number, use range to represent the range + range: '[0,65535]' + required: true + # port default + defaultValue: 1157 + # Parameter input box prompt information + placeholder: 'Please enter the port' + - field: ssl + name: + en-CN: Enable SSL + en-US: SSL + # When the type is boolean, the front end uses switch to display the switch + type: boolean + required: false + - field: contentType + name: + en-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + en-CN: request BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# Index group list configuration under todo +metrics: .... + +``` + +### Define metrics group `auth` login request to get `token` + +1. Add an index group definition `auth` in `hertzbeat_token`, set the collection priority to the highest 0, and collect the index `token`. + +```yaml + +# This monitoring type belongs to the category: service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type (consistent with the file name) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + en-GB: HertzBeat Monitoring (Token) + en-US: Hertz Beat Monitor (Token) +params: + # field - field name identifier + - field: host + # name - parameter field display name + name: + en-CN: Host Host + en-US: Host + # type-field type, style (mostly map input tag type attribute) + type: host + # Whether it is a required item true-required false-optional + required: true + - field: port + name: + en-CN: port + en-US: Port + type: number + # When the type is number, use range to represent the range + range: '[0,65535]' + required: true + # port default + defaultValue: 1157 + # Parameter input box prompt information + placeholder: 'Please enter the port' + - field: ssl + name: + en-CN: Enable SSL + en-US: SSL + # When the type is boolean, the front end uses switch to display the switch + type: boolean + required: false + - field: contentType + name: + en-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + en-CN: request BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# List of indicator groups +metrics: + # The first monitoring index group auth + # Note: Built-in monitoring indicators have (responseTime - response time) + - name: auth + # The smaller the index group scheduling priority (0-127), the higher the priority, and the index group with low priority will not be scheduled until the collection of index groups with high priority is completed, and the index groups with the same priority will be scheduled and collected in parallel + # The indicator group with priority 0 is the availability indicator group, that is, it will be scheduled first, and other indicator groups will continue to be scheduled if the collection is successful, and the scheduling will be interrupted if the collection fails + priority: 0 + # Specific monitoring indicators in the indicator group + fields: + # Indicator information includes field name type field type: 0-number, 1-string whether instance is the primary key of the instance unit: indicator unit + - field: token + type: 1 + - field: refreshToken + type: 1 + # Monitoring and collection protocol eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # When the protocol is the http protocol, the specific collection configuration + http: + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /api/account/auth/form + # Request method GET POST PUT DELETE PATCH + method: POST + # Whether to enable ssl/tls, that is, http or https, default false + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # request header content + headers: + content-type: ^_^contentType^_^ + # Response data analysis method: default-system rules, jsonPath-jsonPath script, website-website usability indicator monitoring + parseType: jsonPath + parseScript: '$.data' + +``` + +**At this time, save and apply, add `hertzbeat_token` type monitoring on the system page, configure input parameters, `content-type` fill in `application/json`, `request Body` fill in the account password json as follows: ** + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +![](/img/docs/advanced/extend-http-example-5.png) + + +** After the addition is successful, we can see the `token`, `refreshToken` indicator data we collected on the details page. ** + +![](/img/docs/advanced/extend-http-example-6.png) + +![](/img/docs/advanced/extend-http-example-7.png) + + + +### Use `token` as a variable parameter to collect and use the following indicator groups + +**Add an index group definition `summary` in `app-hertzbeat_token.yml`, which is the same as `summary` in Tutorial 1, and set the collection priority to 1** + +**Set the authentication method in the HTTP protocol configuration of this index group to `Bearer Token`, assign the index `token` collected by the previous index group `auth` as a parameter, and use `^o^` as the internal replacement symbol, that is ` ^o^token^o^`. as follows:** + +```yaml + - name: summary +# When the protocol is the http protocol, the specific collection configuration + http: + # authentication + authorization: + # Authentication methods: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ +``` + +**The final `hertzbeat_token` template yml is defined as follows:** + +```yaml + +# This monitoring type belongs to the category: service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type (consistent with the file name) eg: linux windows tomcat mysql aws... +app: hertzbeat_token +name: + en-GB: HertzBeat Monitoring (Token) + en-US: Hertz Beat Monitor (Token) +params: + # field - field name identifier + - field: host + # name - parameter field display name + name: + en-CN: Host Host + en-US: Host + # type-field type, style (mostly map input tag type attribute) + type: host + # Whether it is a required item true-required false-optional + required: true + - field: port + name: + en-CN: port + en-US: Port + type: number + # When the type is number, use range to represent the range + range: '[0,65535]' + required: true + # port default + defaultValue: 1157 + # Parameter input box prompt information + placeholder: 'Please enter the port' + - field: ssl + name: + en-CN: Enable SSL + en-US: SSL + # When the type is boolean, the front end uses switch to display the switch + type: boolean + required: false + - field: contentType + name: + en-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + en-CN: request BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# List of indicator groups +metrics: +# The first monitoring index group cpu +# Note: Built-in monitoring indicators have (responseTime - response time) + - name: auth + # The smaller the index group scheduling priority (0-127), the higher the priority, and the index group with low priority will not be scheduled until the collection of index groups with high priority is completed, and the index groups with the same priority will be scheduled and collected in parallel + # The indicator group with priority 0 is the availability indicator group, that is, it will be scheduled first, and other indicator groups will continue to be scheduled if the collection is successful, and the scheduling will be interrupted if the collection fails + priority: 0 + # Specific monitoring indicators in the indicator group + fields: + # Indicator information includes field name type field type: 0-number, 1-string whether instance is the primary key of the instance unit: indicator unit + - field: token + type: 1 + - field: refreshToken + type: 1 + # Monitoring and collection protocol eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # When the protocol is the http protocol, the specific collection configuration + http: + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /api/account/auth/form + # Request method GET POST PUT DELETE PATCH + method: POST + # Whether to enable ssl/tls, that is, http or https, default false + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # request header content + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # Request parameter content + params: + ^_^params^_^: ^_^params^_^ + # Response data analysis method: default-system rules, jsonPath-jsonPath script, website-website usability indicator monitoring + parseType: jsonPath + parseScript: '$.data' + + + - name: summary + # The smaller the index group scheduling priority (0-127), the higher the priority, and the index group with low priority will not be scheduled until the collection of index groups with high priority is completed, and the index groups with the same priority will be scheduled and collected in parallel + # The indicator group with priority 0 is the availability indicator group, that is, it will be scheduled first, and other indicator groups will continue to be scheduled if the collection is successful, and the scheduling will be interrupted if the collection fails + priority: 1 + # Specific monitoring indicators in the indicator group + fields: + # Indicator information includes field name type field type: 0-number, 1-string whether instance is the primary key of the instance unit: indicator unit + - field: category + type: 1 + - field: app + type: 1 + - field: size + type: 0 + - field: status + type: 0 +# Monitoring and collection protocol eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# When the protocol is the http protocol, the specific collection configuration + http: + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /api/summary + # Request method GET POST PUT DELETE PATCH + method: GET + # Whether to enable ssl/tls, that is, http or https, default false + ssl: ^_^ssl^_^ + # authentication + authorization: + # Authentication methods: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ + # Response data analysis method: default-system rules, jsonPath-jsonPath script, website-website usability indicator monitoring + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**After the configuration is complete, save and apply, and check the monitoring details page** + +![](/img/docs/advanced/extend-http-example-8.png) + +![](/img/docs/advanced/extend-http-example-9.png) + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add a new recipient, set alarm notification, etc. Have Fun!!! + +---- + +#### over! + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please give us a star on GitHub Gitee, thank you very much. + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-http-jsonpath.md b/home/versioned_docs/version-v1.3.x/advanced/extend-http-jsonpath.md new file mode 100644 index 00000000000..a2c01272707 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-http-jsonpath.md @@ -0,0 +1,165 @@ +--- +id: extend-http-jsonpath +title: HTTP Protocol JsonPath Parsing Method +sidebar_label: JsonPath Parsing Method +--- +> After calling the HTTP api to obtain the response data, use JsonPath script parsing method to parse the response data. + +Note⚠️ The response data is JSON format. + +**Use the JsonPath script to parse the response data into data that conforms to the data structure rules specified by HertzBeat** + +#### JsonPath Operator +[JSONPath online verification](https://www.jsonpath.cn) + +| JSONPATH | Help description | +|------------------|----------------------------------------------------------------------------------------| +| $ | Root object or element | +| @ | Current object or element | +| . or [] | Child element operator | +| .. | Recursively match all child elements | +| * | Wildcard. Match all objects or elements | +| [] | Subscript operator, jsonpath index starts from 0 | +| [,] | Join operator, return multiple results as an array. Jsonpath allows the use of aliases | +| [start:end:step] | Array slice operator | +| ?() | Filter (script) expression | +| () | Script Expression | + +#### HertzBeat data format specification +Single layer format :key-value +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` +Multilayer format:Set key value in the array +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +#### Example + +Query the value information of the custom system, and its exposed interface is `/metrics/person`. We need `type,num` Metric. +The raw data returned by the interface is as follows: +```json +{ + "firstName": "John", + "lastName" : "doe", + "age" : 26, + "address" : { + "streetAddress": "naist street", + "city" : "Nara", + "postalCode" : "630-0192" + }, + "number": [ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } + ] +} +``` + +We use the jsonpath script to parse, and the corresponding script is: `$.number[*]`,The parsed data structure is as follows: +```json +[ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } +] +``` +This data structure conforms to the data format specification of HertzBeat, and the Metric `type,num` is successfully extracted. + +**The corresponding monitoring template yml can be configured as follows** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +params: + # field-field name identifier + - field: host + # name-parameter field display name + name: + zh-CN: 主机Host + en-US: Host + # type-field type, style(most mappings are input label type attribute) + type: host + # required or not true-required false-optional + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # When type is number, range is used to represent the range. + range: '[0,65535]' + required: true + # port default + defaultValue: 80 + # Prompt information of parameter input box + placeholder: 'Please enter the port' +# Metric group list +metrics: +# The first monitoring Metric group person +# Note:the built-in monitoring Metrics have (responseTime - response time) + - name: cpu + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # Specific monitoring Metrics in the Metric group + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) nstance: primary key of instance or not unit: Metric unit + - field: type + type: 1 + instance: true + - field: num + type: 0 +# protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# Specific collection configuration when the protocol is HTTP protocol + http: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /metrics/person + # request mode GET POST PUT DELETE PATCH + method: GET + # enable ssl/tls or not, that is to say, HTTP or HTTPS. The default is false + ssl: false + # parsing method for response data: default-system rules, jsonPath-jsonPath script, website-website availability Metric monitoring + # jsonPath parsing is used here + parseType: jsonPath + parseScript: '$.number[*]' +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-http.md b/home/versioned_docs/version-v1.3.x/advanced/extend-http.md new file mode 100644 index 00000000000..bf542dc593c --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-http.md @@ -0,0 +1,206 @@ +--- +id: extend-http +title: HTTP Protocol Custom Monitoring +sidebar_label: HTTP Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use HTTP protocol to customize Metric monitoring + +### HTTP protocol collection process + +【**Call HTTP API**】->【**Response Verification**】->【**Parse Response Data**】->【**Default method parsing|JsonPath script parsing | XmlPath parsing(todo) | Prometheus parsing**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of HTTP protocol. We need to configure HTTP request parameters, configure which Metrics to obtain, and configure the parsing method and parsing script for response data. +HTTP protocol supports us to customize HTTP request path, request header, request parameters, request method, request body, etc. + +**System default parsing method**:HTTP interface returns the JSON data structure specified by hertzbeat, that is, the default parsing method can be used to parse the data and extract the corresponding Metric data. For details, refer to [**System Default Parsing**](extend-http-default) +**JsonPath script parsing method**:Use JsonPath script to parse the response JSON data, return the data structure specified by the system, and then provide the corresponding Metric data. For details, refer to [**JsonPath Script Parsing**](extend-http-jsonpath) + + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- + +Configuration usages of the monitoring templates yml are detailed below. Please pay attention to usage annotation. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_http` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_http +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +params: + # field-field name identifier + - field: host + # name-parameter field display name + name: + zh-CN: 主机Host + en-US: Host + # type-field type, style(most mappings are input label type attribute) + type: host + # required or not true-required false-optional + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # When type is number, range is used to represent the range. + range: '[0,65535]' + required: true + # port default + defaultValue: 80 + # Prompt information of parameter input box + placeholder: 'Please enter the port' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + # When type is text, use limit to indicate the string limit size + limit: 20 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: ssl + name: + zh-CN: 启动SSL + en-US: Enable SSL + # When type is boolean, front end uses switch to show the switch + type: boolean + required: false + - field: method + name: + zh-CN: 请求方式 + en-US: Method + type: radio + required: true + # When type is radio or checkbox, option indicates the list of selectable values {name1:value1,name2:value2} + options: + - label: GET request + value: GET + - label: POST request + value: POST + - label: PUT request + value: PUT + - label: DELETE request + value: DELETE +# Metric group list +metrics: +# The first monitoring Metric group cpu +# Note:the built-in monitoring Metrics have (responseTime - response time) + - name: cpu + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # Specific monitoring Metrics in the Metric group + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) nstance: primary key of instance or not unit: Metric unit + - field: hostname + type: 1 + instance: true + - field: usage + type: 0 + unit: '%' + - field: cores + type: 0 + - field: waitTime + type: 0 + unit: s +# (optional)Monitoring Metric alias mapping to the Metric name above. The field used to collect interface data is not the final Metric name directly. This alias is required for mapping conversion. + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime +# (optional)The Metric calculation expression works with the above alias to calculate the final required Metric value. +# eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime +# protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# Specific collection configuration when the protocol is HTTP protocol + http: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /metrics/cpu + # request mode: GET POST PUT DELETE PATCH + method: GET + # enable ssl/tls or not, that is to say, HTTP or HTTPS. The default is false + ssl: false + # request header content + headers: + apiVersion: v1 + # request parameter content + params: + param1: param1 + param2: param2 + # authorization + authorization: + # authorization method: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # parsing method for reponse data: default-system rules, jsonPath-jsonPath script, website-website availability Metric monitoring + # todo xmlPath-xmlPath script, prometheus-Prometheus data rules + parseType: jsonPath + parseScript: '$' + + - name: memory + priority: 1 + fields: + - field: hostname + type: 1 + instance: true + - field: total + type: 0 + unit: kb + - field: usage + type: 0 + unit: '%' + - field: speed + type: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /metrics/memory + method: GET + headers: + apiVersion: v1 + params: + param1: param1 + param2: param2 + authorization: + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + parseType: default +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-jdbc.md b/home/versioned_docs/version-v1.3.x/advanced/extend-jdbc.md new file mode 100644 index 00000000000..2027f64a7cb --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-jdbc.md @@ -0,0 +1,238 @@ +--- +id: extend-jdbc +title: JDBC Protocol Custom Monitoring +sidebar_label: JDBC Protocol Custom Monitoring +--- +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use JDBC(support mysql,mariadb,postgresql,sqlserver at present) to customize Metric monitoring. +> JDBC protocol custom monitoring allows us to easily monitor Metrics we want by writing SQL query statement. + +### JDBC protocol collection process +【**System directly connected to MYSQL**】->【**Run SQL query statement**】->【**parse reponse data: oneRow, multiRow, columns**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of JDBC protocol. We need to configure SSH request parameters, configure which Metrics to obtain, and configure query SQL statements. + +### Data parsing method +We can obtain the corresponding Metric data through the data fields queried by SQL and the Metric mapping we need. At present, there are three mapping parsing methods:oneRow, multiRow, columns. + +#### **oneRow** +> Query a row of data, return the column name of the result set through query and map them to the queried field. + +eg: +queried Metric fields:one two three four +query SQL:select one, two, three, four from book limit 1; +Here the Metric field and the response data can be mapped into a row of collected data one by one. + +#### **multiRow** +> Query multiple rows of data, return the column names of the result set and map them to the queried fields. + +eg: +queried Metric fields:one two three four +query SQL:select one, two, three, four from book; +Here the Metric field and the response data can be mapped into multiple rows of collected data one by one. + +#### **columns** +> Collect a row of Metric data. By matching the two columns of queried data (key value), key and the queried field, value is the value of the query field. + +eg: +queried fields:one two three four +query SQL:select key, value from book; +SQL response data: + +| key | value | +|---------|-------| +| one | 243 | +| two | 435 | +| three | 332 | +| four | 643 | + +Here by mapping the Metric field with the key of the response data, we can obtain the corresponding value as collection and monitoring data. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_sql` which use the JDBC protocol to collect data. + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: db +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_sql +name: + zh-CN: 模拟MYSQL应用类型 + en-US: MYSQL EXAMPLE APP +# Monitoring parameter definition file is used to define required input parameter field structure definition Front-end page render input parameter box according to structure +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + placeholder: 'Please enter the port' + - field: database + name: + zh-CN: 数据库名称 + en-US: Database + type: text + required: false + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: url + name: + zh-CN: Url + en-US: Url + type: text + required: false +# Metric group list +metrics: + - name: basic + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # Specific monitoring Metrics in the Metric group + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: version + type: 1 + instance: true + - field: port + type: 1 + - field: datadir + type: 1 + - field: max_connections + type: 0 + # (optional)Monitoring Metric alias mapping to the Metric name above. The field used to collect interface data is not the final Metric name directly. This alias is required for mapping conversion. + aliasFields: + - version + - version_compile_os + - version_compile_machine + - port + - datadir + - max_connections + # (optional)The Metric calculation expression works with the above alias to calculate the final required Metric value. + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - port=port + - datadir=datadir + - max_connections=max_connections + - version=version+"_"+version_compile_os+"_"+version_compile_machine + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method:oneRow, multiRow, columns + queryType: columns + # sql + sql: show global variables where Variable_name like 'version%' or Variable_name = 'max_connections' or Variable_name = 'datadir' or Variable_name = 'port'; + url: ^_^url^_^ + + - name: status + priority: 1 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: threads_created + type: 0 + - field: threads_connected + type: 0 + - field: threads_cached + type: 0 + - field: threads_running + type: 0 + # (optional)Monitoring Metric alias mapping to the Metric name above. The field used to collect interface data is not the final Metric name directly. This alias is required for mapping conversion. + aliasFields: + - threads_created + - threads_connected + - threads_cached + - threads_running + # (optional)The Metric calculation expression works with the above alias to calculate the final required Metric value. + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - threads_created=threads_created + - threads_connected=threads_connected + - threads_cached=threads_cached + - threads_running=threads_running + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'thread%' or Variable_name = 'com_commit' or Variable_name = 'com_rollback' or Variable_name = 'questions' or Variable_name = 'uptime'; + url: ^_^url^_^ + + - name: innodb + priority: 2 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: innodb_data_reads + type: 0 + unit: times + - field: innodb_data_writes + type: 0 + unit: times + - field: innodb_data_read + type: 0 + unit: kb + - field: innodb_data_written + type: 0 + unit: kb + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method:oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'innodb%'; + url: ^_^url^_^ +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-jmx.md b/home/versioned_docs/version-v1.3.x/advanced/extend-jmx.md new file mode 100644 index 00000000000..0d35ac7a0a3 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-jmx.md @@ -0,0 +1,193 @@ +--- +id: extend-jmx +title: JMX Protocol Custom Monitoring +sidebar_label: JMX Protocol Custom Monitoring +--- +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use JMX to customize Metric monitoring. +> JMX protocol custom monitoring allows us to easily monitor Metrics we want by config JMX Mbeans Object. + +### JMX protocol collection process +【**Peer Server Enable Jmx Service**】->【**HertzBeat Connect Peer Server Jmx**】->【**Query Jmx Mbean Object Data**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of JMX protocol. We need to configure JMX request parameters, configure which Metrics to obtain, and configure Mbeans Object. + +### Data parsing method + +By configuring the monitoring template YML metrics `field`, `aliasFields`, `objectName` of the `jmx` protocol to map and parse the `Mbean` object information exposed by the peer system. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![](/img/docs/advanced/extend-point-1.png) + +------- +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_jvm` which use the JVM protocol to collect data. + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: service +# The monitoring type eg: linux windows tomcat mysql aws... +app: example_jvm +# The monitoring i18n name +name: + zh-CN: 自定义JVM虚拟机 + en-US: CUSTOM JVM +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 9999 + # field-param field key + - field: url + # name-param field display i18n name + name: + zh-CN: JMX URL + en-US: JMX URL + # type-param field type(most mapping the html input type) + type: text + # required-true or false + required: false + # hide param-true or false + hide: true + # param field input placeholder + placeholder: 'service:jmx:rmi:///jndi/rmi://host:port/jmxrmi' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 20 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true +# collect metrics config list +metrics: + # metrics - basic + - name: basic + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + - field: VmName + type: 1 + - field: VmVendor + type: 1 + - field: VmVersion + type: 1 + - field: Uptime + type: 0 + unit: ms + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: jmx + # the config content when protocol is jmx + jmx: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + # jmx mbean object name + objectName: java.lang:type=Runtime + url: ^_^url^_^ + + - name: memory_pool + priority: 1 + fields: + - field: name + type: 1 + instance: true + - field: committed + type: 0 + unit: MB + - field: init + type: 0 + unit: MB + - field: max + type: 0 + unit: MB + - field: used + type: 0 + unit: MB + units: + - committed=B->MB + - init=B->MB + - max=B->MB + - used=B->MB + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - Name + - Usage->committed + - Usage->init + - Usage->max + - Usage->used + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - name=Name + - committed=Usage->committed + - init=Usage->init + - max=Usage->max + - used=Usage->used + protocol: jmx + jmx: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + objectName: java.lang:type=MemoryPool,name=* + url: ^_^url^_^ +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-point.md b/home/versioned_docs/version-v1.3.x/advanced/extend-point.md new file mode 100644 index 00000000000..3b1176015eb --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-point.md @@ -0,0 +1,134 @@ +--- +id: extend-point +title: Custom Monitoring +sidebar_label: Custom Monitoring +--- +> HertzBeat has custom monitoring ability. You only need to configure monitoring template yml to fit a custom monitoring type. +> Custom monitoring currently supports [HTTP protocol](extend-http),[JDBC protocol](extend-jdbc), [SSH protocol](extend-ssh), [JMX protocol](extend-jmx), [SNMP protocol](extend-snmp). And it will support more general protocols in the future. + +### Custom Monitoring Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example2` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: example2 +# The monitoring i18n name +name: + zh-CN: 模拟网站监测 + en-US: EXAMPLE WEBSITE +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # field-param field key + - field: uri + # name-param field display i18n name + name: + zh-CN: 相对路径 + en-US: URI + # type-param field type(most mapping the html input tag) + type: text + # when type is text, use limit to limit string length + limit: 200 + # required-true or false + required: false + # param field input placeholder + placeholder: 'Website uri path(no ip port) EG:/console' + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启用HTTPS + en-US: HTTPS + # type-param field type(most mapping the html input type) + type: boolean + # required-true or false + required: true + # field-param field key + - field: timeout + # name-param field display i18n name + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input tag) + type: number + # required-true or false + required: false + # hide param-true or false + hide: true + +metrics: + # metrics - summary, inner monitoring metrics (responseTime - response time, keyword - number of keywords) + - name: summary + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + - field: responseTime + type: 0 + unit: ms + - field: keyword + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: ^_^uri^_^ + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: ^_^ssl^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: website + +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-snmp.md b/home/versioned_docs/version-v1.3.x/advanced/extend-snmp.md new file mode 100644 index 00000000000..5be59393202 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-snmp.md @@ -0,0 +1,173 @@ +--- +id: extend-snmp +title: SNMP Protocol Custom Monitoring +sidebar_label: SNMP Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use SNMP to customize Metric monitoring. +> JMX protocol custom monitoring allows us to easily monitor Metrics we want by config SNMP MIB OIDs. + +### SNMP protocol collection process +【**Peer Server Enable SNMP Service**】->【**HertzBeat Connect Peer Server SNMP**】->【**Query Oids Data**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of Snmp protocol. We need to configure Snmp request parameters, configure which Metrics to obtain, and configure oids. + + +### Data parsing method + +By configuring the metrics `field`, `aliasFields`, and `oids` under the `snmp` protocol of the monitoring template YML to capture the data specified by the peer and parse the mapping. + + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![](/img/docs/advanced/extend-point-1.png) + +------- +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_windows` which use the SNMP protocol to collect data. + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring mid-middleware custom-custom monitoring os-operating system monitoring +category: os +# The monitoring type eg: linux windows tomcat mysql aws... +app: windows +# The monitoring i18n name +name: + zh-CN: Windows操作系统 + en-US: OS Windows +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 161 + # field-param field key + - field: version + # name-param field display i18n name + name: + zh-CN: SNMP 版本 + en-US: SNMP Version + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: SNMPv1 + value: 0 + - label: SNMPv2c + value: 1 + # field-param field key + - field: community + # name-param field display i18n name + name: + zh-CN: SNMP 团体字 + en-US: SNMP Community + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 100 + # required-true or false + required: true + # param field input placeholder + placeholder: 'Snmp community for v1 v2c' + # field-param field key + - field: timeout + # name-param field display i18n name + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,100000]' + # required-true or false + required: false + # hide-is hide this field and put it in advanced layout + hide: true + # default value + defaultValue: 6000 +# collect metrics config list +metrics: + # metrics - system + - name: system + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier + - field: name + type: 1 + - field: descr + type: 1 + - field: uptime + type: 1 + - field: numUsers + type: 0 + - field: services + type: 0 + - field: processes + type: 0 + - field: responseTime + type: 0 + unit: ms + - field: location + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: snmp + # the config content when protocol is snmp + snmp: + # server host: ipv4 ipv6 domain + host: ^_^host^_^ + # server port + port: ^_^port^_^ + # snmp connect timeout + timeout: ^_^timeout^_^ + # snmp community + community: ^_^community^_^ + # snmp version + version: ^_^version^_^ + # snmp operation: get, walk + operation: get + # metrics oids: metric_name - oid_value + oids: + name: 1.3.6.1.2.1.1.5.0 + descr: 1.3.6.1.2.1.1.1.0 + uptime: 1.3.6.1.2.1.25.1.1.0 + numUsers: 1.3.6.1.2.1.25.1.5.0 + services: 1.3.6.1.2.1.1.7.0 + processes: 1.3.6.1.2.1.25.1.6.0 + location: 1.3.6.1.2.1.1.6.0 +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-ssh.md b/home/versioned_docs/version-v1.3.x/advanced/extend-ssh.md new file mode 100644 index 00000000000..2bb1360276c --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-ssh.md @@ -0,0 +1,205 @@ +--- +id: extend-ssh +title: SSH Protocol Custom Monitoring +sidebar_label: SSH Protocol Custom Monitoring +--- +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use SSH protocol to customize Metric monitoring. +> SSH protocol custom monitoring allows us to easily monitor and collect the Linux Metrics we want by writing sh command script. + +### SSH protocol collection process +【**System directly connected to Linux**】->【**Run shell command script statement**】->【**parse response data: oneRow, multiRow**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of SSH protocol. We need to configure SSH request parameters, configure which Metrics to obtain, and configure query script statements. + +### Data parsing method +We can obtain the corresponding Metric data through the data fields queried by the SHELL script and the Metric mapping we need. At present, there are two mapping parsing methods:oneRow and multiRow which can meet the needs of most Metrics. + +#### **oneRow** +> Query out a column of data, return the field value (one value per row) of the result set through query and map them to the field. + +eg: +Metrics of Linux to be queried hostname-host name,uptime-start time +Host name original query command:`hostname` +Start time original query command:`uptime | awk -F "," '{print $1}'` +Then the query script of the two Metrics in hertzbeat is(Use `;` Connect them together): +`hostname; uptime | awk -F "," '{print $1}'` +The data responded by the terminal is: +``` +tombook +14:00:15 up 72 days +``` +At last collected Metric data is mapped one by one as: +hostname is `tombook` +uptime is `14:00:15 up 72 days` + +Here the Metric field and the response data can be mapped into a row of collected data one by one + +#### **multiRow** +> Query multiple rows of data, return the column names of the result set through the query, and map them to the Metric field of the query. + +eg: +Linux memory related Metric fields queried:total-Total memory, used-Used memory,free-Free memory, buff-cache-Cache size, available-Available memory +Memory metrics original query command:`free -m`, Console response: +```shell + total used free shared buff/cache available +Mem: 7962 4065 333 1 3562 3593 +Swap: 8191 33 8158 +``` +In hertzbeat multiRow format parsing requires a one-to-one mapping between the column name of the response data and the indicaotr value, so the corresponding query SHELL script is: +`free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}'` +Console response is: +```shell +total used free buff_cache available +7962 4066 331 3564 3592 +``` + +Here the Metric field and the response data can be mapped into collected data one by one. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_linux` which use the SSH protocol to collect data. + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: os +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_linux +name: + zh-CN: 模拟LINUX应用类型 + en-US: LINUX EXAMPLE APP +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 22 + placeholder: 'Please enter the port' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true +# Metric group list +metrics: + # The first monitoring Metric group basic + # Note:: the built-in monitoring Metrics have (responseTime - response time) + - name: basic + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # Specific monitoring Metrics in the Metric group + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: hostname + type: 1 + instance: true + - field: version + type: 1 + - field: uptime + type: 1 + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: (uname -r ; hostname ; uptime | awk -F "," '{print $1}' | sed "s/ //g") | sed ":a;N;s/\n/^/g;ta" | awk -F '^' 'BEGIN{print "version hostname uptime"} {print $1, $2, $3}' + # parsing method for reponse data:oneRow, multiRow + parseType: multiRow + + - name: cpu + priority: 1 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: info + type: 1 + - field: cores + type: 0 + unit: the number of cores + - field: interrupt + type: 0 + unit: number + - field: load + type: 1 + - field: context_switch + type: 0 + unit: number + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # 主机host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: "LANG=C lscpu | awk -F: '/Model name/ {print $2}';awk '/processor/{core++} END{print core}' /proc/cpuinfo;uptime | sed 's/,/ /g' | awk '{for(i=NF-2;i<=NF;i++)print $i }' | xargs;vmstat 1 1 | awk 'NR==3{print $11}';vmstat 1 1 | awk 'NR==3{print $12}'" + parseType: oneRow + + - name: memory + priority: 2 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) instance: primary key of instance or not unit: Metric unit + - field: total + type: 0 + unit: Mb + - field: used + type: 0 + unit: Mb + - field: free + type: 0 + unit: Mb + - field: buff_cache + type: 0 + unit: Mb + - field: available + type: 0 + unit: Mb + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}' + parseType: multiRow +``` diff --git a/home/versioned_docs/version-v1.3.x/advanced/extend-tutorial.md b/home/versioned_docs/version-v1.3.x/advanced/extend-tutorial.md new file mode 100644 index 00000000000..27b38d079c4 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/advanced/extend-tutorial.md @@ -0,0 +1,238 @@ +--- +id: extend-tutorial +title: Quick Tutorial Customize and adapt a monitoring based on HTTP protocol +sidebar_label: Tutorial Case +--- + +Through this tutorial, we describe step by step how to customize and adapt a monitoring type based on the http protocol under the hertzbeat monitoring tool. + +Before reading this tutorial, we hope that you are familiar with how to customize types, metrics, protocols, etc. from [Custom Monitoring](extend-point) and [Http Protocol Customization](extend-http). + + +### HTTP protocol parses the general response structure to obtain metrics data + +> In many scenarios, we need to monitor the provided HTTP API interface and obtain the index value returned by the interface. In this article, we use the http custom protocol to parse our common http interface response structure, and obtain the fields in the returned body as indicator data. + + +``` +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` +As above, usually our background API interface will design such a general return. The same is true for the background of the hertzbeat system. Today, we will use the hertzbeat API as an example, add a new monitoring type **hertzbeat**, and monitor and collect its system summary statistics API +`http://localhost:1157/api/summary`, the response data is: + +``` +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**This time we get the metrics data such as `category`, `app`, `status`, `size`, `availableSize` under the app. ** + + +### Add Monitoring Template Yml + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. + + +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + + +Here we define a custom monitoring type `app` named `hertzbeat` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat +# The monitoring i18n name +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 20 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, instance-if is metrics group, unit-metric unit('%','ms','MB') + - field: app + type: 1 + instance: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + method: GET + # if enabled https, default value is false + ssl: ^_^ssl^_^ + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + parseType: jsonPath + parseScript: '$.data.apps.*' +``` + +**The addition is complete, now we restart the hertzbeat system. We can see that the system page has added a `hertzbeat` monitoring type. ** + + +![](/img/docs/advanced/extend-http-example-1.png) + + +### The system page adds the monitoring of `hertzbeat` monitoring type + +> We click Add `HertzBeat Monitoring Tool`, configure monitoring IP, port, collection cycle, account password in advanced settings, etc., click OK to add monitoring. + + +![](/img/docs/advanced/extend-http-example-2.png) + + +![](/img/docs/advanced/extend-http-example-3.png) + +> After a certain period of time (depending on the collection cycle), we can see the specific indicator data and historical charts in the monitoring details! + + +![](/img/docs/advanced/extend-http-example-4.png) + + + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add a new recipient, set alarm notification, etc. Have Fun!!! + + +---- + +#### over! + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please give us a star on GitHub Gitee, thank you very much. Thanks for the old iron support. Refill! + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/help/activemq.md b/home/versioned_docs/version-v1.3.x/help/activemq.md new file mode 100644 index 00000000000..1bf72231dfe --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/activemq.md @@ -0,0 +1,145 @@ +--- +id: activemq +title: Monitoring Apache ActiveMQ +sidebar_label: Apache ActiveMQ +keywords: [open source monitoring tool, monitoring Apache ActiveMQ metrics] +--- + +> Monitoring the running status of Apache ActiveMQ message middleware, nodes, topics and other related metrics. + +**Use Protocol: JMX** + +### Pre-monitoring Operations + +> You need to enable the `JMX` service on ActiveMQ, HertzBeat uses the JMX protocol to collect metrics from ActiveMQ. + +1. Modify the `conf/activemq.xml` file in the installation directory to enable JMX + +> Add `userJmx="true"` attribute in `broker` tag + +```xml + + + +``` + +2. Modify the `bin/env` file in the installation directory, configure the JMX port IP, etc. + +The original configuration information will be as follows +```text +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" +``` + +Update to the following configuration, ⚠️ pay attention to modify `local external IP` +```text +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" +# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.authenticate=false" +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=本机对外IP" + +ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" +``` + +3. Restart the ACTIVEMQ service, and add the corresponding ActiveMQ monitoring in HertzBeat. The parameters use the IP port configured by JMX. + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| JMX port | The HTTP port provided by JMX, the default is 11099. | +| JMX URL | Optional, customize the JMX URL connection | +| Username | Username used for authentication | +| password | password used for authentication | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect Metrics + +#### Metrics Group: broker + +| Metric Name | Unit | Description | +|-------------------------|------|-----------------------------------------------------------------------| +| BrokerName | None | The name of the broker. | +| BrokerVersion | None | The version of the broker. | +| Uptime | None | Uptime of the broker. | +| UptimeMillis | ms | Uptime of the broker in milliseconds. | +| Persistent | None | Messages are synchronized to disk. | +| MemoryPercentUsage | % | Percent of memory limit used. | +| StorePercentUsage | % | Percent of store limit used. | +| TempPercentUsage | % | Percent of temp limit used. | +| CurrentConnectionsCount | None | Attribute exposed for management | +| TotalConnectionsCount | None | Attribute exposed for management | +| TotalEnqueueCount | None | Number of messages that have been sent to the broker. | +| TotalDequeueCount | None | Number of messages that have been acknowledged on the broker. | +| TotalConsumerCount | None | Number of message consumers subscribed to destinations on the broker. | +| TotalProducerCount | None | Number of message producers active on destinations on the broker. | +| TotalMessageCount | None | Number of unacknowledged messages on the broker. | +| AverageMessageSize | None | Average message size on this broker | +| MaxMessageSize | None | Max message size on this broker | +| MinMessageSize | None | Min message size on this broker | + +#### Metrics Group: topic + +| Metric Name | Unit | Description | +|-------------------------|------|-------------------------------------------------------------------------------------------| +| Name | None | Name of this destination. | +| MemoryLimit | MB | Memory limit, in bytes, used by undelivered messages before paging to temporary storage. | +| MemoryPercentUsage | None | The percentage of the memory limit used | +| ProducerCount | None | Number of producers attached to this destination | +| ConsumerCount | None | Number of consumers subscribed to this destination. | +| EnqueueCount | None | Number of messages that have been sent to the destination. | +| DequeueCount | None | Number of messages that has been acknowledged (and removed) from the destination. | +| ForwardCount | None | Number of messages that have been forwarded (to a networked broker) from the destination. | +| InFlightCount | None | Number of messages that have been dispatched to, but not acknowledged by, consumers. | +| DispatchCount | None | Number of messages that has been delivered to consumers, including those not acknowledged | +| ExpiredCount | None | Number of messages that have been expired. | +| StoreMessageSize | B | The memory size of all messages in this destination's store. | +| AverageEnqueueTime | ms | Average time a message was held on this destination. | +| MaxEnqueueTime | ms | The longest time a message was held on this destination | +| MinEnqueueTime | ms | The shortest time a message was held on this destination | +| TotalBlockedTime | ms | Total time (ms) messages have been blocked by flow control | +| AverageMessageSize | B | Average message size on this destination | +| MaxMessageSize | B | Max message size on this destination | +| MinMessageSize | B | Min message size on this destination | + + +#### Metrics Group: memory_pool + +| Metric Name | Unit | Description | +|-------------| ----------- |----------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Group: class_loading + +| Metric Name | Unit | Description | +|-----------------------| ----------- | ----------- | +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Group: thread + +| Metric Name | Unit | Description | +|-------------------------| ----------- | ----------- | +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-v1.3.x/help/airflow.md b/home/versioned_docs/version-v1.3.x/help/airflow.md new file mode 100644 index 00000000000..25d9543c8fa --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/airflow.md @@ -0,0 +1,41 @@ +--- +id: airflow +title: 监控:Apache Airflow监控 +sidebar_label: Apache Airflow +keywords: [开源监控系统, 开源数据库监控, Apache Airflow监控] +--- + +> 对Apache Airflow通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ | ------------------------------------------------------------ | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8080 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认3000毫秒 | +| HTTPS | 是否启用HTTPS | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:airflow_health + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ------------ | -------- | -------------------- | +| metadatabase | 无 | metadatabase健康情况 | +| scheduler | 无 | scheduler健康情况 | +| triggerer | 无 | triggerer健康情况 | + +#### 指标集合:airflow_version + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | -------- | --------------- | +| value | 无 | Airflow版本 | +| git_version | 无 | Airflow git版本 | + + + diff --git a/home/versioned_docs/version-v1.3.x/help/alert_console.md b/home/versioned_docs/version-v1.3.x/help/alert_console.md new file mode 100644 index 00000000000..e727fec4771 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_console.md @@ -0,0 +1,18 @@ +--- +id: alert_console +title: Custom console address in alarm template +sidebar_label: Console address in alarm template +--- + +> After the threshold is triggered, send the alarm information. When you notify through DingDing / enterprise Wechat / FeiShu robot or email, the alarm content has a detailed link to log in to the console. + + +### Custom settings + +In our startup configuration file application.yml, find the following configuration +```yml +alerter: + console-url: #Here is our custom console address +``` + +The default value is the official console address of HertzBeat. \ No newline at end of file diff --git a/home/versioned_docs/version-v1.3.x/help/alert_dingtalk.md b/home/versioned_docs/version-v1.3.x/help/alert_dingtalk.md new file mode 100644 index 00000000000..fb63d52aa48 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_dingtalk.md @@ -0,0 +1,41 @@ +--- +id: alert_dingtalk +title: Alert DingDing robot notification +sidebar_label: Alert DingDing robot notification +keywords: [open source monitoring tool, open source alerter, open source DingDing robot notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by DingDing robot. + +### Operation steps + +1. **【DingDing desktop client】-> 【Group settings】-> 【Intelligent group assistant】-> 【Add new robot-select custom】-> 【Set robot name and avatar】-> 【Note⚠️Set custom keywords: HertzBeat】 ->【Copy its webhook address after adding successfully】** + +> Note⚠️ When adding a robot, its custom keywords need to be set in the security setting block: HertzBeat. Other security settings or the IP segment don't need to be filled in. + +![email](/img/docs/help/alert-notice-8.png) + +2. **【Save access_token value of the WebHook address of the robot】** + +> eg: webHook address:`https://oapi.dingtalk.com/robot/send?access_token=43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` +> Its robot access_token value is `43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + +3. **【Alarm notification】->【Add new recipient】 ->【Select DingDing robot notification method】->【Set DingDing robot ACCESS_TOKEN】-> 【Confirm】** + +![email](/img/docs/help/alert-notice-9.png) + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + + +### DingDing robot common issues + +1. DingDing group did not receive the robot alarm notification. +> Please check whether there is any triggered alarm information in the alarm center. +> Please check whether DingDing robot is configured with security custom keywords :HertzBeat. +> Please check whether the robot ACCESS_TOKEN is configured correctly and whether the alarm strategy association is configured. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_discord.md b/home/versioned_docs/version-v1.3.x/help/alert_discord.md new file mode 100644 index 00000000000..8dfdca384fa --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_discord.md @@ -0,0 +1,70 @@ +--- +id: alert_discord +title: Alert Discord Bot Notifications +sidebar_label: Alert Discord bot notification +keywords: [open source monitoring tool, open source alerter, open source Discord bot notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Discord robot. + +## Steps + +### Create an application in Discord, create a robot under the application, and get the robot Token + +1. Visit [https://discord.com/developers/applications](https://discord.com/developers/applications) to create an application + +![bot](/img/docs/help/discord-bot-1.png) + +2. Create a robot under the application and get the robot Token + +![bot](/img/docs/help/discord-bot-2.png) + +![bot](/img/docs/help/discord-bot-3.png) + +3. Authorize the bot to the chat server + +> Authorize the robot under the OAuth2 menu, select `bot` for `SCOPES`, `BOT PERMISSIONS` select `Send Messages` + +![bot](/img/docs/help/discord-bot-4.png) + +> Obtain the URL generated at the bottom, and the browser accesses this URL to officially authorize the robot, that is, to set which chat server the robot will join. + +4. Check if your chat server has joined robot members + +![bot](/img/docs/help/discord-bot-5.png) + +### Enable developer mode and get Channel ID + +1. Personal Settings -> Advanced Settings -> Enable Developer Mode + +![bot](/img/docs/help/discord-bot-6.png) + +2. Get channel Channel ID + +> Right-click the chat channel you want to send the robot message to, click the COPY ID button to get the Channel ID + +![bot](/img/docs/help/discord-bot-7.png) + + +### Add an alarm notification person in HertzBeat, the notification method is Discord Bot + +1. **[Alarm notification] -> [Add recipient] -> [Select Discord robot notification method] -> [Set robot Token and ChannelId] -> [OK]** + +![email](/img/docs/help/discord-bot-8.png) + +4. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + +> **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + +![email](/img/docs/help/alert-notice-policy.png) + + +### Discord Bot Notification FAQ + +1. Discord doesn't receive bot alert notifications + +> Please check whether the alarm information has been triggered in the alarm center +> Please check whether the robot Token and ChannelId are configured correctly, and whether the alarm policy association has been configured +> Please check whether the bot is properly authorized by the Discord chat server + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_email.md b/home/versioned_docs/version-v1.3.x/help/alert_email.md new file mode 100644 index 00000000000..353ae4673fe --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_email.md @@ -0,0 +1,38 @@ +--- +id: alert_email +title: Alert email notification +sidebar_label: Alert email notification +keywords: [open source monitoring tool, open source alerter, open source email notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by email. + +### Operation steps + +1. **【Alarm notification】->【Add new recipient】 ->【Select email notification method】** + +![email](/img/docs/help/alert-notice-1.png) + +2. **【Get verification code】-> 【Enter email verification code】-> 【Confirm】** +![email](/img/docs/help/alert-notice-2.png) + +![email](/img/docs/help/alert-notice-3.png) + +3. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + + +### Email notification common issues + +1. Hertzbeat deployed on its own intranet cannot receive email notifications +> Hertzbeat needs to configure its own mail server, not tancloud. Please confirm whether you have configured its own mail server in application.yml + +2. Cloud environment tancloud cannot receive email notification +> Please check whether there is any triggered alarm information in the alarm center. +> Please check whether the mailbox is configured correctly and whether the alarm strategy association is configured. +> Please check whether the warning email is blocked in the trash can of the mailbox. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_enterprise_wechat_app.md b/home/versioned_docs/version-v1.3.x/help/alert_enterprise_wechat_app.md new file mode 100644 index 00000000000..f9e072e436a --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_enterprise_wechat_app.md @@ -0,0 +1,34 @@ +--- +id: alert_enterprise_wechat_app +title: Alert Enterprise Wechat App notification +sidebar_label: Alert Enterprise Wechat App notification +keywords: [open source monitoring tool, open source alerter, open source Enterprise Wechat App notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by enterprise WeChat App. + +### Operation steps + +1. **【Enterprise Wechat backstage】-> 【App Management】-> 【Create an app】-> 【Set App message】->【Copy AgentId and Secret adding successfully】** + +![email](/img/docs/help/alert-wechat-1.jpg) + +2. **【Alarm notification】->【Add new recipient】 ->【Select Enterprise WeChat App notification method】->【Set Enterprise WeChat ID,Enterprise App ID and Enterprise App Secret 】-> 【Confirm】** + +![email](/img/docs/help/alert-wechat-2.jpg) + +3. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-wechat-3.jpg) + + +### Enterprise WeChat App common issues + +1. Enterprise WeChat App did not receive the alarm notification. +> Please check if the user has application permissions. +> Please check if the enterprise application callback address settings are normal. +> Please check if the server IP is on the enterprise application whitelist. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_feishu.md b/home/versioned_docs/version-v1.3.x/help/alert_feishu.md new file mode 100644 index 00000000000..56606012021 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_feishu.md @@ -0,0 +1,34 @@ +--- +id: alert_feishu +title: Alert FeiShu robot notification +sidebar_label: Alert FeiShu robot notification +keywords: [open source monitoring tool, open source alerter, open source feishu bot notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by FeiShu robot. + +### Operation steps + +1. **【FeiShu client】-> 【Group settings】-> 【Group robot】-> 【Add new robot】-> 【Set robot name and avatar】-> 【Copy its webhook address after adding successfully】** + +2. **【Save the key value of the WebHook address of the robot】** + +> eg: webHook address:`https://open.feishu.cn/open-apis/bot/v2/hook/3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` +> Its robot KEY value is `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【Alarm notification】->【Add new recipient】 ->【Select FeiShu robot notification method】->【Set FeiShu robot KEY】-> 【Confirm】** + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + + +### FeiShu robot notification common issues + +1. FeiShu group did not receive the robot alarm notification. +> Please check whether there is any triggered alarm information in the alarm center. +> Please check whether the robot key is configured correctly and whether the alarm strategy association is configured. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_slack.md b/home/versioned_docs/version-v1.3.x/help/alert_slack.md new file mode 100644 index 00000000000..0de69afa328 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_slack.md @@ -0,0 +1,36 @@ +--- +id: alert_slack +title: Alert Slack Webhook Notifications +sidebar_label: Alert Slack Webhook Notification +keywords: [open source monitoring tool, open source alerter, open source slack webhook notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Slack Webhook. + +## Steps + +### Open Webhook in Slack, get Webhook URL + +Refer to the official website document [Sending messages using Incoming Webhooks](https://api.slack.com/messaging/webhooks) + +### Add an alarm notifier to HertzBeat, and the notification method is Slack Webhook + +1. **【Alarm Notification】->【Add Recipient】->【Select Slack Webhook Notification Method】->【Set Webhook URL】-> 【OK】** + +![email](/img/docs/help/slack-bot-1.png) + +4. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + +> **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + +![email](/img/docs/help/alert-notice-policy.png) + + +### Slack Notification FAQ + +1. Slack did not receive the robot warning notification + +> Please check whether the alarm information has been triggered in the alarm center +> Please check whether the slack webhook url are configured correctly, and whether the alarm policy association has been configured + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_smn.md b/home/versioned_docs/version-v1.3.x/help/alert_smn.md new file mode 100644 index 00000000000..b4013b9f902 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_smn.md @@ -0,0 +1,43 @@ +--- +id: alert_smn +title: Alert Huawei Cloud SMN Notifications +sidebar_label: Alert Huawei Cloud SMN Notifications +keywords: [ open source monitoring tool, open source alerter, open source Huawei Cloud SMN notification ] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Huawei Cloud SMN. + +### 操作步骤 + +1. **According to [Huawei Cloud SMN Official Document](https://support.huaweicloud.com/qs-smn/smn_json.html) activate the SMN service and configure SMN** + +![alert-notice-10](/img/docs/help/alert-notice-10.png) + +2. **Save topic URN for SMN** + +![alert-notice-11](/img/docs/help/alert-notice-11.png) + +3. **According to [Huawei Cloud Signature Document](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html) obtain AK, SK, and project ID** + +![alert-notice-12](/img/docs/help/alert-notice-12.png) + +![alert-notice-13](/img/docs/help/alert-notice-13.png) + +4. **【Alarm Notification】->【Add Recipient】->【Select Slack Webhook Notification Method】->【Set Huawei Cloud SMN AK, SK and other configurations】-> 【OK】** + +![alert-notice-14](/img/docs/help/alert-notice-14.png) + +5. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + +> **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + +![email](/img/docs/help/alert-notice-4.png) + +### Huawei Cloud SMN Notification FAQ + +1. Huawei Cloud SMN did not receive the robot warning notification + +> Please check whether the alarm information has been triggered in the alarm center +> Please check whether the Huawei Cloud SMN AK, SK and other configurations are configured correctly, and whether the alarm policy association has been configured + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_telegram.md b/home/versioned_docs/version-v1.3.x/help/alert_telegram.md new file mode 100644 index 00000000000..1fbe4f0ae7e --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_telegram.md @@ -0,0 +1,66 @@ +--- +id: alert_telegram +title: Alert Telegram Bot Notification +sidebar_label: Alert Telegram bot notification +keywords: [open source monitoring tool, open source alerter, open source Telegram bot notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Telegram robot. + +## Steps + +### Create a bot in Telegram, get Bot Token and UserId + +1. Use [@BotFather](https://t.me/BotFather) to create your own bot and get an access token `Token` + +![telegram-bot](/img/docs/help/telegram-bot-1.png) + +2. Get the `User ID` of the recipient + +**Use the recipient account you want to notify to send a message to the newly created Bot account**, +Visit ```https://api.telegram.org/bot/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` + +```json +{ + "ok": true, + "result": [ + { + "update_id": 632299191, + "message": { + "from":{ + "id": "User ID" + }, + "chat":{ + }, + "date": 1673858065, + "text": "111" + } + } + ] +} +``` + +3. Record and save the `Token` and `User Id` we got + +### Add an alarm notification person to HertzBeat, the notification method is Telegram Bot + +1. **【Alarm Notification】->【Add Recipient】->【Select Telegram Robot Notification Method】->【Set Robot Token and UserId】-> 【OK】** + +![email](/img/docs/help/telegram-bot-2.png) + +4. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + +> **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + +![email](/img/docs/help/alert-notice-policy.png) + + +### Telegram Bot Notification FAQ + +1. Telegram did not receive the robot warning notification + +> Please check whether the alarm information has been triggered in the alarm center +> Please check whether the robot Token and UserId are configured correctly, and whether the alarm policy association has been configured +> UserId should be the UserId of the recipient of the message + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_threshold.md b/home/versioned_docs/version-v1.3.x/help/alert_threshold.md new file mode 100644 index 00000000000..893f674164d --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_threshold.md @@ -0,0 +1,36 @@ +--- +id: alert_threshold +title: Threshold alarm configuration +sidebar_label: Threshold alarm configuration +--- + +> Configure the alarm threshold (warning alarm, critical alarm, emergency alarm) for the monitoring Metrics, and the system calculates and triggers the alarm according to the threshold configuration and the collected Metric data. + +### Operation steps + +1. **【Alarm configuration】->【Add new threshold】-> 【Confirm after configuration】** + +![threshold](/img/docs/help/alert-threshold-1.png) + +As shown above: + +**Metric object**:Select the monitoring Metric object for which we need to configure the threshold. Eg:website monitoring type -> summary Metric set -> responseTime-response time Metric +**Threshold trigger expression**:Calculate and judge whether to trigger the threshold according to this expression. See the page prompts for expression environment variables and operators. Eg:set the response time greater than 50 to trigger an alarm, and the expression is `responseTime > 50`. For detailed help on threshold expression, see [Threshold expression help](alert_threshold_expr) +**Alarm level**:The alarm level that triggers the threshold, from low to high: warning, critical, emergency. +**Trigger times**:How many times will the threshold be triggered before the alarm is really triggered. +**Notification template**:Notification information Template sent after alarm triggering, See page prompts for template environment variables, eg:`${app}.${metrics}.${metric} Metric's value is ${responseTime}, greater than 50 triggers an alarm` +**Global default**: Set whether this threshold is valid for such global Metrics, and the default is No. After adding a new threshold, you need to associate the threshold with the monitoring object, so that the threshold will take effect for this monitoring. +**Enable alarm**:This alarm threshold configuration is enabled or disabled. + +2. **Threshold association monitoring⚠️ 【Alarm configuration】-> 【Threshold just set】-> 【Configure associated monitoring】-> 【Confirm after configuration】** + +> **Note⚠️ After adding a new threshold, you need to associate the threshold with the monitoring object(That is, to set this threshold for which monitoring is effective), so that the threshold will take effect for this monitoring.**。 + +![threshold](/img/docs/help/alert-threshold-2.png) + +![threshold](/img/docs/help/alert-threshold-3.png) + +**After the threshold alarm is configured, the alarm information that has been successfully triggered can be seen in 【alarm center】.** +**If you need to notify the relevant personnel of the alarm information by email, Wechat, DingDing and Feishu, it can be configured in 【alarm notification】.** + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_threshold_expr.md b/home/versioned_docs/version-v1.3.x/help/alert_threshold_expr.md new file mode 100644 index 00000000000..e211514cad2 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_threshold_expr.md @@ -0,0 +1,49 @@ +--- +id: alert_threshold_expr +title: Threshold trigger expression +sidebar_label: Threshold trigger expression +--- + +> When we configure the threshold alarm, we need to configure the threshold trigger expression. The system calculates whether to trigger the alarm according to the expression and the monitoring index value. Here is a detailed introduction to the use of the expression. + +#### Operators supported by expressions + +``` +equals(str1,str2) +== +< +<= +> +>= +!= +( ) ++ +- +&& +|| +``` + +Rich operators allow us to define expressions freely. +Note⚠️ For the equality of string, please use `equals(str1,str2)`, while for the equality judgment of number, please use == or != + +#### Supported environment variables +> Environment variables, i.e. supported variables such as Metric values, are used in the expression. When the threshold value is calculated and judged, the variables will be replaced with actual values for calculation. + +Non fixed environment variables:These variables will change dynamically according to the monitoring Metric object we choose. For example, if we choose **response time Metric of website monitoring**, the environment variables will have `responseTime - This is the response time variable` +If we want to set **when the response time of website monitoring is greater than 400** to trigger an alarm,the expression is `responseTime>400` + +Fixed environment variables(Rarely used):`instance : Row instance value` +This variable is mainly used to calculate multiple instances. For example, we collected `usage`(`usage is non fixed environment variables`) of disk C and disk D, but we only want to set the alarm when **the usage of C disk is greater than 80**. Then the expression is `equals(instance,"c")&&usage>80` + +#### Expression setting case + +1. Website monitoring -> Trigger alarm when the response time is greater than or equal to 400ms +`responseTime>=400` +2. API monitoring -> Trigger alarm when the response time is greater than 3000ms +`responseTime>3000` +3. Entire site monitoring -> Trigger alarm when URL(instance) path is `https://baidu.com/book/3` and the response time is greater than 200ms +`equals(instance,"https://baidu.com/book/3")&&responseTime>200` +4. MYSQL monitoring -> status Metric group -> Trigger alarm when hreads_running(number of running threads) Metric is greater than 7 +`threads_running>7` + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_webhook.md b/home/versioned_docs/version-v1.3.x/help/alert_webhook.md new file mode 100644 index 00000000000..0a7af9ada21 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_webhook.md @@ -0,0 +1,67 @@ +--- +id: alert_webhook +title: Alert WebHook callback notification +sidebar_label: Alert webHook notification +keywords: [open source monitoring tool, open source alerter, open source webhook notification] +--- + +> After the threshold is triggered send alarm information and call the Webhook interface through post request to notify the recipient. + +### Operation steps + +1. **【Alarm notification】->【Add new recipient】 ->【Select WebHook notification method】-> 【Set WebHook callback address】 -> 【Confirm】** + +![email](/img/docs/help/alert-notice-5.png) + +2. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + +### WebHook callback POST body BODY content + +Content format:JSON +```json +{ + "id":76456, + "target":"available", + "alertDefineId":232, + "priority":0, + "content":"监控紧急可用性告警: UN_CONNECTABLE", + "tag": { + "monitorId": 3543534545, + "monitorName":"API_poetry.didi.top" + }, + "status":0, + "times":1, + "gmtCreate":"2022-02-25T13:32:13", + "gmtUpdate":"2022-02-25T13:32:13" +} +``` + +| | | +|-----|-----| +| id | integer($int64) title: Alarm record entity primary key index ID | +| target | string title: Alert target object: monitor availability-available metrics-app.metrics.field | +| alertDefineId integer($int64) title: Alarm definition ID associated with the alarm | +| priority | string($byte) title: Alarm level 0: high-emergency-critical alarm-red 1: medium-critical-critical alarm-orange 2: low-warning-warning alarm-yellow | +| content | string title: The actual content of the alarm notification | +| status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed | +| times | integer($int32) title: Alarm threshold trigger times | +| firstTriggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) | +| lastTriggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) | +| nextEvalInterval | integer($int64) title: Alarm evaluation interval (milliseconds) | +| tags | example: {key1:value1} | +| gmtCreate | string($date-time) title: Record the latest creation time (timestamp in milliseconds) | +| gmtUpdate | string($date-time) | + + + +### Webhook notification common issues + +1. WebHook callback did not take effect +> Please check whether there is any triggered alarm information in the alarm center. +> Please check whether the configured webhook callback address is correct. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/alert_wework.md b/home/versioned_docs/version-v1.3.x/help/alert_wework.md new file mode 100644 index 00000000000..e862fae7ddf --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/alert_wework.md @@ -0,0 +1,38 @@ +--- +id: alert_wework +title: Alert enterprise Wechat notification +sidebar_label: Alert enterprise Wechat notification +keywords: [open source monitoring tool, open source alerter, open source WeWork notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by enterprise Wechat robot. + +### Operation steps + +1. **【Enterprise Wechat】-> 【Group settings】-> 【Group robot】-> 【Add new robot】-> 【Set robot name and avatar】-> 【Copy its webhook address after adding successfully】** + +![email](/img/docs/help/alert-notice-6.jpg) + +2. **【Save the key value of the WebHook address of the robot】** + +> eg: webHook address:`https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` +> Its robot KEY value is `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【Alarm notification】->【Add new recipient】 ->【Select enterprise Wechat robot notification method】->【Set enterprise Wechat robot KEY】-> 【Confirm】** + +![email](/img/docs/help/alert-notice-7.png) + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + +> **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + + +### Enterprise Wechat robot common issues + +1. The enterprise wechat group did not receive the robot alarm notification. +> Please check whether there is any triggered alarm information in the alarm center. +> Please check whether the robot key is configured correctly and whether the alarm strategy association is configured. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-v1.3.x/help/api.md b/home/versioned_docs/version-v1.3.x/help/api.md new file mode 100644 index 00000000000..ed92a722091 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/api.md @@ -0,0 +1,35 @@ +--- +id: api +title: Monitoring HTTP API +sidebar_label: HTTP API +keywords: [open source monitoring tool, monitoring http api] +--- + +> Call HTTP API interface, check whether the interface is available, and monitor its response time and other Metrics. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Relative path | Suffix path of website address except IP port. For example, the relative path of `www.tancloud.cn/console` website is `/console` | +| Request mode | Set the request mode of interface call:GET, POST, PUT, DELETE | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Username | User name used for interface Basic authentication or Digest authentication | +| Password | Password used for interface Basic authentication or Digest authentication | +| Content-Type | Set the resource type when carrying the BODY request body data request | +| Request BODY | Set the carry BODY request body data, which is valid when PUT or POST request method is used | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| responseTime | ms | Website response time | + diff --git a/home/versioned_docs/version-v1.3.x/help/centos.md b/home/versioned_docs/version-v1.3.x/help/centos.md new file mode 100644 index 00000000000..2a6ad2b0a6d --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/centos.md @@ -0,0 +1,82 @@ +--- +id: centos +title: CentOS operating system monitoring +sidebar_label: CentOS operating system +keywords: [open source monitoring tool, open source os monitoring tool, monitoring CentOS operating system metrics] +--- + +> Collect and monitor the general performance Metrics of CentOS operating system. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Linux SSH. The default is 22 | +| Username | SSH connection user name, optional | +| Password | SSH connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| hostname | none | Host name | +| version | none | Operating system version | +| uptime | none | System running time | + +#### Metric set:cpu + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| info | none | CPU model | +| cores | cores | Number of CPU cores | +| interrupt | number | Number of CPU interrupts | +| load | none | Average load of CPU in the last 1/5/15 minutes | +| context_switch | number | Number of current context switches | +| usage | % | CPU usage | + + +#### Metric set:memory + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| total | Mb | Total memory capacity | +| used | Mb | User program memory | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory occupied by cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage | + +#### Metric set:disk + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| disk_num | blocks | Total number of disks | +| partition_num | partitions | Total number of partitions | +| block_write | blocks | Total number of blocks written to disk | +| block_read | blocks | Number of blocks read from disk | +| write_rate | iops | Rate of writing disk blocks per second | + +#### Metric set:interface + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| interface_name | none | Network card name | +| receive_bytes | byte | Inbound data traffic(bytes) | +| transmit_bytes | byte | Outbound data traffic(bytes) | + +#### Metric set:disk_free + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| filesystem | none | File system name | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | usage | +| mounted | none | Mount point directory | diff --git a/home/versioned_docs/version-v1.3.x/help/dm.md b/home/versioned_docs/version-v1.3.x/help/dm.md new file mode 100644 index 00000000000..91b032fdf54 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/dm.md @@ -0,0 +1,49 @@ +--- +id: dm +title: Monitoring DM database +sidebar_label: DM Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring DM database metrics] +--- + +> Collect and monitor the general performance metrics of the DM database. DM8+ is supported. + +### Configuration parameters + +| Parameter name | Parameter help description | +| ------- | ---------- | +| Monitor Host | Monitored peer IPV4, IPV6 or domain name. Note ⚠️ without protocol headers (eg: https://, http://). | +| Monitor Name | Identifies the name of this monitor. The name needs to be unique. | +| Port | The port provided by the database externally, the default is 5236. | +| Query Timeout | Set the timeout when the SQL query does not respond to data, in ms milliseconds, the default is 3000 milliseconds. | +| database name | database instance name, optional. | +| username | database connection username, optional | +| password | database connection password, optional | +| URL | Database connection URL, optional | +| Collection Interval | Monitor periodical collection data interval, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and then continue to add and modify operations if the detection is successful | +| Description Remarks | More remarks that identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: basic + +| Metric Name | Metric Unit | Metric Help Description | +| ------------ | -------- | ------------------ | +| PORT_NUM | None | Database exposed service port | +| CTL_PATH | None | Control File Path | +| MAX_SESSIONS | None | Maximum database connections | + +#### Metric collection: status + +| Metric Name | Metric Unit | Metric Help Description | +| -------- | -------- | ------------------ | +| status$ | None | Open/Close status of DM database | + + +#### Metric collection: thread + +| Metric Name | Metric Unit | Metric Help Description | +| ------------- | -------- | ------------------------- | +| dm_sql_thd | None | Thread for writing dmsql dmserver | +| dm_io_thd | None | IO threads, controlled by IO_THR_GROUPS parameter, default is 2 threads | +| dm_quit_thd | None | Thread used to perform a graceful shutdown of the database | diff --git a/home/versioned_docs/version-v1.3.x/help/docker.md b/home/versioned_docs/version-v1.3.x/help/docker.md new file mode 100644 index 00000000000..fdd3098ce55 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/docker.md @@ -0,0 +1,106 @@ +--- +id: docker +title: Monitor:Docker Monitor +sidebar_label: Docker Monitor +keywords: [open source monitoring tool, open source docker monitoring tool, monitoring docker metrics] +--- + +> Collect and monitor general performance Metrics of Docker containers. + + +## Pre-monitoring operations + +If you want to monitor the container information in `Docker`, you need to open the port according to the following steps, so that the collection request can obtain the corresponding information. + +**1. Edit the docker.server file:** + +````shell +vi /usr/lib/systemd/system/docker.service +```` + +Find the **[Service]** node, modify the ExecStart property, and add `-H tcp://0.0.0.0:2375` + +````shell +ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 +```` + +This is equivalent to the **2375** port that is open to the outside world. Of course, it can be modified to other ports according to your own situation. + +**2. Reload the Docker configuration to take effect:** + +```shell +systemctl daemon-reload +systemctl restart docker +```` + +**Note: Remember to open the `2375` port number in the server console. ** + +**3. If the above method does not work:** + +Open the `2375` port number inside the server. + +```shell +firewall-cmd --zone=public --add-port=2375/tcp --permanent +firewall-cmd --reload +```` + + + + + +### Configuration parameters + +| Parameter name | Parameter help description | +| ------------ | ------------------------------- | +| Monitor Host | Monitored peer IPV4, IPV6 or domain name. Note ⚠️ without protocol headers (eg: https://, http://). | +| Monitor Name | Identifies the name of this monitor. The name needs to be unique. | +| Port | The port provided by the database externally, the default is 2375. | +| Query Timeout | Set the timeout when getting the Docker server API interface, in ms, the default is 3000 ms. | +| Container Name | Generally monitors all running container information. | +| username | connection username, optional | +| password | connection password, optional | +| URL | Database connection URL, optional, if configured, the parameters such as database name, username and password in the URL will override the parameters configured above | +| Collection Interval | Monitor periodical collection data interval, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and then continue to add and modify operations if the detection is successful | +| Description Remarks | More remarks that identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: system + +| Metric Name | Metric Unit | Metric Help Description | +| ------------------ | -------- | ----------------------- | +| Name | None | Server Name | +| version | none | docker version number | +| os | none | server version eg: linux x86_64 | +| root_dir | none | docker folder directory eg: /var/lib/docker | +| containers | None | Total number of containers (running + not running) | +| containers_running | None | Number of running containers | +| containers_paused | none | number of containers in pause | +| images | None | The total number of container images. | +| ncpu | none | ncpu | +| mem_total | MB | Total size of memory used | +| system_time | none | system time | + +#### Metric collection: containers + +| Metric Name | Metric Unit | Metric Help Description | +| -------- | -------- | ------------ | +| id | None | The ID of the container in Docker | +| name | None | The container name in the Docker container | +| image | None | Image used by the Docker container | +| command | None | Default startup command in Docker | +| state | None | The running state of the container in Docker | +| status | None | Update time in Docker container | + +#### Metrics collection: stats + +| Metric Name | Metric Unit | Metric Help Description | +| ---------------- | -------- | ------------------ | +| name | None | The name in the Docker container | +| available_memory | MB | The amount of memory that the Docker container can utilize | +| used_memory | MB | The amount of memory already used by the Docker container | +| memory_usage | None | Memory usage of the Docker container | +| cpu_delta | None | The number of CPUs already used by the Docker container | +| number_cpus | None | The number of CPUs that the Docker container can use | +| cpu_usage | None | Docker container CPU usage | diff --git a/home/versioned_docs/version-v1.3.x/help/doris_be.md b/home/versioned_docs/version-v1.3.x/help/doris_be.md new file mode 100644 index 00000000000..8b1d202002e --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/doris_be.md @@ -0,0 +1,170 @@ +--- +id: doris_be +title: 监控:DORIS数据库BE监控 +sidebar_label: DORIS数据库BE +keywords: [开源监控系统, 开源数据库监控, DORIS数据库BE监控] +--- + +> 对DORIS数据库FE的通用性能指标进行采集监控。支持DORIS2.0.0。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ | ------------------------------------------------------------ | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8040 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认3000毫秒 | +| 数据库名称 | 数据库实例名称,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:doris_be_load_channel_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------------- | +| value | 无 | 当前打开的 load channel 个数 | + +#### 指标集合:doris_be_memtable_flush_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------------- | +| value | 无 | memtable写入磁盘的个数累计值 | + +#### 指标集合:doris_be_plan_fragment_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------- | +| value | 无 | 当前已接收的 fragment instance 的数量 | + +#### 指标集合:doris_be_process_thread_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ----------------------------------------- | +| value | 无 | BE 进程线程数。通过 `/proc/pid/task` 采集 | + +#### 指标集合:doris_be_query_scan_rows + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------------ | +| value | 无 | 读取行数的累计值。这里只统计读取 Olap 表的数据量。并且是 RawRowsRead(部分数据行可能被索引跳过,并没有真正读取,但仍会记录到这个值中) | + +#### 指标集合:doris_be_result_buffer_block_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------- | +| value | 无 | 当前查询结果缓存中的 query 个数 | + +#### 指标集合:doris_be_send_batch_thread_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------------------------------- | +| value | 无 | 导入时用于发送数据包的线程池的排队个数 | + +#### 指标集合:doris_be_tablet_base_max_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------------------------- | +| value | 无 | 当前最大的 Base Compaction Score | + +#### 指标集合:doris_be_timeout_canceled_fragment_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | --------------------------------------------- | +| value | 无 | 因超时而被取消的 fragment instance 数量累计值 | + +#### 指标集合:doris_be_load_rows + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------- | +| value | 无 | 通过 tablet sink 发送的行数累计 | + +#### 指标集合:doris_be_all_rowsets_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------- | +| value | 无 | 当前所有 rowset 的个数 | + +#### 指标集合:doris_be_all_segments_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ----------------------- | +| value | 无 | 当前所有 segment 的个数 | + +#### 指标集合:doris_be_heavy_work_max_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------ | +| value | 无 | brpc heavy线程池线程个数 | + +#### 指标集合:doris_be_light_work_max_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------ | +| value | 无 | brpc light线程池线程个数 | + +#### 指标集合:doris_be_heavy_work_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ----------------------------------------------- | +| value | 无 | brpc heavy线程池队列最大长度,超过则阻塞提交work | + +#### 指标集合:doris_be_light_work_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ----------------------------------------------- | +| value | 无 | brpc light线程池队列最大长度,超过则阻塞提交work | + +#### 指标集合:doris_be_heavy_work_active_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------------------- | +| value | 无 | brpc heavy线程池活跃线程数 | + +#### 指标集合:doris_be_light_work_active_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------------------- | +| value | 无 | brpc light线程池活跃线程数 | + +#### 指标集合:doris_be_compaction_bytes_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ---------- | -------- | ---------------------------------- | +| base | 字节 | Base Compaction 的数据量累计 | +| cumulative | 字节 | Cumulative Compaction 的数据量累计 | + +#### 指标集合:doris_be_disks_avail_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------- | +| path | 无 | 指定数据目录 | +| value | 字节 | `{path="/path1/"}` 表示 `/path1` 目录所在磁盘的剩余空间 | + +#### 指标集合:doris_be_disks_total_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------- | +| path | 无 | 指定数据目录 | +| value | 字节 | `{path="/path1/"}` 表示 `/path1` 目录所在磁盘的全部空间 | + +#### 指标集合:doris_be_local_bytes_read_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | --------------------------------- | +| value | 字节 | 由 `LocalFileReader` 读取的字节数 | + +#### 指标集合:doris_be_local_bytes_written_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | --------------------------------- | +| value | 字节 | 由 `LocalFileWriter` 写入的字节数 | + +#### 指标集合:doris_be_memory_allocated_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | --------------------------------------------------- | +| value | 字节 | BE 进程物理内存大小,取自 `/proc/self/status/VmRSS` | \ No newline at end of file diff --git a/home/versioned_docs/version-v1.3.x/help/doris_fe.md b/home/versioned_docs/version-v1.3.x/help/doris_fe.md new file mode 100644 index 00000000000..960c03a7120 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/doris_fe.md @@ -0,0 +1,127 @@ +--- +id: doris_fe +title: 监控:DORIS数据库FE监控 +sidebar_label: DORIS数据库FE +keywords: [开源监控系统, 开源数据库监控, DORIS数据库FE监控] +--- + +> 对DORIS数据库FE的通用性能指标进行采集监控。支持DORIS2.0.0。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ------------ | ------------------------------------------------------------ | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8030 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认3000毫秒 | +| 数据库名称 | 数据库实例名称,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:doris_fe_connection_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ----------------------- | +| value | 无 | 当前FE的MySQL端口连接数 | + +#### 指标集合:doris_fe_edit_log_clean + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------------- | +| success | 无 | 清理历史元数据日志成功的次数 | +| failed | 无 | 清理历史元数据日志失败的次数 | + + +#### 指标集合:doris_fe_edit_log + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------------- | -------- | ------------------------ | +| write | 无 | 元数据日志写入次数的计数 | +| read | 无 | 元数据日志读取次数的计数 | +| current | 无 | 元数据日志当前数量 | +| accumulated_bytes | 字节 | 元数据日志写入量的累计值 | +| current_bytes | 字节 | 元数据日志当前值 | + +#### 指标集合:doris_fe_image_clean + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------------------------- | +| success | 无 | 清理历史元数据镜像文件成功的次数 | +| failed | 无 | 清理历史元数据镜像文件失败的次数 | + +#### 指标集合:doris_fe_image_write + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------------- | +| success | 无 | 生成元数据镜像文件成功的次数 | +| failed | 无 | 生成元数据镜像文件失败的次数 | + +#### 指标集合:doris_fe_query_err + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------- | +| value | 无 | 错误查询的累积值 | + +#### 指标集合:doris_fe_max_journal_id + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------------ | +| value | 无 | 当前FE节点最大元数据日志ID。如果是Master FE,则是当前写入的最大ID,如果是非Master FE,则代表当前回放的元数据日志最大ID。用于观察多个FE之间的 id 是否差距过大。过大则表示元数据同步出现问题 | + +#### 指标集合:doris_fe_max_tablet_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------------ | +| value | 无 | 所有BE节点中最大的 compaction score 值。该值可以观测当前集群最大的 compaction score,以判断是否过高。如过高则可能出现查询或写入延迟 | + +#### 指标集合:doris_fe_qps + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------ | +| value | 无 | 当前FE每秒查询数量(仅统计查询请求) | + +#### 指标集合:doris_fe_query_err_rate + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | -------------- | +| value | 无 | 每秒错误查询数 | + +#### 指标集合:doris_fe_report_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------------ | +| value | 无 | BE的各种定期汇报任务在FE端的队列长度,该值反映了汇报任务在 Master FE 节点上的阻塞程度,数值越大,表示FE处理能力不足 | + +#### 指标集合:doris_fe_rps + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ---------------------------------------------- | +| value | 无 | 当前FE每秒请求数量(包含查询以及其他各类语句) | + +#### 指标集合:doris_fe_scheduled_tablet_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +| -------- | -------- | ------------------------------------------------------------ | +| value | 无 | Master FE节点正在调度的 tablet 数量。包括正在修复的副本和正在均衡的副本,该数值可以反映当前集群,正在迁移的 tablet 数量。如果长时间有值,说明集群不稳定 | + +#### 指标集合:doris_fe_txn_status + +可以观测各个状态下导入事务的数量,来判断是否有堆积 + +| 指标名称 | 指标单位 | 指标帮助描述 | +| --------- | -------- | ------------- | +| unknown | 无 | 未知 | +| prepare | 无 | 准备中 | +| committed | 无 | 已提交 | +| visible | 无 | 可见 | +| aborted | 无 | 已中止/已撤销 | \ No newline at end of file diff --git a/home/versioned_docs/version-v1.3.x/help/dynamic_tp.md b/home/versioned_docs/version-v1.3.x/help/dynamic_tp.md new file mode 100644 index 00000000000..7418e17cc1b --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/dynamic_tp.md @@ -0,0 +1,101 @@ +--- +id: dynamic_tp +title: Monitoring DynamicTp ThreadPool +sidebar_label: DynamicTp Monitor +keywords: [open source monitoring tool, open source dynamicTp monitoring tool, monitoring DynamicTp metrics] +--- + +> Collect and monitor the thread pool performance Metrics exposed by DynamicTp actuator. + +### PreRequisites + +1. Integration Using `DynamicTp` + +`DynamicTp` is a lightweight dynamic thread pool based on the configuration center of the Jvm language. It has built-in monitoring and alarm functions, which can be realized through SPI custom extensions. + +For integrated use, please refer to the document [Quick Start](https://dynamictp.cn/guide/use/quick-start.html) + +2. Open SpringBoot Actuator Endpoint to expose `DynamicTp` Metric interface + +```yaml +management: + endpoints: + web: + exposure: + include: '*' +``` +Test whether the access Metric interface `ip:port/actuator/dynamic-tp` has response json data as follows: + +```json +[ + { + "poolName": "commonExecutor", + "corePoolSize": 1, + "maximumPoolSize": 1, + "queueType": "LinkedBlockingQueue", + "queueCapacity": 2147483647, + "queueSize": 0, + "fair": false, + "queueRemainingCapacity": 2147483647, + "activeCount": 0, + "taskCount": 0, + "completedTaskCount": 0, + "largestPoolSize": 0, + "poolSize": 0, + "waitTaskCount": 0, + "rejectCount": 0, + "rejectHandlerName": null, + "dynamic": false, + "runTimeoutCount": 0, + "queueTimeoutCount": 0 + }, + { + "maxMemory": "4GB", + "totalMemory": "444MB", + "freeMemory": "250.34 MB", + "usableMemory": "3.81GB" + } +] +``` + +3. Add DynamicTp monitoring under HertzBeat middleware monitoring + + +### Configuration parameters + +| Parameter name | Parameter help description | +| ------------ |------------------------------------ ------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the application service, the default is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, note ⚠️Enable HTTPS, the default corresponding port needs to be changed to 443 | +| Base Path | Exposed interface path prefix, default /actuator | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: thread_pool + +| Metric Name | Metric Unit | Metric Help Description | +|---------|------|------------------------| +| pool_name | None | Thread pool name | +| core_pool_size | None | Number of core threads | +| maximum_pool_size | None | Maximum number of threads | +| queue_type | None | Task queue type | +| queue_capacity | MB | task queue capacity | +| queue_size | None | The current occupied size of the task queue | +| fair | None | Queue mode, SynchronousQueue will be used | +| queue_remaining_capacity | MB | task queue remaining size | +| active_count | None | Number of active threads | +| task_count | None | Total number of tasks | +| completed_task_count | None | Number of completed tasks | +| largest_pool_size | None | The largest number of threads in history | +| pool_size | none | current number of threads | +| wait_task_count | None | Number of tasks waiting to be executed | +| reject_count | None | Number of rejected tasks | +| reject_handler_name | None | Reject policy type | +| dynamic | None | Dynamic thread pool or not | +| run_timeout_count | None | Number of running timeout tasks | +| queue_timeout_count | None | Number of tasks waiting for timeout | diff --git a/home/versioned_docs/version-v1.3.x/help/fullsite.md b/home/versioned_docs/version-v1.3.x/help/fullsite.md new file mode 100644 index 00000000000..3246fa31d82 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/fullsite.md @@ -0,0 +1,34 @@ +--- +id: fullsite +title: Monitoring Full site +sidebar_label: Full site Monitor +keywords: [open source monitoring tool, open source website monitoring tool, monitoring sitemap metrics] +--- + +> Available or not to monitor all pages of the website. +> A website often has multiple pages provided by different services. We monitor the full site by collecting the SiteMap exposed by the website. +> Note⚠️ This monitoring requires your website to support SiteMap. We support SiteMap in XML and TXT formats. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| SiteMap | Relative path of website SiteMap address, eg:/sitemap.xml | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| url | none | URL path of web page | +| statusCode | none | Response HTTP status code for requesting the website | +| responseTime | ms | Website response time | +| errorMsg | none | Error message feedback after requesting the website | diff --git a/home/versioned_docs/version-v1.3.x/help/guide.md b/home/versioned_docs/version-v1.3.x/help/guide.md new file mode 100644 index 00000000000..306cfaadc78 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/guide.md @@ -0,0 +1,92 @@ +--- +id: guide +title: Help center +sidebar_label: Help center +--- + +> Hertzbeat - An open source, real-time monitoring tool with custom-monitor and agentLess. +> Help documents and auxiliary information during use + +## 🔬 Monitoring services + +> Regularly collect and monitor the performance Metrics exposed by end-to-end services, provide visual interfaces, and process data for alarm and other service scheduling. +> Planned monitoring type:application service, database, operating system, cloud native, open source middleware. + +### Application service monitoring + + 👉 [Website monitoring](website)
+ 👉 [HTTP API](api)
+ 👉 [PING Connectivity](ping)
+ 👉 [Port availability](port)
+ 👉 [Full site monitoring](fullsite)
+ 👉 [SSL Cert monitoring](ssl_cert)
+ 👉 [JVM monitoring](jvm)
+ 👉 [SpringBoot2.0](springboot2)
+ +### Database monitoring + + 👉 [MYSQL database monitoring](mysql)
+ 👉 [MariaDB database monitoring](mariadb)
+ 👉 [PostgreSQL database monitoring](postgresql)
+ 👉 [SqlServer database monitoring](sqlserver)
+ 👉 [Oracle database monitoring](oracle)
+ 👉 [DM database monitoring](dm)
+ 👉 [OpenGauss database monitoring](opengauss)
+ 👉 [IoTDB database monitoring](iotdb)
+ +### Operating system monitoring + + 👉 [Linux operating system monitoring](linux)
+ 👉 [Windows operating system monitoring](windows)
+ 👉 [Ubuntu operating system monitoring](ubuntu)
+ 👉 [Centos operating system monitoring](centos)
+ +### Middleware monitoring + + 👉 [Zookeeper](zookeeper)
+ 👉 [Kafka](kafka)
+ 👉 [Tomcat](tomcat)
+ 👉 [ShenYu](shenyu)
+ 👉 [DynamicTp](dynamic_tp)
+ 👉 [RabbitMQ](rabbitmq)
+ 👉 [ActiveMQ](activemq)
+ 👉 [Jetty](jetty)
+ +### CloudNative monitoring + + 👉 [Docker](docker)
+ 👉 [Kubernetes](kubernetes)
+ +*** + +## 💡 Alarm service + +> More liberal threshold alarm configuration (calculation expression), supports email, SMS, WebHook, DingDing, WeChat and FeiShu for alarm notification. +> The positioning of alarm service is to trigger the threshold accurately and timely, and the alarm notification can be reached in time. + +### Alarm center + +> The triggered alarm information center provides query and filtering of alarm deletion, alarm processing, mark unprocessed, alarm level status, etc. + +### Alarm configuration + +> The Metric threshold configuration provides the Metric threshold configuration in the form of expression, which can set the alarm level, trigger times, alarm notification template and whether it is enabled, correlation monitoring and other functions. + +More details see 👉 [threshold alarm](alert_threshold)
+   👉 [Threshold expression](alert_threshold_expr) + +### Alarm notification + +> After triggering the alarm information, in addition to being displayed in the alarm center list, it can also be notified to the designated recipient in a specified way (e-mail, wechat and FeiShu etc.) +> Alarm notification provides different types of notification methods, such as email recipient, enterprise wechat robot notification, DingDing robot notification, and FeiShu robot notification. +> After setting the receiver, you need to set the associated alarm notification strategy to configure which alarm information is sent to which receiver. + + + 👉 [Configure Email Notification](alert_email)
+ 👉 [Configure Discord Notification](alert_webhook)
+ 👉 [Configure Slack Notification](alert_webhook)
+ 👉 [Configure Telegram Notification](alert_webhook)
+ 👉 [Configure WebHook Notification](alert_webhook)
+ 👉 [Configure enterprise WeChat Robot Notification](alert_wework)
+ 👉 [Configure DingDing Robot Notification](alert_dingtalk)
+ 👉 [Configure FeiShu Robot Notification](alert_feishu)
diff --git a/home/versioned_docs/version-v1.3.x/help/hadoop.md b/home/versioned_docs/version-v1.3.x/help/hadoop.md new file mode 100644 index 00000000000..f0a458ecc9f --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/hadoop.md @@ -0,0 +1,91 @@ +--- +id: hadoop +title: Monitoring Hadoop +sidebar_label: Hadoop +keywords: [Open Source Monitoring System, Open Source Java Monitoring, Hadoop JVM Monitoring] +--- + +> Collect and monitor general performance metrics for the JVM virtual machine in Hadoop. + +**Protocol used: JMX** + +### Pre-monitoring steps + +>You need to enable JMX service in the Hadoop application before monitoring. HertzBeat uses the JMX protocol to collect performance metrics from Hadoop's JVM. + +### Steps to enable JMX protocol in the Hadoop application +Add JVM parameters when the application starts. ⚠️Note that you can customize the exposed port and external IP. + +- 1.Enter the hadoop-env.sh configuration file and enter the following command in the terminal: + +```shell +vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh +``` + +- 2.Add the following parameters, where `port` is the number of the custom-exposed port + +```shell +export HADOOP_OPTS= "$HADOOP_OPTS +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false " +``` +- 3.Save and exit, and then execute "start-all.sh" in the "$HADOOP_HOME/sbin" directory to restart the service. + + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + + diff --git a/home/versioned_docs/version-v1.3.x/help/iotdb.md b/home/versioned_docs/version-v1.3.x/help/iotdb.md new file mode 100644 index 00000000000..0e4dcad9912 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/iotdb.md @@ -0,0 +1,120 @@ +--- +id: iotdb +title: Monitoring Apache IoTDB Database +sidebar_label: IoTDB Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring IotDB database metrics] +--- + +> Monitor the running status of the Apache IoTDB Internet of Things time series database (JVM-related), memory task clusters and other related Metrics. + +## Operation before monitoring + +You need to enable the `metrics` function in IoTDB, which will provide interface data in the form of prometheus metrics. + +To enable the `metrics` function, refer to [Official Documentation](https://iotdb.apache.org/UserGuide/V0.13.x/Maintenance-Tools/Metric-Tool.html) + +The main steps are as follows: + +1. The metric collection is disabled by default, you need to modify the parameters in `conf/iotdb-metric.yml` first, then restart the server + +``` +# Whether to start the monitoring module, the default is false +enableMetric: true + +# Whether to enable operation delay statistics +enablePerformanceStat: false + +# Data provision method, externally provide metrics data through jmx and prometheus protocol, optional parameters: [JMX, PROMETHEUS, IOTDB], IOTDB is closed by default. +metricReporterList: + - JMX + - PROMETHEUS + +# The metric architecture used at the bottom layer, optional parameters: [MICROMETER, DROPWIZARD] +monitorType: MICROMETER + +# Initialize the level of the metric, optional parameters: [CORE, IMPORTANT, NORMAL, ALL] +metricLevel: IMPORTANT + +# Predefined metrics set, optional parameters: [JVM, LOGBACK, FILE, PROCESS, SYSTEM] +predefinedMetrics: + - JVM + - FILE +``` + +2. Restart IoTDB, open a browser or use curl to access http://servier_ip:9091/metrics, and you can see the metric data. + +3. Add the corresponding IoTDB monitoring in HertzBeat. + +### Configuration parameters + +| Parameter name | Parameter help description | +|--------|----------------------------------------- --------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the IoTDB Metric interface, which is 9091 by default. | +| Timeout | HTTP request query timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: cluster_node_status + +| Metric Name | Metric Unit | Metric Help Description | +| --------- |------|-------------------------| +| name | None | Node name IP | +| status | None | Node status, 1=online 2=offline | + +#### Metric collection: jvm_memory_committed_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|-------|------|------------------| +| area | none | heap memory or nonheap memory | +| id | none | memory block | +| value | MB | The memory size currently requested by the JVM | + +#### Metric collection: jvm_memory_used_bytes + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------| +| area | none | heap memory or nonheap memory | +| id | none | memory block | +| value | MB | JVM used memory size | + +#### Metric collection: jvm_threads_states_threads + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------| +| state | none | thread state | +| count | None | The number of threads corresponding to the thread state | + +#### Index collection: quantity business data + +| Metric Name | Metric Unit | Metric Help Description | +|--|------|----------------| +| name | None | Business name timeSeries/storageGroup/device/deviceUsingTemplate | +| type | none | type total/normal/template/template | +| value | None | The current timeSeries/storageGroup/device/The number of devices that have activated the template | + +#### Metric collection: cache_hit cache + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------------------ ----------------------| +| name | None | Cache name chunk/timeSeriesMeta/bloomFilter | +| value | % | chunk/timeSeriesMeta cache hit rate, bloomFilter interception rate | + +#### Metric collection: queue task queue + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------------------ ---------------------| +| name | None | Queue name compaction_inner/compaction_cross/flush | +| status | none | status running/waiting | +| value | None | Number of tasks at current time | + +#### Metric collection: thrift_connections + +| Metric Name | Metric Unit | Metric Help Description | +|-------|------|-------------| +| name | None | name | +| connection | none | thrift current connection number | diff --git a/home/versioned_docs/version-v1.3.x/help/issue.md b/home/versioned_docs/version-v1.3.x/help/issue.md new file mode 100644 index 00000000000..572f1383afc --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/issue.md @@ -0,0 +1,51 @@ +--- +id: issue +title: Common issues +sidebar_label: Common issues +--- + +### Monitoring common issues + +1. **Page feedback:monitor.host: Monitoring Host must be ipv4, ipv6 or domain name** +> As shown in the information, the entered monitoring Host must be ipv4, ipv6 or domain name, and cannot carry a protocol header, such as http + +2. **The website API and other monitoring feedback statusCode:403 or 401, but the opposite end service itself does not need authentication, and the direct access of the browser is OK** +> Please check whether it is blocked by the firewall. For example, BaoTa/aaPanel have set the blocking of `User-Agent=Apache-HttpClient` in the request header by default. If it is blocked, please delete this blocking rule. (user-agent has been simulated as a browser in the v1.0.beat5 version. This problem does not exist) + +3. Ping connectivity monitoring exception when installing hertzbeat for package deployment. +The hertzbeat installed and deployed by the installation package is not available for ping connectivity monitoring, but local direct ping is available 。 +> The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. +> When you install HertzBeat via DockerDocker root is enabled by default. No such problem. + +4. If the history chart on the monitoring page is not displayed,popup [please configure dependency service on TDengine time series database] +> As shown in the popup window,the premise of history chart display is that you need install and configure hertzbeat's dependency service - TDengine database. +> Installation and initialization this database refers to [TDengine Installation and Initialization](../start/tdengine-init). + +### Docker Deployment common issues + +1. **MYSQL, TDENGINE and HertzBeat are deployed on the same host by Docker,HertzBeat use localhost or 127.0.0.1 connect to the database but fail** +The problems lies in Docker container failed to visit and connect localhost port. Beacuse the docker default network mode is Bridge mode which can't access loacl machine through localhost. +> Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. +> Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + +2. **According to the process deploy,visit http://ip:1157/ no interface** +Please refer to the following points to troubleshoot issuess: +> one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. +> two:Check whether dependent service, IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. +> > three:`docker logs hertzbeat` Check whether the container log has errors. If you haven't solved the issue, report it to the communication group or community. + +3. **Log an error TDengine connection or insert SQL failed** +> one:Check whether database account and password configured is correct, the database is created. +> two:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. + +### Package Deployment common issues + +1. **According to the process deploy,visit http://ip:1157/ no interface** + Please refer to the following points to troubleshoot issuess: +> one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. +> two:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `hertzbeat/config/application.yml`. +> three: Check whether the running log has errors in `hertzbeat/logs/` directory. If you haven't solved the issue, report it to the communication group or community. + +2. **Log an error TDengine connection or insert SQL failed** +> one:Check whether database account and password configured is correct, the database is created. +> two:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. diff --git a/home/versioned_docs/version-v1.3.x/help/jetty.md b/home/versioned_docs/version-v1.3.x/help/jetty.md new file mode 100644 index 00000000000..3e5230aa9d0 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/jetty.md @@ -0,0 +1,96 @@ +--- +id: jetty +title: Monitoring Jetty Web Server +sidebar_label: Jetty Web Server +keywords: [open source monitoring tool, open source jetty web server monitoring tool, monitoring jetty metrics] +--- + +> Collect and monitor general performance metrics of Jetty application server + +**Usage protocol: JMX** + +### Pre-monitoring Operations + +> You need to enable the `JMX` service in the JVM application. HertzBeat uses the JMX protocol to collect metrics for the JVM. + +#### Jetty application server opens JMX protocol steps + +[Refer to official documentation](https://www.eclipse.org/jetty/documentation/jetty-10/operations-guide/index.html#og-jmx-remote) + +1. Start the JMX JMX-REMOTE module in Jetty + +```shell +java -jar $JETTY_HOME/start.jar --add-module=jmx +java -jar $JETTY_HOME/start.jar --add-module=jmx-remote +``` +Successful command execution will create `${JETTY_BASE}/start.d/jmx-remote.ini` configuration file + +2. Edit the `${JETTY_BASE}/start.d/jmx-remote.ini` configuration file to modify the JMX IP port and other parameters. + +**`localhost` needs to be modified to expose the IP** + +```text +## The host/address to bind the RMI server to. +# jetty.jmxremote.rmiserverhost=localhost + +## The port the RMI server listens to (0 means a random port is chosen). +# jetty.jmxremote.rmiserverport=1099 + +## The host/address to bind the RMI registry to. +# jetty.jmxremote.rmiregistryhost=localhost + +## The port the RMI registry listens to. +# jetty.jmxremote.rmiregistryport=1099 + +## The host name exported in the RMI stub. +-Djava.rmi.server.hostname=localhost +``` + +3. Restart Jetty Server. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + diff --git a/home/versioned_docs/version-v1.3.x/help/jvm.md b/home/versioned_docs/version-v1.3.x/help/jvm.md new file mode 100644 index 00000000000..95b1545fffc --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/jvm.md @@ -0,0 +1,79 @@ +--- +id: jvm +title: Monitoring JVM +sidebar_label: JVM Monitor +keywords: [open source monitoring tool, open source java jvm monitoring tool, monitoring jvm metrics] +--- + +> Collect and monitor the general performance Metrics of JVM. + +**Protocol Use:JMX** + +### JVM App Enable JMX Protocol + +1. Add JVM `VM options` When Start Server ⚠️ customIP + +Refer: https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote + +```shell +-Djava.rmi.server.hostname=customIP +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + + diff --git a/home/versioned_docs/version-v1.3.x/help/kafka.md b/home/versioned_docs/version-v1.3.x/help/kafka.md new file mode 100644 index 00000000000..067cabef0e9 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/kafka.md @@ -0,0 +1,96 @@ +--- +id: kafka +title: Monitor:Apache Kafka +sidebar_label: Apache Kafka +keywords: [open source monitoring tool, open source apache kafka monitoring tool, monitoring apache kafka metrics] +--- + +> Collect and monitor the general performance Metrics of Apache Kafka. + +**Protocol Use:JMX** + +### Kafka Enable JMX Protocol + +1. Install Kafka + +2. Modify `kafka-server-start.sh` + +Append content in kafka-server-start.sh, Attention Replace Port And IP. + +```shell +export JMX_PORT=9999; +export KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=ip地址 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"; + +# Already Has +exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@" +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:server_info + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| Version | | Kafka Version | +| StartTimeMs | ms | Start Time | +| CommitId | | Version Commit ID | + + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:active_controller_count + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| Value | | server active controller count | + + +#### Metrics Set:broker_partition_count + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| Value | | broker partition count | + +#### Metrics Set:broker_leader_count + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| Value | | broker leader count | + + +#### Metrics Set:broker_handler_avg_percent + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| EventType | | event type | +| RateUnit | | rate unit | +| Count | | percent count | +| OneMinuteRate | % | One Minute Rate | +| FiveMinuteRate | % | Five Minute Rate | +| MeanRate | % | Mean Rate | +| FifteenMinuteRate | % | Fifteen Minute Rate | + + + + diff --git a/home/versioned_docs/version-v1.3.x/help/kubernetes.md b/home/versioned_docs/version-v1.3.x/help/kubernetes.md new file mode 100644 index 00000000000..8e10896c6d1 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/kubernetes.md @@ -0,0 +1,94 @@ +--- +id: kubernetes +Title: Monitoring Kubernetes +sidebar_label: Kubernetes Monitor +keywords: [open source monitoring tool, open source kubernetes monitoring tool, monitoring kubernetes metrics] +--- + +> Collect and monitor the general performance metrics of Kubernetes. + +## Pre-monitoring operations + +If you want to monitor the information in 'Kubernetes', you need to obtain an authorization token that can access the API Server, so that the collection request can obtain the corresponding information. + +Refer to the steps to obtain token + +#### method one: + +1. Create a service account and bind the default cluster-admin administrator cluster role + +```kubectl create serviceaccount dashboard-admin -n kube-system``` + +2. User Authorization + +```shell +kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin +kubectl -n kube-system get secret | grep dashboard-admin | awk '{print $1}' +kubectl describe secret {secret} -n kube-system +``` + +#### method two: +```shell +kubectl create serviceaccount cluster-admin +kubectl create clusterrolebinding cluster-admin-manual --clusterrole=cluster-admin --serviceaccount=default:cluster-admin +kubectl create token --duration=1000h cluster-admin +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-------------|------------------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| APiServer port | K8s APiServer port, default 6443 | +| token | Authorize the Access Token | +| URL | The database connection URL is optional, if configured, the database name, user name and password parameters in the URL will override the parameter | configured above +| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric collection: nodes + +| Metric Name | metric unit | Metrics help describe | +| ------------------ | -------- |--------| +| node_name | None | Node name | +| is_ready | None | Node Status | +| capacity_cpu | None | CPU capacity | +| allocatable_cpu | None | CPU | allotted +| capacity_memory | None | Memory capacity | +| allocatable_memory | None | Memory | allocated +| creation_time | None | Node creation time | + +#### metric Collection: namespaces + +| Metric Name | metric unit | Metrics help describe | +| -------- | -------- |-------------| +| namespace | None | namespace name | +| status | None | Status | +| creation_time | None | Created | + +#### metric collection: pods + +| Metric Name | metric unit | Metrics help describe | +| ---------------- | -------- |----------------| +| pod | None | Pod name | +| namespace | None | The namespace | to which the pod belongs +| status | None | Pod status | +| restart | None | Number of restarts | +| host_ip | None | The IP address of the host is | +| pod_ip | None | pod ip | +| creation_time | None | Pod creation time | +| start_time | None | Pod startup time | + +#### metric Collection: services + +| Metric Name | metric unit | Metrics help describe | +| ---------------- |------|--------------------------------------------------------| +| service | None | Service Name | +| namespace | None | The namespace | to which the service belongs +| type | None | Service Type ClusterIP NodePort LoadBalancer ExternalName | +| cluster_ip | None | cluster ip | +| selector | None | tag selector matches | +| creation_time | None | Created | diff --git a/home/versioned_docs/version-v1.3.x/help/linux.md b/home/versioned_docs/version-v1.3.x/help/linux.md new file mode 100644 index 00000000000..05e3405ff6e --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/linux.md @@ -0,0 +1,82 @@ +--- +id: linux +title: Monitoring:Linux operating system monitoring +sidebar_label: Linux operating system +keywords: [open source monitoring tool, open source linux monitoring tool, monitoring linux metrics] +--- + +> Collect and monitor the general performance Metrics of Linux operating system. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Linux SSH. The default is 22 | +| Username | SSH connection user name, optional | +| Password | SSH connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| hostname | none | Host name | +| version | none | Operating system version | +| uptime | none | System running time | + +#### Metric set:cpu + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| info | none | CPU model | +| cores | cores | Number of CPU cores | +| interrupt | number | Number of CPU interrupts | +| load | none | Average load of CPU in the last 1/5/15 minutes | +| context_switch | number | Number of current context switches | +| usage | % | CPU usage | + + +#### Metric set:memory + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| total | Mb | Total memory capacity | +| used | Mb | User program memory | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory occupied by cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage | + +#### Metric set:disk + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| disk_num | blocks | Total number of disks | +| partition_num | partitions | Total number of partitions | +| block_write | blocks | Total number of blocks written to disk | +| block_read | blocks | Number of blocks read from disk | +| write_rate | iops | Rate of writing disk blocks per second | + +#### Metric set:interface + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| interface_name | none | Network card name | +| receive_bytes | byte | Inbound data traffic(bytes) | +| transmit_bytes | byte | Outbound data traffic(bytes) | + +#### Metric set:disk_free + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| filesystem | none | File system name | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | usage | +| mounted | none | Mount point directory | diff --git a/home/versioned_docs/version-v1.3.x/help/mariadb.md b/home/versioned_docs/version-v1.3.x/help/mariadb.md new file mode 100644 index 00000000000..e72668fe791 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/mariadb.md @@ -0,0 +1,57 @@ +--- +id: mariadb +title: Monitoring:MariaDB database monitoring +sidebar_label: MariaDB database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring mariadb database metrics] +--- + +> Collect and monitor the general performance Metrics of MariaDB database. Support MariaDB5+. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 3306 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| version | none | Database version | +| port | none | Database exposure service port | +| datadir | none | Database storage data disk address | +| max_connections | none | Database maximum connections | + +#### Metric set:status + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| threads_created | none | MariaDB created total connections | +| threads_connected | none | MariaDB connected connections | +| threads_cached | none | MariaDB current cached connections | +| threads_running | none | MariaDB current active connections | + + +#### Metric set:innodb + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| innodb_data_reads | none | innodb average number of reads from files per second | +| innodb_data_writes | none | innodb average number of writes from file per second | +| innodb_data_read | KB | innodb average amount of data read per second | +| innodb_data_written | KB | innodb average amount of data written per second | + + + diff --git a/home/versioned_docs/version-v1.3.x/help/mysql.md b/home/versioned_docs/version-v1.3.x/help/mysql.md new file mode 100644 index 00000000000..3f07be99380 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/mysql.md @@ -0,0 +1,57 @@ +--- +id: mysql +title: Monitoring:MySQL database monitoring +sidebar_label: MySQL database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring mysql database metrics] +--- + +> Collect and monitor the general performance Metrics of MySQL database. Support MYSQL5+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 3306 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| version | none | Database version | +| port | none | Database exposure service port | +| datadir | none | Database storage data disk address | +| max_connections | none | Database maximum connections | + +#### Metric set:status + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| threads_created | none | MySql created total connections | +| threads_connected | none | MySql connected connections | +| threads_cached | none | MySql current cached connections | +| threads_running | none | MySql current active connections | + + +#### Metric set:innodb + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| innodb_data_reads | none | innodb average number of reads from files per second | +| innodb_data_writes | none | innodb average number of writes from file per second | +| innodb_data_read | KB | innodb average amount of data read per second | +| innodb_data_written | KB | innodb average amount of data written per second | + + + diff --git a/home/versioned_docs/version-v1.3.x/help/opengauss.md b/home/versioned_docs/version-v1.3.x/help/opengauss.md new file mode 100644 index 00000000000..650882861e8 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/opengauss.md @@ -0,0 +1,58 @@ +--- +id: opengauss +title: OpenGauss Database Monitor +sidebar_label: OpenGauss Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring opengauss database metrics] +--- + +> Collect and monitor the general performance Metrics of OpenGauss database. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the PostgreSQL buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| running | connections | Number of current client connections | + + diff --git a/home/versioned_docs/version-v1.3.x/help/oracle.md b/home/versioned_docs/version-v1.3.x/help/oracle.md new file mode 100644 index 00000000000..5410e53decb --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/oracle.md @@ -0,0 +1,63 @@ +--- +id: oracle +title: Monitoring:ORACLE database monitoring +sidebar_label: ORACLE database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring oracle database metrics] +--- + +> Collect and monitor the general performance Metrics of ORACLE database. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 1521 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| database_version | none | Database version | +| database_type | none | Database type | +| hostname | none | Host name | +| instance_name | none | Database instance name | +| startup_time | none | Database start time | +| status | none | Database status | + +#### Metric set:tablespace + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| file_id | none | File ID | +| file_name | none | File name | +| tablespace_name | none | Table space name | +| status | none | Status | +| bytes | MB | Size | +| blocks | none | Number of blocks | + +#### Metric set:user_connect + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| username | none | Username | +| counts | number | Current connection counts | + +#### Metric set:performance + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| qps | QPS | I/O Requests per second | +| tps | TPS | User transaction per second | +| mbps | MBPS | I/O Megabytes per second | diff --git a/home/versioned_docs/version-v1.3.x/help/ping.md b/home/versioned_docs/version-v1.3.x/help/ping.md new file mode 100644 index 00000000000..fbf194a0abb --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/ping.md @@ -0,0 +1,28 @@ +--- +id: ping +title: Monitoring:PING connectivity +sidebar_label: PING connectivity +keywords: [open source monitoring tool, open source network monitoring tool, monitoring ping metrics] +--- + +> Ping the opposite end HOST address and judge its connectivity. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Ping timeout | Set the timeout when Ping does not respond to data, unit:ms, default: 3000ms | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| responseTime | ms | Website response time | + diff --git a/home/versioned_docs/version-v1.3.x/help/port.md b/home/versioned_docs/version-v1.3.x/help/port.md new file mode 100644 index 00000000000..ef5f659ad44 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/port.md @@ -0,0 +1,31 @@ +--- +id: port +title: Monitoring:port availability +sidebar_label: Port availability +keywords: [open source monitoring tool, open source port monitoring tool, monitoring port metrics] +--- + +> Judge whether the exposed port of the opposite end service is available, then judge whether the opposite end service is available, and collect Metrics such as response time for monitoring. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Connection timeout | Waiting timeout for port connection, unit:ms, default: 3000ms | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| responseTime | ms | Website response time | + + + diff --git a/home/versioned_docs/version-v1.3.x/help/postgresql.md b/home/versioned_docs/version-v1.3.x/help/postgresql.md new file mode 100644 index 00000000000..de14f9d62eb --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/postgresql.md @@ -0,0 +1,58 @@ +--- +id: postgresql +title: Monitoring:PostgreSQL database monitoring +sidebar_label: PostgreSQL database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring postgresql database metrics] +--- + +> Collect and monitor the general performance Metrics of PostgreSQL database. Support PostgreSQL 10+. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the PostgreSQL buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| running | connections | Number of current client connections | + + diff --git a/home/versioned_docs/version-v1.3.x/help/rabbitmq.md b/home/versioned_docs/version-v1.3.x/help/rabbitmq.md new file mode 100644 index 00000000000..fd066873691 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/rabbitmq.md @@ -0,0 +1,126 @@ +--- +id: rabbitmq +title: Monitoring RabbitMQ +sidebar_label: RabbitMQ Monitor +keywords: [open source monitoring tool, open source rabbitmq monitoring tool, monitoring rabbitmq metrics] +--- + +> Monitoring the running status of RabbitMQ message middleware, nodes, topics and other related metrics. + +### Pre-monitoring Operations + +> HertzBeat uses RabbitMQ Management's Rest Api to collect RabbitMQ indicator data. +> Therefore, you need to enable the Management plug-in in your RabbitMQ environment + +1. Open the Management plugin, or use the self-opening version + +```shell +rabbitmq-plugins enable rabbitmq_management +``` + +2. Access http://ip:15672/ with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. + +3. Just add the corresponding RabbitMQ monitoring in HertzBeat, the parameters use the IP port of Management, and the default account password. + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The HTTP port provided by RabbitMQ Management, the default is 15672. | +| Username | Username used for interface Basic authentication | +| Password | The password used for interface Basic authentication | +| Timeout | HTTP request query timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect Metrics + +#### Metrics Group: overview + +| Metric Name | Metric Unit | Metric Description | +|--------------------|-------------|------------------------------------| +| product_version | None | Product Version | +| product_name | None | Product name | +| rabbitmq_version | none | rabbitmq version | +| management_version | None | rabbitmq management plugin version | +| erlang_version | None | erlang version | +| cluster_name | None | Cluster name | +| rates_mode | None | rates mode | + +#### Metrics Group: object_totals + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-----------------------------| +| channels | none | total number of channels | +| connections | none | total number of connections | +| consumers | none | total number of consumers | +| exchanges | none | total number of exchanges | +| queues | none | total number of queues | + +#### Metrics Group: nodes + +| Metric Name | Metric Unit | Metric Description | +|--------------------|-------------|-----------------------------------------------------------| +| name | None | The node name | +| type | None | The node type | +| running | None | Running state | +| os_pid | None | Pid in OS | +| mem_limit | MB | Memory usage high watermark | +| mem_used | MB | Total amount of memory used | +| fd_total | None | File descriptors available | +| fd_used | None | File descriptors used | +| sockets_total | None | Sockets available | +| sockets_used | None | Sockets used | +| proc_total | None | Erlang process limit | +| proc_used | None | Erlang processes used | +| disk_free_limit | GB | Free disk space low watermark | +| disk_free | GB | Free disk space | +| gc_num | None | GC runs | +| gc_bytes_reclaimed | MB | Bytes reclaimed by GC | +| context_switches | None | Context_switches num | +| io_read_count | None | Total number of read operations | +| io_read_bytes | KB | Total data size read into disk | +| io_read_avg_time | ms | Average read operation time in milliseconds | +| io_write_count | None | Total disk write operations | +| io_write_bytes | KB | Total amount of data written to disk | +| io_write_avg_time | ms | Average time of each disk write operation in milliseconds | +| io_seek_count | None | total seek operation | +| io_seek_avg_time | ms | average seek operation time, in milliseconds | +| io_sync_count | None | total amount of fsync operations | +| io_sync_avg_time | ms | Average time of fsync operation in milliseconds | +| connection_created | None | connection created num | +| connection_closed | None | connection closed num | +| channel_created | None | channel created num | +| channel_closed | None | channel closed num | +| queue_declared | None | queue declared num | +| queue_created | None | queue created num | +| queue_deleted | None | queue deleted num | +| connection_closed | None | connection closed num | + + +#### Metrics Group: queues + +| Metric Name | Metric Unit | Metric Description | +|------------------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------| +| name | None | The name of the queue with non-ASCII characters escaped as in C. | +| node | None | The queue on the node name | +| state | None | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| type | None | Queue type, one of: quorum, stream, classic. | +| vhost | None | vhost path | +| auto_delete | None | Whether the queue will be deleted automatically when no longer used | +| policy | None | Effective policy name for the queue. | +| consumers | None | Number of consumers. | +| memory | B | Bytes of memory allocated by the runtime for the queue, including stack, heap and internal structures. | +| messages_ready | None | Number of messages ready to be delivered to clients | +| messages_unacknowledged | None | Number of messages delivered to clients but not yet acknowledged | +| messages | None | Sum of ready and unacknowledged messages (queue depth) | +| messages_ready_ram | None | Number of messages from messages_ready which are resident in ram | +| messages_persistent | None | Total number of persistent messages in the queue (will always be 0 for transient queues) | +| message_bytes | B | Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead | +| message_bytes_ready | B | Like message_bytes but counting only those messages ready to be delivered to clients | +| message_bytes_unacknowledged | B | Like message_bytes but counting only those messages delivered to clients but not yet acknowledged | +| message_bytes_ram | B | Like message_bytes but counting only those messages which are currently held in RAM | +| message_bytes_persistent | B | Like message_bytes but counting only those messages which are persistent | diff --git a/home/versioned_docs/version-v1.3.x/help/redis.md b/home/versioned_docs/version-v1.3.x/help/redis.md new file mode 100644 index 00000000000..ca36748e255 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/redis.md @@ -0,0 +1,245 @@ +--- +id: redis +title: 监控:REDIS数据库监控 +sidebar_label: REDIS数据库 +keywords: [开源监控系统, 开源数据库监控, Redis数据库监控] +--- + +> 对REDIS数据库的通用性能指标进行采集监控。支持REDIS1.0+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | redis对外提供的端口,默认为6379,sentinel节点默认26379 | +| 超时时间 | 设置redis info 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| redis_version | 无 | Redis 服务器版本 | +| redis_git_sha1 | 无 | Git SHA1 | +| redis_git_dirty | 无 | Git dirty flag | +| redis_build_id | 无 | redis 构建的id | +| redis_mode | 无 | redis模式(包括standalone, sentinel, cluster) | +| os | 无 | Redis 服务器的宿主操作系统 | +| arch_bits | 无 | 架构(32 或 64 位) | +| multiplexing_api | 无 | Redis使用的事件循环机制| +| atomicvar_api | 无 | Redis使用的原子 API | +| gcc_version | 无 | 用于编译Redis服务器的GCC编译器版本| +| process_id | 无 | 服务器进程的PID | +| process_supervised | 无 | 受监管系统(包括:upstart、systemd、unknown、no) | +| run_id | 无 | 标识Redis服务器的随机值(由Sentinel和Cluster使用) | +| tcp_port | 无 | TCP/IP侦听端口 | +| server_time_usec | 无 | 微秒级精度的基于时间的系统时间| +| uptime_in_seconds | 无 | 自Redis服务器启动后的秒数 | +| uptime_in_days | 无 | 自Redis服务器启动后的天数 | +| hz | 无 | 服务器的当前频率设置,redis相关定时任务的执行频率(如清除过期key,关闭超时客户端) | +| configured_hz | 无 | 服务器配置的频率设置 | +| lru_clock | 无 | 时钟每分钟递增,用于LRU管理| +| executable | 无 | 服务器可执行文件的路径 | +| config_file | 无 | 配置文件的路径 | +| io_threads_active | 无 | 指示I/O线程是否处于活动状态的标志| +| shutdown_in_milliseconds | 无 | 复制副本在完成关闭序列之前赶上复制的最长剩余时间。此字段仅在停机期间出现。| + + +#### 指标集合:clients + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| connected_clients | 无 | 客户端连接数(不包括来自副本的连接) | +| cluster_connections | 无 | 群集总线使用的套接字数量的近似值| +| maxclients | 无 | maxclients配置指令的值。这是connected_clients、connected_slave和cluster_connections之和的上限。| +| client_recent_max_input_buffer | byte | 当前客户端连接中最大的输入缓冲区 | +| client_recent_max_output_buffer | byte | 当前客户端连接中最大的输出缓冲区 | +| blocked_clients | 无 | 阻塞呼叫挂起的客户端数(BLPOP、BRPOP、BRPOPLPUSH、BLMOVE、BZPOPMIN、BZPOPMAX) | +| tracking_clients | 无 | 正在跟踪的客户端数(CLIENT TRACKING)| +| clients_in_timeout_table | 无 | 客户端超时表中的客户端数 | + + +#### 指标集合:memory + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| used_memory | byte | Redis使用其分配器(标准libc、jemalloc或tcmalloc等替代分配器)分配的总字节数 | +| used_memory_human | GB/MB/KB | 上一个值的人类可读表示 | +| used_memory_rss | byte | 操作系统看到的Redis分配的字节数(也称为驻留集大小)。这是top(1)和ps(1)等工具报告的数字| +| used_memory_rss_human | GB/MB/KB | 上一个值的人类可读值| +| used_memory_peak | byte | Redis消耗的峰值内存(字节)| +| used_memory_peak_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak_perc | 无 | used_memory_peak 与used_memory百分比 | +| used_memory_overhead | byte | 服务器分配用于管理其内部数据结构的所有开销的字节总和| +| used_memory_startup | byte | Redis在启动时消耗的初始内存量(字节)| +| used_memory_dataset | byte | 数据集的字节大小(used_memory - used_memory_overhead) | +| used_memory_dataset_perc | 无 | 已用内存数据集占净内存使用量的百分比(used_memory_dataset / (used_memory - used_memory_startup)) | +| allocator_allocated | byte| 从分配器分配的总字节数,包括内部碎片。通常与使用的内存相同| +| allocator_active | byte | 分配器活动页中的总字节数,包括外部碎片| +| allocator_resident | byte | 分配器中驻留的总字节数(RSS),包括可释放到操作系统的页面(通过MEMORY PURGE或仅等待) | +| total_system_memory | byte | Redis主机的内存总量 | +| total_system_memory_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_lua | byte | Lua引擎使用的字节数 | +| used_memory_lua_human | KB | 上一个值的人类可读值 | +| used_memory_scripts | byte | 缓存Lua脚本使用的字节数 | +| used_memory_scripts_human | GB/MB/KB | 上一值的人类可读值 | +| number_of_cached_scripts | 无 |缓存的lua脚本数量 | +| maxmemory | byte | maxmemory配置指令的值| +| maxmemory_human | GB/MB/KB | 上一个值的人类可读值 | +| maxmemory_policy | 无 | 当达到maxmemory时的淘汰策略 | +| allocator_frag_ratio | 无 | allocator_active 和 allocator_allocated之间的比率这是真实(外部)碎片度量(不是mem_fragmentation_ratio) | +| allocator_frag_bytes | byte | allocator_active 和 allocator_allocated 之间的差值。 | +| allocator_rss_ratio | | 从操作系统角度看, 内存分配器碎片比例 | +| allocator_rss_bytes | byte | allocator_resident 和 allocator_active之间的差值 | +| rss_overhead_ratio | 无 | used_memory_rss和allocator_resident之间的比率,这包括与分配器或堆无关的RSS开销 | +| rss_overhead_bytes | byte | used_memory_rss和allocator_resident之间的增量 | +| mem_fragmentation_ratio | 无 | used_memory_rss和used_memory之间的比率,注意,这不仅包括碎片,还包括其他进程开销(请参阅allocator_* metrics),以及代码、共享库、堆栈等开销。 | +| mem_fragmentation_bytes | byte | used_memory_rss和used_memory之间的增量。注意,当总碎片字节较低(几兆字节)时,高比率(例如1.5及以上)不是问题的表现 | +| mem_not_counted_for_evict | byte | 不应驱逐的内存大小,以字节为单位。这基本上是瞬时复制和AOF缓冲区。| +| mem_replication_backlog | byte | 复制backlog的内存大小, 以字节为单位 | +| mem_clients_slaves | 无 | 副本客户端使用的内存-从Redis 7.0开始,副本缓冲区与复制积压工作共享内存,因此当副本不触发内存使用增加时,此字段可以显示0。 | +| mem_clients_normal | 无 | 普通客户端使用的内存 | +| mem_aof_buffer | 无 | 用于AOF和AOF重写缓冲区的临时大小 | +| mem_allocator | 无 | 内存分配器,在编译时选择。 | +| active_defrag_running | 无 | 启用activedefrag时,这表示碎片整理当前是否处于活动状态,以及它打算使用的CPU百分比。 | +| lazyfree_pending_objects | 无 | 等待释放的对象数(使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHOLL)| +| lazyfreed_objects | 无 | 已延迟释放的对象数。| + + +#### 指标集合:persistence + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| loading | 无 | 服务器是否正在进行持久化 0 - 否 1 -是| +| current_cow_size | byte | 运行子fork时写入时复制内存的大小(以字节为单位) | +| current_cow_size_age | second | current_cow_size值的年龄(以秒为单位) | +| current_fork_perc | 无 | 当前fork进程的百分比,对于AOF和RDB的fork,它是current_save_keys_processed占current_save_keys_total的百分比| +| current_save_keys_processed | 无 | 当前保存操作处理的key的数量 | +| current_save_keys_total | 无 | 当前保存操作开始时的key的数量 | +| rdb_changes_since_last_save | 无 | 离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化 | +| rdb_bgsave_in_progress | 无 | 服务器是否正在创建rdb文件 0 - 否 1 - 是 | +| rdb_last_save_time | second | 最近一次创建rdb文件的时间戳,单位秒 | +| rdb_last_bgsave_status | 无 | 最近一次rdb持久化是否成功 ok 成功| +| rdb_last_bgsave_time_sec | second | 最近一次成功生成rdb文件耗时秒数 | +| rdb_current_bgsave_time_sec | 无 | 如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数 | +| rdb_last_cow_size | 无 | RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| aof_enabled | 无 | 是否开启了AOF 0 - 否 1 - 是 | +| aof_rewrite_in_progress | 无 | 标识aof的rewrite操作是否在进行中 0 - 否 1- 是 | +| aof_rewrite_scheduled | 无 | rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite| +| aof_last_rewrite_time_sec | 无 | 最近一次aof rewrite耗费的时长 | +| aof_current_rewrite_time_sec | second | 如果rewrite操作正在进行,则记录所使用的时间,单位秒 | +| aof_last_bgrewrite_status | 无 | 上次 bgrewrite aof 操作的状态 ok 成功 | +| aof_last_write_status | 无 | 上次aof写入状态 | +| aof_last_cow_size | 无 | AOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| module_fork_in_progress | 无 | 指示fork模块正在进行的标志 | +| module_fork_last_cow_size | 无 | 上一次fork操作期间写入时复制内存的字节大小 | + + +#### 指标集合:stats + +| 指标名称 |指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| total_connections_received | 无 | 服务器接受的连接总数 | +| total_commands_processed | 无 | 服务器处理的命令总数 | +| instantaneous_ops_per_sec | 无 | 每秒处理的命令数 | +| total_net_input_bytes | byte | 从网络读取的字节总数 | +| total_net_output_bytes | byte | 写入网络的总字节数 | +| instantaneous_input_kbps | KB/S | 网络每秒的读取速率(KB/秒) | +| instantaneous_output_kbps | KB/S | 网络每秒的写入速率(KB/秒) | +| rejected_connections | 无 | 由于maxclients限制而拒绝的连接数| +| sync_full | 无 | 具有副本的完整重新同步数 | +| sync_partial_ok | 无 | 接受的部分重新同步请求数 | +| sync_partial_err | 无 | 被拒绝的部分重新同步请求数 | +| expired_keys | 无 | 过期的key总数 | +| expired_stale_perc | 无 | 可能过期key的百分比 | +| expired_time_cap_reached_count | 无 | 活动过期周期提前停止的次数 | +| expire_cycle_cpu_milliseconds | 无 | 活动到期周期所花费的累计时间 | +| evicted_keys | 无 | 由于最大内存限制而收回key的数量 | +| keyspace_hits | 无 | 在主dict 中成功查找key的次数 | +| keyspace_misses | 无 | 在主dict 中未查到key的次数 | +| pubsub_channels | 无 | 客户端使用 pub/sub 频道的总和 | +| pubsub_patterns | 无 | 客户端使用 pub/sub 模式的全局数量 | +| latest_fork_usec | 无 | 最后一次fork操作的持续时间(以微秒为单位) | +| total_forks | 无 | 自服务器启动以来的fork操作总数| +| migrate_cached_sockets | 无 | 为MIGRATE目的打开的socket数量 | +| slave_expires_tracked_keys | 无 | trace key 到期的数量(仅适用于可写副本) | +| active_defrag_hits | 无 | 主动碎片整理命中次数 | +| active_defrag_misses | 无 | 主动碎片整理未命中次数 | +| active_defrag_key_hits | 无 | 主动碎片整理key命中次数 | +| active_defrag_key_misses | 无 | 主动碎片整理key未命中次数| +| tracking_total_keys | 无 | key 查询的总数| +| tracking_total_items | 无 | item查询的总数 | +| tracking_total_prefixes | 无 | 前缀查询的总数 | +| unexpected_error_replies | 无 | 意外错误回复数,即AOF加载或复制中的错误类型 | +| total_error_replies | 无 | 发出的错误回复总数,即被拒绝的命令(命令执行之前的错误)和失败的命令(在命令执行过程中的错误)的总和 | +| dump_payload_sanitizations | 无 | 参考sanitize-dump-payload配置 | +| total_reads_processed | 无 | 正在读取的请求数 | +| total_writes_processed | 无 | 正在写入的请求数 | +| io_threaded_reads_processed | 无 | 正在读取的线程数| +| io_threaded_writes_processed | 无 | 正在写入的线程数 | + + +#### 指标集合:replication + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| role | 无 | 节点角色 master 主节点 slave 从节点 | +| connected_slaves | 无 | 连接的从节点数 | +| master_failover_state | 无 | 正在进行的故障切换的状态(如果有) | +| master_replid | 无 | 实例启动的随机字符串| +| master_replid2 | 无 | 故障切换后用于PSYNC的辅助复制ID| +| master_repl_offset | 无 | 主从同步偏移量 | +| second_repl_offset | 无 | 接受从服务ID的最大偏移量| +| repl_backlog_active | 无 | 表示从服务挤压处于活动状态 | +| repl_backlog_size | byte | 从服务积压缓冲区的总大小(字节) | +| repl_backlog_first_byte_offset | 无 | 复制缓冲区里偏移量的大小 | +| repl_backlog_histlen | 无 | 此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| used_cpu_sys | 无 | Redis主进程在内核态所占用CPU时钟总和| +| used_cpu_user | 无 | Redis主进程在用户态所占用CPU时钟总和| +| used_cpu_sys_children | 无 | Redis子进程在内核态所占用CPU时钟总和| +| used_cpu_user_children | 无 | Redis子进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_main_thread | 无 | Redis服务器主线程消耗的内核CPU| +| used_cpu_user_main_thread | 无 | Redis服务器主线程消耗的用户CPU | + +#### 指标集合:errorstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| errorstat_ERR | 无 | 错误累计出现的次数 | +| errorstat_MISCONF | 无 | | + +#### 指标集合:cluster + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| cluster_enabled | 无 | 集群是否开启 0 - 否 1 - 是| + + +#### 指标集合:commandstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +| ----------- | ----------- | ----------- | +| cmdstat_set | 无 | set命令的统计信息,calls: 累计调用该命令的次数;usec: 调用该命令的累计耗时,单位微秒;usec_per_call: 调用该命令的平均耗时;rejected_call: 拒绝执行的次数;failed_calls: 调用失败的次数| +| cmdstat_get | 无 | get命令的统计信息 | +| cmdstat_setnx | 无 | setnx命令的统计信息 | +| cmdstat_hset | 无 | hset命令的统计信息 | +| cmdstat_hget | 无 | hget命令的统计信息 | +| cmdstat_lpush | 无 | lpush命令的统计信息 | +| cmdstat_rpush | 无 | rpush命令的统计信息 | +| cmdstat_lpop | 无 | lpop命令的统计信息 | +| cmdstat_rpop | 无 | rpop命令的统计信息 | +| cmdstat_llen | 无 | llen命令的统计信息 | diff --git a/home/versioned_docs/version-v1.3.x/help/shenyu.md b/home/versioned_docs/version-v1.3.x/help/shenyu.md new file mode 100644 index 00000000000..01523769c78 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/shenyu.md @@ -0,0 +1,131 @@ +--- +id: shenyu +title: Monitoring:Apache ShenYu API Gateway +sidebar_label: Apache ShenYu +keywords: [open source monitoring tool, open source apache shenyu monitoring tool, monitoring apache shenyu metrics] +--- + +> monitor ShenYu running status(JVM-related), include request response and other related metrics. + +## Pre-monitoring operations + +Enable `metrics` plugin in ShenYu, expose it's prometheus metrics endpoint。 + +Refer [ShenYu Document](https://shenyu.apache.org/docs/plugin-center/observability/metrics-plugin) + +Two Steps Mainly: + +1. add metrics plugin dependency in gateway's pom.xml. + +```xml + + org.apache.shenyu + shenyu-spring-boot-starter-plugin-metrics + ${project.version} + +``` + +2. modify this config in shenyu gateway yaml. + +```yaml +shenyu: + metrics: + enabled: false #false is close, true is open + name : prometheus + host: 127.0.0.1 + port: 8090 + jmxConfig: + props: + jvm_enabled: true #enable jvm monitoring +``` + +Finally, restart the access gateway metrics endpoint `http://ip:8090` to respond to prometheus format data. + +### Configuration parameters + +| Parameter name | Parameter help description | +|--------|----------------------------------------- --------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the gateway Metric interface, the default is 8090. | +| Timeout | HTTP request response timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Index collection: shenyu_request_total + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-------------------| +| value | None | Collect all requests from ShenYu gateway | + +#### Metric collection: shenyu_request_throw_created + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-------------------| +| value | None | Collect the number of abnormal requests from ShenYu Gateway | + +#### Metric collection: process_cpu_seconds_total + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------| +| value | none | total user and system CPU elapsed seconds | + +#### Metric collection: process_open_fds + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-------------| +| value | none | number of open file descriptors | + +#### Metric collection: process_max_fds + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|----------------| +| value | none | maximum number of open file descriptors | + +#### Metric collection: jvm_info + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-----------| +| runtime | none | JVM version information | +| vendor | none | JVM version information | +| version | None | JVM version information | + +#### Metric collection: jvm_memory_bytes_used + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------| +| area | None | JVM memory area | +| value | MB | used size of the given JVM memory region | + +#### Metric collection: jvm_memory_pool_bytes_used + +| Metric Name | Metric Unit | Metric Help Description | +|--------|------|-----------------| +| pool | None | JVM memory pool | +| value | MB | used size of the given JVM memory pool | + +#### Metric collection: jvm_memory_pool_bytes_committed + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------| +| pool | None | JVM memory pool | +| value | MB | The committed size of the given JVM memory pool | + +#### Metric collection: jvm_memory_pool_bytes_max + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------| ----------- | +| pool | None | JVM memory pool | +| value | MB | The maximum size of the memory pool for the given JVM | + +#### Metric collection: jvm_threads_state + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-------------| +| state | none | thread state | +| value | None | The number of threads corresponding to the thread state | + + diff --git a/home/versioned_docs/version-v1.3.x/help/spark.md b/home/versioned_docs/version-v1.3.x/help/spark.md new file mode 100644 index 00000000000..3d4b44828ea --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/spark.md @@ -0,0 +1,128 @@ +--- +id: spark +title: Monitoring Spark +sidebar_label: Spark Monitor +keywords: [open source monitoring tool, open source java spark monitoring tool, monitoring spark metrics] +--- + +> Collect and monitor the general performance Metrics of Spark. + +**Protocol Use:JMX** + +### Spark App Enable JMX Protocol + +1. Add Spark `VM options` When Start Server ⚠️ customIP + +Refer: https://spark.apache.org/docs/latest/spark-standalone.html + + +**监控配置spark的监控主要分为Master、Worker、driver、executor监控。Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要针对某一个app来进行监控。** +**如果都要监控,需要根据以下步骤来配置** + + + +## 第一步 + +**修改$SPARK_HOME/conf/spark-env.sh,添加以下语句:** + +```shell +# JMX Port to use +SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" + +# export SPARK_DAEMON_JAVA_OPTS="$SPARK_DAEMON_JAVA_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " +export SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8712 " +``` + +语句中有$JMX_PORT,这个的值可以自定义,也可以获取一个随机数作为端口号。 +如果端口自定义为一个具体的值,而 spark 的 Master 和其中之一的 Worker 在同一台机器上,会出现端口冲突的情况。 + + + +## 第二步 + +**vim $SPARK_HOME/conf/metrics.properties 添加如下内容** + +```shell +*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink +master.source.jvm.class=org.apache.spark.metrics.source.JvmSource +worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource +driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource +executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource +``` + + + + + +## 第三步 + +**vim $SPARK_HOME/conf/spark-defaults.conf,添加以下项为driver和executor设置监控端口,在有程序运行的情况下,此端口会被打开。** + +```shell +spark.metrics.conf /opt/bigdata/spark/conf/metrics.properties +spark.driver.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.mana +gement.jmxremote.port=8712 + +spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana +gement.jmxremote.port=8711 +``` + +在spark的Master和Worker正常运行以及spark-submit提交了一个程序的情况下,可以从linux中查询出端口号码。 + + + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + + diff --git a/home/versioned_docs/version-v1.3.x/help/springboot2.md b/home/versioned_docs/version-v1.3.x/help/springboot2.md new file mode 100644 index 00000000000..c55f4fcb14f --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/springboot2.md @@ -0,0 +1,76 @@ +--- +id: springboot2 +Title: Monitoring SpringBoot 2.0 +sidebar_label: SpringBoot 2.0 +keywords: [open source monitoring tool, open source springboot2 monitoring tool, monitoring springboot2 metrics] +--- + +> Collect and monitor the general performance metrics exposed by the SpringBoot 2.0 actuator. + +## Pre-monitoring operations + +If you want to monitor information in 'SpringBoot' with this monitoring type, you need to integrate your SpringBoot application and enable the SpringBoot Actuator. + +**1、Add POM .XML dependencies:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` +**2. Modify the YML configuration exposure metric interface:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: on +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +| ------------ |------------------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| Port | The default port provided by the database is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | +| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric Collection: Health + +| Metric Name | metric unit | Metrics help describe | +| ------------------ | -------- |--------------------------------| +| status | None | Service health: UP, Down | + +#### metric Collection: enviroment + +| Metric Name | metric unit | Metrics help describe | +|---------| -------- |----------------------------| +| profile | None | The application runs profile: prod, dev, test | +| port | None | Apply the exposed port | +| os | None | Run the operating system | +| os_arch | None | Run the operating system architecture | +| jdk_vendor | None | jdk vendor | +| jvm_version | None | jvm version | + +#### metric Collection: threads + +| Metric Name | metric unit | Metrics help describe | +| ---------------- |------|--------------------| +| state | None | Thread status | +| number | None | This thread state corresponds to | number of threads + +#### metric Collection: memory_used + +| Metric Name | metric unit | Metrics help describe | +|---------|------|------------| +| space | None | Memory space name | +| mem_used | MB | This space occupies a memory size of | diff --git a/home/versioned_docs/version-v1.3.x/help/sqlserver.md b/home/versioned_docs/version-v1.3.x/help/sqlserver.md new file mode 100644 index 00000000000..cc12abf0d7e --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/sqlserver.md @@ -0,0 +1,76 @@ +--- +id: sqlserver +title: Monitoring:SqlServer database monitoring +sidebar_label: SqlServer database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring sqlserver database metrics] +--- + +> Collect and monitor the general performance Metrics of SqlServer database. Support SqlServer 2017+. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 1433 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| machine_name | none | Windows computer name running the server instance | +| server_name | none | Server and instance information SQL Server associated with Windows instance | +| version | none | Version of the instance,SQL Server,format is "major.minor.build.revision" | +| edition | none | The product SQL server version of the installed instance | +| start_time | none | Database start time | + +#### Metric set:performance_counters + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| database_pages | none | Database pages, Number of pages obtained (buffer pool) | +| target_pages | none | Target pages, The desired number of pages that the buffer pool must have | +| page_life_expectancy | s | Page life expectancy. The time that data pages stay in the buffer pool. This time is generally greater than 300 | +| buffer_cache_hit_ratio | % | Buffer cache hit ratio, Database buffer pool cache hit rate. The probability that the requested data is found in the buffer pool is generally greater than 80%, otherwise the buffer pool capacity may be too small | +| checkpoint_pages_sec | none | Checkpoint pages/sec, The number of dirty pages written to the disk by the checkpoint per second. If the data is too high, it indicates that there is a lack of memory capacity | +| page_reads_sec | none | Page reads/sec, Number of pages read per second in the cache pool | +| page_writes_sec | none | Page writes/sec, Number of pages written per second in the cache pool | + + +#### Metric set:connection + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| user_connection | none | Number of connected sessions | + + +### Common Problem + +1. SSL connection problem fixed + +jdk version: jdk11 +Description of the problem: SQL Server 2019 uses the SA user connection to report an error +Error message: +```text +The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:xxxxxxxxxxxxxxxxxxxx +``` +Screenshot of the problem: +![issue](https://user-images.githubusercontent.com/38679717/206621658-c0741d48-673d-45ff-9a3b-47d113064c12.png) + +solution: +Use advanced settings when adding `SqlServer` monitoring, customize JDBC URL, add parameter configuration after the spliced jdbc url, ```;encrypt=true;trustServerCertificate=true;```This parameter true means unconditionally trust the server returned any root certificate. + +Example: ```jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo;encrypt=true;trustServerCertificate=true;``` + +Reference document: [microsoft pkix-path-building-failed-unable-to-find-valid-certification](https://techcommunity.microsoft.com/t5/azure-database-support-blog/pkix-path-building- failed-unable-to-find-valid-certification/ba-p/2591304) diff --git a/home/versioned_docs/version-v1.3.x/help/ssl_cert.md b/home/versioned_docs/version-v1.3.x/help/ssl_cert.md new file mode 100644 index 00000000000..4d808f47dca --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/ssl_cert.md @@ -0,0 +1,33 @@ +--- +id: ssl_cert +title: Monitoring SSL Certificate +sidebar_label: SSL Monitor +keywords: [open source monitoring tool, open source ssl cert monitoring tool, monitoring website ssl metrics] +--- + +> Monitor the website's SSL certificate expiration time, response time and other Metrics + +### Configuration parameters + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the website, https generally defaults to 443. | +| Relative path | The suffix path of the website address except the IP port, for example, `www.tancloud.cn/console` The relative path of the website is `/console`. | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: certificate + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|----------| +| subject | none | certificate name | +| expired | no | expired or not | +| start_time | None | Validity start time | +| start_timestamp | ms millisecond | Validity start timestamp | +| end_time | None | Expiration time | +| end_timestamp | ms milliseconds | expiration timestamp | diff --git a/home/versioned_docs/version-v1.3.x/help/tomcat.md b/home/versioned_docs/version-v1.3.x/help/tomcat.md new file mode 100644 index 00000000000..8b35808ffc8 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/tomcat.md @@ -0,0 +1,75 @@ +--- +id: tomcat +title: Monitor:Apache Tomcat +sidebar_label: Apache Tomcat +keywords: [open source monitoring tool, open source tomcat monitoring tool, monitoring tomcat metrics] +--- + +> Collect and monitor the general performance Metrics of Apache Tomcat. + +**Protocol Use:JMX** + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + +### Tomcat Enable JMX Protocol + +1. After building tomcat, enter the bin directory under tomcat and modify the catalina.sh file + +2. vim catalina.sh Attention⚠️ Replace Hostname And Port + +```aidl +CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.1.1.52 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +``` + diff --git a/home/versioned_docs/version-v1.3.x/help/ubuntu.md b/home/versioned_docs/version-v1.3.x/help/ubuntu.md new file mode 100644 index 00000000000..e7d368c9ea3 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/ubuntu.md @@ -0,0 +1,82 @@ +--- +id: ubuntu +title: Monitoring:Ubuntu operating system monitoring +sidebar_label: Ubuntu operating system +keywords: [open source monitoring tool, open source linux ubuntu monitoring tool, monitoring ubuntu metrics] +--- + +> Collect and monitor the general performance Metrics of Ubuntu operating system. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Linux SSH. The default is 22 | +| Username | SSH connection user name, optional | +| Password | SSH connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| hostname | none | Host name | +| version | none | Operating system version | +| uptime | none | System running time | + +#### Metric set:cpu + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| info | none | CPU model | +| cores | cores | Number of CPU cores | +| interrupt | number | Number of CPU interrupts | +| load | none | Average load of CPU in the last 1/5/15 minutes | +| context_switch | number | Number of current context switches | +| usage | % | CPU usage | + + +#### Metric set:memory + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| total | Mb | Total memory capacity | +| used | Mb | User program memory | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory occupied by cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage | + +#### Metric set:disk + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| disk_num | blocks | Total number of disks | +| partition_num | partitions | Total number of partitions | +| block_write | blocks | Total number of blocks written to disk | +| block_read | blocks | Number of blocks read from disk | +| write_rate | iops | Rate of writing disk blocks per second | + +#### Metric set:interface + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| interface_name | none | Network card name | +| receive_bytes | byte | Inbound data traffic(bytes) | +| transmit_bytes | byte | Outbound data traffic(bytes) | + +#### Metric set:disk_free + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| filesystem | none | File system name | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | usage | +| mounted | none | Mount point directory | diff --git a/home/versioned_docs/version-v1.3.x/help/website.md b/home/versioned_docs/version-v1.3.x/help/website.md new file mode 100644 index 00000000000..88d7a1957ad --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/website.md @@ -0,0 +1,29 @@ +--- +id: website +title: Monitoring Website +sidebar_label: Website Monitor +keywords: [open source monitoring tool, open source website monitoring tool, monitoring website metrics] +--- + +> Monitor whether the website is available, response time and other Metrics. + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Relative path | Suffix path of website address except IP port. For example, the relative path of `www.tancloud.cn/console` website is `/console` | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| responseTime | ms | Website response time | diff --git a/home/versioned_docs/version-v1.3.x/help/windows.md b/home/versioned_docs/version-v1.3.x/help/windows.md new file mode 100644 index 00000000000..82e36d23470 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/windows.md @@ -0,0 +1,43 @@ +--- +id: windows +title: Monitoring:Windows operating system monitoring +sidebar_label: Windows operating system +keywords: [open source monitoring tool, open source windows monitoring tool, monitoring windows metrics] +--- + +> Collect and monitor the general performance Metrics of Windows operating system through SNMP protocol. +> Note⚠️ You need to start SNMP service for Windows server. + +References: +[What is SNMP protocol 1](https://www.cnblogs.com/xdp-gacl/p/3978825.html) +[What is SNMP protocol 2](https://www.auvik.com/franklyit/blog/network-basics-what-is-snmp/) +[Win configure SNMP in English](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-snmp-service) +[Win configure SNMP in Chinese](https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-snmp-service) + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Windows SNMP service. The default is 161 | +| SNMP version | SNMP protocol version V1 V2c V3 | +| SNMP community Word | SNMP agreement community name(Community Name). It is used to realize the authentication of SNMP network administrator when accessing SNMP management agent. Similar to password, the default value is public | +| Timeout | Protocol connection timeout | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:system + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| name | none | Host name | +| descr | none | Operating system description | +| uptime | none | System running time | +| numUsers | number | Current number of users | +| services | number | Current number of services | +| processes | number | Current number of processes | +| responseTime | ms | Collection response time | diff --git a/home/versioned_docs/version-v1.3.x/help/zookeeper.md b/home/versioned_docs/version-v1.3.x/help/zookeeper.md new file mode 100644 index 00000000000..b7a34f49eda --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/help/zookeeper.md @@ -0,0 +1,100 @@ +--- +id: zookeeper +title: Monitoring Zookeeper +sidebar_label: Zookeeper Monitor +keywords: [open source monitoring tool, open source zookeeper monitoring tool, monitoring zookeeper metrics] +--- + +> Collect and monitor the general performance Metrics of Zookeeper. + +### PreRequisites + +#### Zookeeper four word command +>The current implementation scheme uses the four word command provided by zookeeper to collect Metrics. +Users need to add the four word command of zookeeper to the white list by themselves. + +Steps +> 1.Find our zookeeper configuration file, which is usually zoo.cfg. +> +> 2.Add the following commands to the configuration file + +```shell +# Add the required command to the white list +4lw.commands.whitelist=stat, ruok, conf, isro + +# Add all commands to the white list +4lw.commands.whitelist=* +``` + +> 3.Restart service + +```shell +zkServer.sh restart +``` + +#### netcat protocol +The current implementation scheme requires us to deploy the Linux server of zookeeper +Command environment for installing netcat + +> netcat installation steps +```shell +yum install -y nc +``` + +If the terminal displays the following information, the installation is successful +```shell +Complete! +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +| ----------- | ----------- | +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Zookeeper. The default is 2181 | +| Query timeout | Set the timeout of Zookeeper connection, unit: ms, default: 3000ms | +| Username | User name of the Linux connection where Zookeeper is located | +| Password | Password of the Linux connection where Zookeeper is located | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:conf + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| clientPort | none | Port | +| dataDir | none | Data snapshot file directory. By default, 100000 operations generate a snapshot | +| dataDirSize | kb | Data snapshot file size | +| dataLogDir | none | Transaction log file directory, production environment on a separate disk | +| dataLogSize | kb | Transaction log file size | +| tickTime | ms | Time interval between servers or between clients and servers to maintain heartbeat | +| minSessionTimeout | ms | Minimum session timeout. Heartbeat timex2. The specified time is less than this time, which is used by default | +| maxSessionTimeout | ms | Maximum session timeout. Heartbeat timex20. The specified time is greater than this time, which is used by default | +| serverId | none | Server id | + + +#### Metric set:stats + +| Metric name | Metric unit | Metric help description | +| ----------- | ----------- | ----------- | +| zk_version | none | Server version | +| zk_server_state | none | Server role | +| zk_num_alive_connections | number | Number of connections | +| zk_avg_latency | ms | Average latency | +| zk_outstanding_requests | number | Number of outstanding requests | +| zk_znode_count | number | Number of znode | +| zk_packets_sent | number | Number of packets sent | +| zk_packets_received | number | Number of packets received | +| zk_watch_count | number | Number of watch | +| zk_max_file_descriptor_count | number | Maximum number of file descriptors | +| zk_approximate_data_size | kb | data size | +| zk_open_file_descriptor_count | number | Number of open file descriptors | +| zk_max_latency | ms | Max latency | +| zk_ephemerals_count | number | Number of ephemeral nodes | +| zk_min_latency | ms | Min latency | + + diff --git a/home/versioned_docs/version-v1.3.x/introduce.md b/home/versioned_docs/version-v1.3.x/introduce.md new file mode 100644 index 00000000000..a534f92648c --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/introduce.md @@ -0,0 +1,98 @@ +--- +id: introduce +title: HertzBeat +sidebar_label: Introduce +slug: / +--- + +> An open source, real-time monitoring system with custom-monitoring and agentLess. + +[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) +[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + + +## 🎡 Introduction + +> [HertzBeat](https://github.com/dromara/hertzbeat) is an open source, real-time monitoring system with custom-monitor and agentLess. +> **Monitoring+Alarm+Notify** all in one. Support monitoring web service, database, os, middleware, cloud-native, network and more. +> Easy to use, full web-based operation, monitoring and alerting at the click of a mouse, zero learning cost. +> More flexible threshold rule(calculation expression), timely notification delivery by `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. + +> We make protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, and you only need to configure `YML` online to collect any metrics you want. +> Do you believe that you can immediately adapt a new monitoring type such as K8s or Docker just by configuring online? + +> `HertzBeat`'s powerful custom-define, multi-type support, easy expansion, low coupling, hope to help developers and micro teams to quickly build their own monitoring system. +> We also provide **[Monitoring SaaS Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system in order to monitor resources. **[Get started for free](https://console.tancloud.cn)**. + +---- + + +[![hertzbeat](/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +[![hertzbeat](/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +---- + +## 🥐 Architecture + +- **[manager](https://github.com/dromara/hertzbeat/tree/master/manager)** Provide monitoring management, system management basic services. +> Provides monitoring management, monitoring configuration management, system user management, etc. +- **[collector](https://github.com/dromara/hertzbeat/tree/master/collector)** Provide metrics data collection services. +> Use common protocols to remotely collect and obtain peer-to-peer metrics data. +- **[scheduler](https://github.com/dromara/hertzbeat/tree/master/scheduler)** Provide monitoring task scheduling service. +> Collection task management, scheduling and distribution of one-time tasks and periodic tasks. +- **[warehouse](https://github.com/dromara/hertzbeat/tree/master/warehouse)** Provide monitoring data warehousing services. +> Metrics data management, data query, calculation and statistics. +- **[alerter](https://github.com/dromara/hertzbeat/tree/master/alerter)** Provide alert service. +> Alarm calculation trigger, monitoring status linkage, alarm configuration, and alarm notification. +- **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** Provide web ui. +> Angular Web UI. + +![hertzBeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat/home/static/img/docs/hertzbeat-stru-en.svg) + +![hertzBeat](/img/docs/hertzbeat-arch.png) + +## ⛄ Supported + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) +- And More Your Custom Define. +- Notified Support `Discord` `Slack` `Telegram` `Email` `DingDing` `WeChat` `FeiShu` `Webhook` `SMS`. + diff --git a/home/versioned_docs/version-v1.3.x/others/contact.md b/home/versioned_docs/version-v1.3.x/others/contact.md new file mode 100644 index 00000000000..23c329395a6 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/contact.md @@ -0,0 +1,19 @@ +--- +id: contact +title: Join discussion +sidebar_label: Discussion +--- + +> If you need any help or want to exchange suggestions during the use process, you can discuss and exchange through ISSUE or Github Discussion. + +[GITHUB ISSUES](https://github.com/dromara/hertzbeat/issues) +[GITEE ISSUES](https://gitee.com/dromara/hertzbeat/issues) + +##### Github Discussion + +Welcome to Discuss in [Github Discussion](https://github.com/dromara/hertzbeat/discussions) + +##### Public WeChat + +tan-cloud + diff --git a/home/versioned_docs/version-v1.3.x/others/contributing.md b/home/versioned_docs/version-v1.3.x/others/contributing.md new file mode 100644 index 00000000000..5615ac49fba --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/contributing.md @@ -0,0 +1,142 @@ +--- +id: contributing +title: Contributing Guide +sidebar_label: Contributing Guide +--- + +> We are committed to maintaining a happy community that helps each other, welcome every contributor to join us! + +### Kinds of Contributions + +> In the HertzBeat community, there are many ways to contribute: + +- 💻**Code**: Can help the community complete some tasks, write new features or fix some bugs; + +- ⚠️**Test**: Can come to participate in the writing of test code, including unit testing, integration testing, e2e testing; + +- 📖**Docs**: Can write or Documentation improved to help users better understand and use HertzBeat; + +- 📝**Blog**: You can write articles about HertzBeat to help the community better promote; + +- 🤔**Discussion**: You can participate in the discussion of new features of HertzBeat and integrate your ideas with HertzBeat; + +- 💡**Preach**: Can help publicize or promote the HertzBeat community, speak in meetup or summit; + +- 💬**Suggestion**: You can also make some suggestions to the project or community to promote the healthy development of the community; + +More see [Contribution Types](https://allcontributors.org/docs/en/emoji-key) + +Even small corrections to typos are very welcome :) + +### Getting HertzBeat up and running + +> To get HertzBeat code running on your development tools, and able to debug with breakpoints. +> This is a front-end and back-end separation project. To start the local code, the back-end [manager](https://github.com/dromara/hertzbeat/tree/master/manager) and the front-end [web-app](https://github.com/dromara/hertzbeat/tree/master/web-app) must be started separately. + + +- Backend start + +1. Requires `maven3+`, `java11` and `lombok` environments +2. (Optional) Modify the configuration file-`manager/src/main/resources/application.yml` +3. Start `springboot manager` service `manager/src/main/java/org/dromara/hertzbeat/manager/Manager.java` + +- Front-web start + +1. Need `nodejs npm angular-cli` environment +2. Install yarn: `npm install -g yarn` +3. Execute under the front-end project directory web-app: `yarn install` +4. Install angular-cli globally: `npm install -g @angular/cli@14 --registry=https://registry.npm.taobao.org` +5. After the local backend is started, start the local frontend in the web-app directory: `ng serve --open` +6. Browser access to localhost:4200 to start, default account/password is *admin/hertzbeat* + +### Find tasks + +Find the issue you are interested in! On our GitHub repo issue list, we often publish some issues with the label good first issue or status: volunteer wanted. +These issues welcome the help of contributors. Among them, good first issues tend to have low thresholds and are suitable for novices. + +Of course, if you have a good idea, you can also propose it directly on GitHub Discussion or contact with community. + +### Submit Pull Request + +1. First you need to fork your target [hertzbeat repository](https://github.com/dromara/hertzbeat). +2. Then download the code locally with git command: +```shell +git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended +``` +3. After the download is complete, please refer to the getting started guide or README file of the target repository to initialize the project. +4. Then, you can refer to the following command to submit the code: +```shell +git checkout -b a-feature-branch #Recommended +``` +5. Submit the coed as a commit, the commit message format specification required: [module name or type name] feature or bugfix or doc: custom message. +```shell +git add +git commit -m '[docs]feature: necessary instructions' #Recommended +``` +6. Push to the remote repository +```shell +git push origin a-feature-branch +``` +7. Then you can initiate a new PR (Pull Request) on GitHub. + +Please note that the title of the PR needs to conform to our spec, and write the necessary description in the PR to facilitate code review by Committers and other contributors. + +### Wait for the code to be merged + +After submitting the PR, the Committee or the community's friends will review the code you submitted (Code Review), and will propose some modification suggestions or conduct some discussions. Please pay attention to your PR in time. + +If subsequent changes are required, there is no need to initiate a new PR. After submitting a commit on the original branch and pushing it to the remote repository, the PR will be automatically updated. + +In addition, our project has a relatively standardized and strict CI inspection process. After submitting PR, CI will be triggered. Please pay attention to whether it passes the CI inspection. + +Finally, the Committers can merge the PR into the master branch. + +### After the code is merged + +After the code has been merged, you can delete the development branch on both the local and remote repositories: + +```shell +git branch -d a-dev-branch +git push origin --delete a-dev-branch +``` + +On the master/main branch, you can do the following to sync the upstream repository: + +```shell +git remote add upstream https://github.com/dromara/hertzbeat.git #Bind the remote warehouse, if it has been executed, it does not need to be executed again +git checkout master +git pull upstream master +``` + +### How to become a Committer? + +With the above steps, you are a contributor to HertzBeat. Repeat the previous steps to stay active in the community, keep at, you can become a Committer! + +### Join Discussion + +[Gitter Channel](https://gitter.im/hertzbeat/community) + +[Github Discussion](https://github.com/dromara/hertzbeat/discussions) + +[User Club](https://support.qq.com/products/379369) + +Add WeChat account `tan-cloud` to pull you into the WeChat group. + +QQ group number `236915833`, verify code: `tancloud` + +Public WeChat: `tancloudtech` + +## 🥐 Architecture + +- **[manager](https://github.com/dromara/hertzbeat/tree/master/manager)** Provide monitoring management, system management basic services. +> Provides monitoring management, monitoring configuration management, system user management, etc. +- **[collector](https://github.com/dromara/hertzbeat/tree/master/collector)** Provide metrics data collection services. +> Use common protocols to remotely collect and obtain peer-to-peer metrics data. +- **[warehouse](https://github.com/dromara/hertzbeat/tree/master/warehouse)** Provide monitoring data warehousing services. +> Metrics data management, data query, calculation and statistics. +- **[alerter](https://github.com/dromara/hertzbeat/tree/master/alerter)** Provide alert service. +> Alarm calculation trigger, monitoring status linkage, alarm configuration, and alarm notification. +- **[web-app](https://github.com/dromara/hertzbeat/tree/master/web-app)** Provide web ui. +> Angular Web UI. + +![hertzBeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat/home/static/img/docs/hertzbeat-stru-en.svg) diff --git a/home/versioned_docs/version-v1.3.x/others/design.md b/home/versioned_docs/version-v1.3.x/others/design.md new file mode 100644 index 00000000000..3448d05cc77 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/design.md @@ -0,0 +1,13 @@ +--- +id: design +title: Design Document +sidebar_label: Design Document +--- + +### HertzBeat Architecture + +![architecture](https://cdn.jsdelivr.net/gh/dromara/hertzbeat/home/static/img/docs/hertzbeat-stru-en.svg) + +### TanCloud Architecture + +TanCloud is a SAAS cluster version based on HertzBeat, which adopts a multi-cluster and multi-tenant architecture model. diff --git a/home/versioned_docs/version-v1.3.x/others/developer.md b/home/versioned_docs/version-v1.3.x/others/developer.md new file mode 100644 index 00000000000..9c70286233b --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/developer.md @@ -0,0 +1,219 @@ +--- +id: developer +title: Contributors +sidebar_label: Contributors +--- + +## ✨ HertzBeat Members + + + + + + + + + + + + + +
tomsun28
tomsun28

💻 📖 🎨
会编程的王学长
会编程的王学长

💻 📖 🎨
zcx
zcx

💻 🐛 🎨
进击的阿晨
进击的阿晨

💻 🎨 🐛
铁甲小宝
铁甲小宝

🐛 💻 📖
cuipiheqiuqiu
cuipiheqiuqiu

💻 ⚠️ 🎨
hudongdong129
hudongdong129

💻 ⚠️ 📖
+ +cert + + +## ✨ HertzBeat Contributors + +Thanks to these wonderful people, welcome to join us: [Contributor Guide](contributing) + +cert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
tomsun28
tomsun28

💻 📖 🎨
会编程的王学长
会编程的王学长

💻 📖 🎨
MaxKey
MaxKey

💻 🎨 🤔
观沧海
观沧海

💻 🎨 🐛
yuye
yuye

💻 📖
jx10086
jx10086

💻 🐛
winnerTimer
winnerTimer

💻 🐛
goo-kits
goo-kits

💻 🐛
brave4Time
brave4Time

💻 🐛
WalkerLee
WalkerLee

💻 🐛
jianghang
jianghang

💻 🐛
ChineseTony
ChineseTony

💻 🐛
wyt199905
wyt199905

💻
卫傅庆
卫傅庆

💻 🐛
zklmcookle
zklmcookle

💻
DevilX5
DevilX5

📖 💻
tea
tea

💻
yangshihui
yangshihui

💻 🐛
DreamGirl524
DreamGirl524

💻 📖
gzwlly
gzwlly

📖
cuipiheqiuqiu
cuipiheqiuqiu

💻 ⚠️ 🎨
lambert
lambert

💻
mroldx
mroldx

📖
woshiniusange
woshiniusange

📖
VampireAchao
VampireAchao

💻
zcx
zcx

💻 🐛 🎨
CharlieXCL
CharlieXCL

📖
Privauto
Privauto

💻 📖
emrys
emrys

📖
SxLiuYu
SxLiuYu

🐛
All Contributors
All Contributors

📖
铁甲小宝
铁甲小宝

💻 📖
click33
click33

📖
蒋小小
蒋小小

📖
Kevin Huang
Kevin Huang

📖
铁甲小宝
铁甲小宝

🐛 💻 📖
Captain Jack
Captain Jack

📖
haibo.duan
haibo.duan

⚠️ 💻
assassin
assassin

🐛 💻
Reverse wind
Reverse wind

⚠️ 💻
luxx
luxx

💻
Ikko Ashimine
Ikko Ashimine

📖
leizenan
leizenan

💻
BKing
BKing

📖
xingshuaiLi
xingshuaiLi

📖
wangke6666
wangke6666

📖
刺猬
刺猬

🐛 💻
Haste
Haste

💻
zhongshi.yi
zhongshi.yi

📖
Qi Zhang
Qi Zhang

📖
MrAndyMing
MrAndyMing

📖
idongliming
idongliming

💻
Zichao Lin
Zichao Lin

💻 📖
liudonghua
liudonghua

💻 🤔
Jerry
Jerry

💻 ⚠️ 🤔
yanhom
yanhom

📖
fsl
fsl

💻
xttttv
xttttv

📖
NavinKumarBarnwal
NavinKumarBarnwal

💻
Zakkary
Zakkary

📖
sunxinbo
sunxinbo

💻 ⚠️
ldzbook
ldzbook

📖 🐛
余与雨
余与雨

💻 ⚠️
MysticalDream
MysticalDream

💻 ⚠️
zhouyoulin12
zhouyoulin12

💻 ⚠️
jerjjj
jerjjj

💻
wjl110
wjl110

💻
Sean
Sean

📖
chenyiqin
chenyiqin

💻 ⚠️
hudongdong129
hudongdong129

💻 ⚠️ 📖
TherChenYang
TherChenYang

💻 ⚠️
HattoriHenzo
HattoriHenzo

💻 ⚠️
ycilry
ycilry

📖
aoshiguchen
aoshiguchen

📖 💻
蔡本祥
蔡本祥

💻
浮游
浮游

💻
Grass-Life
Grass-Life

💻
xiaohe428
xiaohe428

💻 📖
TableRow
TableRow

📖 💻
ByteIDance
ByteIDance

💻
Jangfe
Jangfe

💻
zqr10159
zqr10159

📖 💻
vinci
vinci

💻
js110
js110

💻
CrazyLionLi
CrazyLionLi

📖
banmajio
banmajio

💻
topsuder
topsuder

💻
richar2022
richar2022

💻
fcb-xiaobo
fcb-xiaobo

💻
wenkyzhang
wenkyzhang

📖
ZangJuxy
ZangJuxy

📖
l646505418
l646505418

💻
Carpe-Wang
Carpe-Wang

💻
莫枢
莫枢

💻
huangcanda
huangcanda

💻
世纪末的架构师
世纪末的架构师

💻
ShuningWan
ShuningWan

📖
MrYZhou
MrYZhou

📖
suncqujsj
suncqujsj

📖
sunqinbo
sunqinbo

💻
haoww
haoww

📖
i-mayuan
i-mayuan

📖
fengruge
fengruge

📖
zhanghuan
zhanghuan

💻
shenymin
shenymin

💻
Dhruva Chandra
Dhruva Chandra

💻
miss_z
miss_z

📖
wyt990
wyt990

💻
licocon
licocon

💻
Mi Na
Mi Na

💻
Kylin-Guo
Kylin-Guo

📖
Mr灬Dong先生
Mr灬Dong先生

💻
Pratyay Banerjee
Pratyay Banerjee

📖 💻
yujianzhong520
yujianzhong520

💻
SPPan
SPPan

💻
ZhangJiashu
ZhangJiashu

💻
impress
impress

💻
凌晨一点半
凌晨一点半

📖
Eeshaan Sawant
Eeshaan Sawant

💻
nandofromthebando
nandofromthebando

💻
caiboking
caiboking

💻
baixing99
baixing99

💻
Yang Chuang
Yang Chuang

💻
wlin20
wlin20

💻
guojing1983
guojing1983

💻
moxi
moxi

📖
qq471754603
qq471754603

💻
渭雨
渭雨

💻
liuxuezhuo
liuxuezhuo

💻
lisongning
lisongning

💻
YutingNie
YutingNie

💻
Mike Zhou
Mike Zhou

💻
小笨蛋
小笨蛋

💻
littlezhongzer
littlezhongzer

💻
ChenXiangxxxxx
ChenXiangxxxxx

💻
Mr.zhou
Mr.zhou

💻
+ + + + + diff --git a/home/versioned_docs/version-v1.3.x/others/hertzbeat.md b/home/versioned_docs/version-v1.3.x/others/hertzbeat.md new file mode 100644 index 00000000000..17f377842b3 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/hertzbeat.md @@ -0,0 +1,137 @@ +--- +id: hertzbeat +title: HertzBeat 开源监控 +sidebar_label: HertzBeat 开源监控 +--- + + +> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 + +[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) +[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + +## 🎡 介绍 + +> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 +> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 +> 更自由化的阈值规则(计算表达式),`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 + +> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 + +---- + +## 完全开源 + +- 使用`Apache2`协议,由自由开放的开源社区主导维护的开源协作产品。 +- 无监控数量`License`,监控类型等人为限制。 +- 基于`Java+SpringBoot+TypeScript+Angular`主流技术栈构建,方便的二次开发。 + +## 强大的监控模版 + +> 开始我们就说 hertzbeat 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 hertzbeat 的不一样的监控模版。而正是因为这样的监控模版设计,才会有了后面的高级特性。 + +hertzbeat 自身并没有去创造一种采集数据协议,让对端来适配它。而是充分使用了现有的生态,SNMP采集网络交换机路由器信息,JMX采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析接口信息,IPMI采集服务器信息等等。 +hertzbeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标信息。 + +![hertzbeat](/img/blog/multi-protocol.png) + +你相信用户只需在UI页面编写一个监控模版,点击保存后,就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +![hertzbeat](/img/home/9.png) + + +## 已支持 + +**一款监控类型对应一个YML监控模版** + +- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) +- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) +- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml) +- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) +- 和更多自定义监控模版。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +## 强大自定义功能 + +> 由前面的**监控模版**介绍,大概清楚了 hertzbeat 拥有的强大自定义功能。 +> 我们将每个监控类型都视为一个监控模版,不管是官方内置的还是后期用户自定义新增的。用户都可以方便的通过修改监控模版来新增修改删除监控指标。 +> 模版里面包含各个协议的使用,指标别名转换,指标计算,单位转换等一系列功能,帮助用户能采集到自己想要的监控指标。 + +![hertzbeat](/img/docs/hertzbeat-arch.png) + +## 无需 Agent + +> 对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试了。 +> 每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。 +> agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。 + +hertzbeat 的原理就是使用不同的协议去直连对端系统,采集 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter等。 +比如监控 linux, 在 hertzbeat 端输入IP端口账户密码或密钥即可。 +比如监控 mysql, 在 hertzbeat 端输入IP端口账户密码即可。 +**密码等敏感信息全链路加密** + +## 易用友好 + +> 集 **监控+告警+通知** All in one, 无需单独部署多个组件服务。 +> 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。 +> 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。 +> 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。 +> 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 + + +----- + +**`HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** + +![hertzbeat](/img/home/0.png) + +![hertzbeat](/img/home/1.png) + +![hertzbeat](/img/home/2.png) + +![hertzbeat](/img/home/3.png) + +![hertzbeat](/img/home/4.png) + +![hertzbeat](/img/home/6.png) + +![hertzbeat](/img/home/7.png) + +![hertzbeat](/img/home/8.png) + +![hertzbeat](/img/home/9.png) diff --git a/home/versioned_docs/version-v1.3.x/others/huaweicloud.md b/home/versioned_docs/version-v1.3.x/others/huaweicloud.md new file mode 100644 index 00000000000..c6433ac6cf6 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/huaweicloud.md @@ -0,0 +1,26 @@ +--- +id: huaweicloud +title: HertzBeat & HuaweiCloud +sidebar_label: HertzBeat & HuaweiCloud +--- + +### HertzBeat 与 HuaweiCloud 的开源合作需求Issue + +> 欢迎大家对感兴趣的Issue领取贡献。 + +- [Task] support using Huawei Cloud OBS to store custom define yml file [#841](https://github.com/dromara/hertzbeat/issues/841) +- [Task] support Huawei Cloud CCE metrics monitoring [#839](https://github.com/dromara/hertzbeat/issues/839) +- [Task] support EulerOS metrics monitoring [#838](https://github.com/dromara/hertzbeat/issues/838) +- [Task] support using Huawei Cloud SMN send alarm notification message [#837](https://github.com/dromara/hertzbeat/issues/837) +- [Task] support using GaussDB For Influx store history metrics data [#836](https://github.com/dromara/hertzbeat/issues/836) + + + + +### 关于 HuaweiCloud 开源活动 + +HuaweiCloud 华为云将面向开源软件工具链与环境、开源应用构建和开源生态组件构建这三大重点场景,提供技术支持、奖金支持、活动支持,邀请更多的开发者,携手构建开源for HuaweiCloud。 + +开发者将开源软件工具、开源应用和开源组件与华为云对象存储OBS、数仓DWS、云容器CCE等云服务对接,同时基于Terraform模板,上架到华为云云商店,支持其他开发者一键部署使用开源组件 ,称为“开源xxx for HuaweiCloud”。 + +感兴趣的开发者可以查看:华为云开源项目仓库 https://gitee.com/HuaweiCloudDeveloper/huaweicloud-cloud-native-plugins-kits 了解更多。 diff --git a/home/versioned_docs/version-v1.3.x/others/images-deploy.md b/home/versioned_docs/version-v1.3.x/others/images-deploy.md new file mode 100644 index 00000000000..bb6f696ff81 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/images-deploy.md @@ -0,0 +1,112 @@ +--- +id: images-deploy +title: HertzBeat 华为云镜像部署 +sidebar_label: HertzBeat 华为云镜像部署快速指引 +--- + + +> 易用友好的开源实时监控告警工具,无需Agent,强大自定义监控能力。 + +[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) +[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) +![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) +![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) +![hertzbeat](https://img.shields.io/badge/monitor-network-red) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) +![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) + + +## 🎡 介绍 + +> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警工具。 +> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 +> 更自由化的阈值规则(计算表达式),`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 + +> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 +> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 + + +---- + +[![hertzbeat](/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +[![hertzbeat](/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) + +## ⛄ Supported + +- [网站监控](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-website.yml), [端口可用性](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-port.yml), + [Http Api](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-api.yml), [Ping连通性](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ping.yml), + [Jvm](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap全站](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-fullsite.yml), + [Ssl证书](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-springboot2.yml), + [FTP服务器](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ftp.yml) +- [Mysql](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-mongodb.yml), + [达梦](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-iotdb.yml) +- [Linux](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-windows.yml) +- [Tomcat](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-activemq.yml) +- [Kubernetes](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://github.com/dromara/hertzbeat/tree/master/manager/src/main/resources/define/app-docker.yml) +- 和更多的自定义监控。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 + +## 镜像部署 + +> HertzBeat支持在Linux Windows Mac系统安装运行,CPU支持X86/ARM64。 + +1. 开通服务器时选用 HertzBeat 镜像 +2. 启动服务器 +3. 配置HertzBeat的配置文件(可选) + + 修改位于 `/opt/hertzbeat/config/application.yml` 的配置文件(可选),您可以根据需求修改配置文件 + - 若需使用邮件发送告警,需替换`application.yml`里面的邮件服务器参数 + - **推荐**若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](../start/mysql-change)) + - **推荐**若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.td-engine`参数 具体步骤参见 [使用TDengine存储指标数据](../start/tdengine-init) + - **推荐**若需使用时序数据库IotDB来存储指标数据库,需替换`application.yml`里面的`warehouse.storeiot-db`参数 具体步骤参见 [使用IotDB存储指标数据](../start/iotdb-init) + + +4. 配置用户配置文件(可选,自定义配置用户密码) + HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过修改位于 `/opt/hertzbeat/config/sureness.yml` 的配置文件实现,若无此需求可忽略此步骤 + 具体参考 [配置修改账户密码](../start/account-modify) + +5. 部署启动 + 执行位于安装目录/opt/hertzbeat/bin/下的启动脚本 startup.sh, windows环境下为 startup.bat + ``` + $ ./startup.sh + ``` + +6. 开始探索HertzBeat + 浏览器访问 http://ip:1157/ 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +### 部署常见问题 + +**最多的问题就是网络问题,请先提前排查** + +1. **按照流程部署,访问 http://ip:1157/ 无界面** + 请参考下面几点排查问题: +> 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 +> 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 +> 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 + +2. **监控历史图表长时间都一直无数据** +> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据 +> 二:若使用了Tdengine,排查Tdengine的数据库`hertzbeat`是否创建 +> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB 或 Tdengine IP账户密码等配置是否正确 diff --git a/home/versioned_docs/version-v1.3.x/others/legal.md b/home/versioned_docs/version-v1.3.x/others/legal.md new file mode 100644 index 00000000000..f4cdc962a51 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/legal.md @@ -0,0 +1,54 @@ +--- +id: legal +title: Legal Risks of Hertzbeat Infringement +sidebar_label: Legal Risks +--- + +:::tip +**Open source does not mean completely free. If you [modify HertzBeat's logo, name, copyright](https://github.com/dromara/hertzbeat/blob/master/NOTICE), etc., please ask us for authorization, otherwise there will be legal risks.** +**We have the right to pursue all illegal gains of individuals who destroy open source and profit from it.** +::: + +### HertzBeat Open Source License + +[Apache-2.0 license](https://github.com/dromara/hertzbeat/blob/master/LICENSE) + +### HertzBeat Open Source Notice + +[Notice](https://github.com/dromara/hertzbeat/blob/master/NOTICE) + +```text +HertzBeat-An open-source, real-time monitoring system. +HertzBeat-易用友好的实时监控系统。 + +HertzBeat Declaration / HertzBeat声明 + +It can be used directly without authorization. All copyrights, patents, trademarks and ownership statements in the product and source code must be retained. +可直接免费商用,但必须保留本作品及源码中的所有版权、专利、商标和归属声明。 + +The attribution statement and copyright notice in the footer cannot be ignored, otherwise it will be deemed as infringement. +页面等页脚中归属声明及版权声明不可忽略,否则视为侵权。 + +Copyright https://www.hertzbeat.com https://www.tancloud.cn All Rights Reserved. +``` + +### Contact Us for Authorization + +Please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name. + +### Welcome to Provide Infringement Clue Information + +We are committed to open source and trust each other, but someone will use our trust to use this product illegally and profit from it. +If you find such a situation, please contact us to provide us with their infringement and illegal clues, and we will give you 25% of the other party's illegal income as determined by the court as thanks. We will remain anonymous at your request, and you are welcome to support open source causes. + + +### HertzBeat Licensed Version (paid) + +We provide the community open source version of the monitoring product HertzBeat, which can be used by individuals and businesses for free, **Requires complete reservation of copyright, Logo, trademark, footer copyright statement, and attribution statement**. +In some cases, enterprises need to modify the copyright LOGO and attribution statement based on the open source version for secondary development. We have launched **HertzBeat Authorized Version** for such needs. +This authorization needs to be paid. We implement enterprise-scale tiered pricing, and will give away technical support, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name + +### Enterprise Edition TanCloud (Paid) + +The enterprise version of the monitoring system is a version specially launched by the TanCloud team for enterprise-level needs. It provides **user management, permissions, logs and other enterprise-level features**, and has received quick response and technical support from our maintenance team. +The enterprise version is a paid version. We implement enterprise-scale tiered pricing, and will give away technical support, free maintenance period, technical explanation, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: Enterprise Edition + team name diff --git a/home/versioned_docs/version-v1.3.x/others/policy.md b/home/versioned_docs/version-v1.3.x/others/policy.md new file mode 100644 index 00000000000..6e732e6a7c8 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/policy.md @@ -0,0 +1,421 @@ +--- +id: policy +title: TanCloud Privacy Policy +sidebar_label: Privacy Policy +--- + +> Updated on: February 17, 2022 + +Welcome to use the products and services provided by MianYang TanCloud Technology Co., Ltd. (hereinafter referred to as "TanCloud"). TanCloud (or "we" for short) is well aware of the importance of personal information to you, and we have always solemnly promised to protect users who use our products and services (hereinafter collectively referred to as "TanCloud services") (hereinafter collectively referred to as "users" or "you") Personal information and privacy security. When you use the TanCloud service, we may collect and use your personal information (or "personal information" for short). "TanCloud Privacy Policy" (hereinafter referred to as "this policy") applies to the TanCloud service we provide. Users under the age of 18, please read this policy with a legal guardian, and pay special attention to the terms of use for minors. In particular, if you are a child under the age of 14, you should also ask your guardian to read this policy carefully, and you can use the TanCloud service only with the consent of the guardian. We hope to use this policy to explain to you the corresponding processing rules when we collect and use your personal information, as well as the ways we can provide you with access, correction, deletion and protection of this personal information, so as to better protect your rights and interests. + +Scope of application: (a) When you use the TanCloud service or visit the webpage related to the TanCloud service, TanCloud automatically receives and records the information on your browser and computer, including but not limited to your IP address and browser type, The language used, the date and time of the visit, the software and hardware feature information, and the webpage records you need; (b) TanCloud obtains user personal data from business partners through legal means. + +You understand and agree that the following information does not apply to this privacy policy: (a) Keyword information entered when using the search service provided by the TanCloud service; (b) The relevant information and data collected by TanCloud that you publish on the TanCloud service, including But it is not limited to participation in activities, transaction information and evaluation details; (c) Violation of legal provisions or violations of TanCloud service rules and the measures TanCloud has taken against you. + +This policy will help you understand the following: + +1. How we collect and use your personal information + +2. How do we use Cookies or similar technologies + +3. Personal information that we may share, transfer and disclose + +4. How do we keep, store and protect the security of your personal information + +5. How to manage your personal information + +6. third-party services + +7. Protection of minors + +8. Notice and Amendment + +9. Application of Law and Jurisdiction + +10. How to contact us + +【Special Reminder】 Please read carefully before using the TanCloud service (minors, please read it with a guardian) and understand this policy (especially the content marked in bold or underlined) to make an appropriate choice. Once you use or continue to use our products or services after we update this policy, it means that you agree to this policy and agree that we process your personal information in accordance with this policy. + +This policy applies to TanCloud services. If there is any inconsistency with the similar terms of the "Professional Service Contract" between TanCloud and you, this policy shall prevail. If a single service we provide does not apply to this policy, the service will expressly exclude the application of this policy in an appropriate manner. + +1. How we collect and use your personal information: + +We collect your personal information mainly for you and other users to use the TanCloud service more easily and satisfactorily. And this personal information helps us achieve this goal. + +A. We will collect and obtain your personal information through the following channels: + +a. The personal information you provide. + +ⅰ. The personal information you provide to us when you register for the TanCloud service account or use the TanCloud service, including your mobile phone number, and you can voluntarily choose to fill in your nickname, profile picture, gender, age, education, school, identity Certificate number, recipient’s name, recipient’s contact information, and basic information about the delivery address. If you only need to browse and understand TanCloud, you do not need to register an account and provide the above information. If you do not provide this information, it will not affect your use of the basic functions of TanCloud; + +ⅱ. The shared personal information you provide to other parties through the TanCloud service, and the personal information stored when you use the TanCloud service. + +Please note that if you upload or publish your personal information in a public area visible to other users in the TanCloud service, or disclose your personal information in your response to information uploaded or published by others, such personal information may be collected and used by others, as long as you do not delete the personal information that you have disclosed or shared, the relevant personal information may remain in the public domain; even if you delete the shared personal information, the relevant personal information may still be owned by other users or not under our control The third party independently caches, copies, or stores, or saves it in the public domain by other users or such third parties. If you disclose or share your personal information through the aforementioned channels, we will not be liable for the leakage of your personal information. Therefore, we remind and ask you to carefully consider whether to disclose or share your personal information through the above channels. When you find that others have improperly collected or used your personal information, you can contact us through the contact information stipulated in Article 9 of this Policy [How to Contact Us]. + +b. Your personal information shared by other parties. That is, the shared personal information about you provided by other parties when using the TanCloud service. + +c. Your personal information we have obtained. When you use the TanCloud service, we collect, aggregate, and record personal information. + +B. We will collect and use the following types of personal information of you for the following purposes: + +a. Help you complete registration, login and logout + +In order for us to provide you with a complete TanCloud service, you need to provide basic registration or login personal information, including using your mobile phone number to register and log in or provide a third-party account to log in to TanCloud. If you only need to use basic services such as browsing, querying, and searching, you do not need to register as an TanCloud user and provide the above-mentioned personal information. + +b. Customer service and after-sales + +In accordance with relevant laws and regulations and regulatory requirements, or when you contact us, our customer service or after-sales service may require you to provide real identity information (name, ID) and account information to verify your identity in order to help you with questions, Or record the solutions and results of related issues. + +Please note that your identity information is personally sensitive information. Please provide it with caution. If you refuse to provide it, you may not be able to obtain related services, but it will not affect the normal use of other functions and services. + +c. Maintain the normal operation of basic functions + +During your use of our services, in order to identify the abnormal status of your account and understand the suitability of the product, provide you with services such as browsing, searching, registering/logging in, viewing and editing personal information, purchasing services/products, and paying, and maintaining basic functions In normal operation, we may automatically collect and store information about the services you use and how you use them and associate these information, including: + +ⅰ. Log information: When you use our services, we may automatically collect your detailed usage of our services and save them as relevant web logs. Log information includes your login account, search query content, IP address, browser type, telecom operator, network environment, language used, access date and time, and web browsing records you visit, Push open records, crash records, Stay time, refresh record, publish record, follow, subscribe, favorite and share. + +ⅱ. Device information: We may receive and record the device-related information (including device identifiers (IMEI/MAC/OPEN UDID), Serial, SIM card) according to the specific permissions granted by you during software installation and use. IMSI identification code, device model, operating system and version, client version, device resolution, package name, device settings, process and software list, Android ID, IDFA, UUID, software and hardware feature information, information about the location of the device (Including IP address, GPS location, and WLAN access point, Bluetooth and base station sensor information that can provide relevant personal information). + +At the same time, in order to collect the above basic personal device information, we will apply for permission to access your device information. We collect this information to provide you with our basic services and basic functions. If you refuse to provide the above permissions, you may be unable to use it. Our products and services. + +Please note that separate device information and log information are personal information that cannot identify a specific natural person. If we combine this type of non-personal information with other personal information to identify a specific natural person, or use it in combination with personal information, during the combined use period, this type of non-personal information will be treated as personal information, except for obtaining you Unless otherwise provided by authorization or laws and regulations, we will anonymize and de-identify this type of personal information. During the combined use, this information will be treated and protected as your personal information in accordance with this privacy policy. + +d. Provide you with goods or services + +ⅰ. Sharing and publishing of personal information: When you use the TanCloud service, upload and/or publish personal information, and perform related actions, we will collect the personal information you upload, publish or form, and have the right to display your nickname, Avatar and post content. + +ⅱ. Delivery of goods or services: When you order specific goods or services from our goods or services, we will generate an order for you to purchase the goods or services through the system. In order to facilitate the delivery to you of the goods or services you have purchased on TanCloud, you may need to provide the recipient's personal identification information, name, purchaser's subject and related information, orderer, contact number, and payment status information. If you refuse to provide such personal information, we will not be able to complete the relevant delivery services. If you order goods or services for others through the TanCloud service, you need to provide the aforementioned personal information of the actual orderer. Before providing us with the aforementioned personal information of the actual orderer, you need to ensure that you have obtained his authorization and consent. + +When you use the TanCloud service, TanCloud will collect and store the pictures and voice information you upload, and our relevant recognition program will process and analyze these data. + +ⅲ. In order to complete order payment, deliver goods or services, confirm transaction status, and provide you with after-sales and dispute resolution services, we will collect information related to the transaction progress through the transaction object, payment institution, logistics company, etc. you select based on the exchange. Your account number, order, transaction, payment, logistics information, or share your transaction information with the above-mentioned service providers. + +ⅳ. Order management: In order to display the order information of your account and protect your after-sales rights and interests, TanCloud will collect the order information, transaction and consumption records generated during your use of TanCloud to show you and facilitate your order processing manage. + +ⅴ. Customer service and after-sales service: When you contact our customer service or use other user response functions (including in-sales and after-sales applications, personal information protection complaints or suggestions, other customer complaints and needs), we may need you to provide necessary Personal information is used to match and verify your user identity in order to protect your account and system security. We may also save your contact information (used when you contact us or other contact information you voluntarily provide to us), your communication/call records and content with us, and other necessary information related to your needs, In order to contact you or help you solve the problem, or record the solution and result of the related problem. + +e. Your personal information that we have collected indirectly: + +We may obtain relevant personal information that you have authorized to share from management affiliates and third-party partners. We may obtain the account information (avatar, nickname, login time) that you authorized to share from a third party and bind your third-party account with your TanCloud service account after you agree to this policy, so that you can directly use the third-party account Log in and use our products and/or services. We will collect and use your personal information in compliance with relevant laws and regulations, and in accordance with agreements with affiliates or third-party partners, and we are confident that the source of the personal information provided by them is legal. + +f. Send you a notice + +We may issue service-related notices to you when necessary (for example, when we suspend a single service, change, or terminate the provision of a single service due to system maintenance). + +If you do not want to continue to receive our push messages, you can ask us to stop pushing, for example: according to the SMS unsubscription guidelines, ask us to stop sending promotional messages, or set up in the mobile device to no longer receive our push messages; but Except when we send messages in accordance with legal regulations or service agreements. + +g. Provide you with security + +In order to improve the security of your use of the services provided by us and our partners, protect the personal and property safety of you or other users or the public from infringement, and better prevent phishing websites, fraud, network vulnerabilities, computer viruses, network attacks, network intrusions, etc. Security risks, to more accurately identify violations of laws and regulations or TanCloud service-related agreement rules, we may collect, use or integrate your account information, transaction information, device information, log information, and our affiliates and partners obtain your authorization Or use personal information shared by law to comprehensively judge your account and transaction risks, conduct identity verification, detect and prevent security incidents, and take necessary recording, auditing, analysis, and disposal measures in accordance with the law. + +h. Other + +You understand and agree that after collecting your personal information, we may de-identify the data through technical means. The de-identified information will not be able to identify you. In this case, we have the right to use the de-identified The user’s database is analyzed and used commercially without obtaining your consent. + +Please note that if we want to use your personal information for other purposes not specified in this policy or collect additional personal information that is not mentioned, we will separately ask you to agree in advance (the way to confirm consent: check, Pop-up window, station letter, mail, short message method). Once you agree, these additional uses will be regarded as part of this policy, and this policy will also apply to such additional personal information. + +If we want to use your personal information for other purposes not specified in this policy or collect additional personal information that is not mentioned, we will obtain additional information from you through page prompts, interactive processes, website announcements, or other methods. agree. During this process, you can contact us through the contact information stipulated in Article 9 of this policy [How to Contact Us]. + +i. Exceptions for obtaining authorization and consent + +According to relevant laws and regulations, the collection of your personal information in the following situations does not require your authorization and consent: + +ⅰ. It is related to the performance of the obligations stipulated by laws and regulations by the personal information controller; + +ⅱ. It is directly related to national security and national defense security; + +ⅲ. It is directly related to public safety, public health, and major public interests; + +ⅳ. Directly related to criminal investigation, prosecution, trial, and execution of judgments; + +ⅴ. In order to protect the life and property of the personal information subject or other individuals, but it is difficult to obtain the authorization and consent of the person; + +ⅵ. The personal information involved is disclosed to the public by the subject of personal information on his own initiative; + +ⅶ. Necessary for signing and performing contracts according to the requirements of the personal information subject; + +ⅷ. Collecting personal information from legally publicly disclosed information, such as legal news reports, government information disclosure and other channels; + +ⅸ. Necessary to maintain the safe and stable operation of the products or services provided, such as discovering and disposing of product or service failures; + +j. You understand and agree that the TanCloud service may require you to enable specific access permissions in your device to achieve the collection and use of personal information involved in these permissions: + +ⅰ. If we visit your camera, it is for you to use the camera to scan the code and take pictures, which is used to realize login, use the "photograph" function to pay, comment on pictures, take photos with words, take pictures, translate and upload avatars; + +ⅱ. If we visit your photo album, it is to enable you to access and upload photos, pictures or videos in your device, post comments/share, and upload avatars using pictures in the photo album; + +ⅲ. If we visit your storage, it is to enable you to implement functions such as cropping avatar pictures and querying crash logs; + +ⅳ. If we access your microphone, it is to enable you to implement voice translation functions, voice comments, voice interaction with customer service, and voice teaching interaction functions. In these functions, we will collect your recording content to identify your specific need. + +ⅴ. If we visit your browser, it is to enable you to realize "automatic login" and other functions. In these functions, we will collect relevant data of your browser to identify specific needs. + +When you need to turn off this feature, most mobile devices will support your need. For specific methods, please refer to or contact your mobile device service provider or manufacturer. Please note that if you enable any permission, you authorize us to collect and use relevant personal information to provide you with corresponding services. Once you close any permission, you cancel the authorization, and we will no longer continue to collect based on the corresponding permissions. And the use of related personal information cannot provide you with the services corresponding to this authority. However, your decision to turn off permissions will not affect your use of authorized functions of other permissions, as well as the collection and use of personal information previously based on your authorization. + +k. Reminders about personal sensitive information + +The above personal information provided by you or collected by us may contain your sensitive personal information, including bank account numbers, transaction and consumption records, virtual property information, system account numbers, email addresses and related passwords, phone numbers, web browsing Record, location information. Please be cautious and pay attention to sensitive personal information. You agree that we can process your sensitive personal information in accordance with the purposes and methods described in this policy. + +2. How do we use Cookies or similar technologies + +a. Cookies + +We or our third-party partners may obtain and use your personal information through Cookies, and store such personal information as log information. + +Through the use of Cookies, we provide you with a simple and personalized network experience. A cookie is a small amount of data, which is sent from a web server to your browser and stored on the computer hard drive. We use Cookies to benefit you. For example, in order to make the login process of TanCloud faster, you can choose to store the user name in a Cookies. This will be more convenient and faster next time you want to log in to the TanCloud service. Cookies can help us determine the page and content you are connected to, the time you spend on the TanCloud specific service and the TanCloud service you choose. + +Cookies enables us to serve you better and faster, and makes your experience on the TanCloud service more personalized. However, you should be able to control whether and how Cookies are accepted by your browser. Please refer to the file attached to your browser for more information on this. + +We and third-party partners may collect and use your personal information through Cookies, and store such personal information. + +We use our own Cookies, which may be used for the following purposes: + +(1) Remember your identity. Cookies helps us to recognize your identity as our registered user, or save your preferences or other personal information about you provided to us; + +(2) Analyze your use of our services. We can use Cookies to understand what activities you use TanCloud services for, or which services or services are most popular; + +(3) Advertising optimization. Cookies helps us to provide you with advertisements that are relevant to you based on your personal information instead of general advertising. + +While we use Cookies for the above purposes, we may aggregate the non-personally identifiable information collected through Cookies to advertisers and other partners to analyze how you and other users use the TanCloud service and use it for advertising services. + +There may be Cookies placed by advertisers and other partners on the TanCloud service. These Cookies may collect non-personally identifiable information related to you to analyze how users use these services, send you advertisements that may be of interest to you, or evaluate the effectiveness of advertising services. The collection and use of such personal information by these third-party Cookies is not restricted by this policy, but by their own personal information protection statement. We are not responsible for third-party Cookies. + +You can reject or manage Cookies through the browser or user selection mechanism. However, please note that if you disable Cookies, we may not be able to provide you with the best service experience, and some services may not be available normally. At the same time, you will still receive advertisements, but the relevance of these advertisements to you will be reduced. + +b. Web beacons and pixel tags + +In addition to Cookies, we also use other similar technologies such as web beacons and pixel tags on our website. For example, the email we send you may contain an address link that links to the content of our website. If you click the link, we will track the click to help us understand your product or service preferences so that we can proactively improve customer service Experience. A web beacon is usually a transparent image embedded in a website or email. With the help of the pixel tags in the email, we can know whether the email has been opened. If you do not want your activities to be tracked in this way, you can unsubscribe from our mailing list at any time. + +3. Personal information that we may share, transfer or disclose + +a. Sharing + +You agree that we share your personal information with our affiliates or related legal entities, and some business partners that cooperate with us (collectively referred to as "information recipients") in accordance with this policy. We will actively help you understand the storage and use of personal information by the information recipient, as well as your rights to access, correct, delete, and cancel your account. Except for the following circumstances, without your consent, we will not share your personal information with any third party other than us and our information recipient: + +ⅰ. Provide you with our services. We may share your personal information with the information recipient to achieve the core functions you need or provide the services you need; + +ⅱ. Maintain and improve our services. We may share your personal information with information recipients to help us provide you with more targeted and better services, for example: communication service providers that send emails or push notifications on our behalf; + +ⅲ. To achieve the purpose stated in the section "How do we collect and use your personal information" in Article 1 of this policy; + +ⅳ. Fulfill our obligations and exercise our rights in this policy or other agreements we have reached with you; + +ⅴ. The purpose of sharing with the information recipients who entrust us to promote is to make the entrusting parties understand the coverage and effectiveness of the promotion. For example, we can tell the entrusting party how many people have viewed their promotion information or purchased the entrusting party’s goods after seeing this information, or provide them with unidentifiable statistical information to help them understand their audience or customers. + +ⅵ. To the extent permitted by laws and regulations, in order to comply with the law, protect us and our affiliates or partners, you or other TanCloud users, or the public from damage to the interests, property or safety of the public, for example, to prevent fraud and other illegal activities and To reduce credit risk, we may exchange personal information with other companies and organizations. However, this does not include personal information that is sold, rented, shared or otherwise disclosed for profit in violation of the commitments made in this policy. + +ⅶ. Assist in handling disputes or disputes between you and others in response to your legal needs; + +ⅷ. Provide your personal information in response to the legal request of your guardian; + +ⅸ. Provided in accordance with the service agreement signed with you (including the electronic agreement signed online and the corresponding platform rules) or other legal documents; + +ⅹ. Provided based on academic research; + +ⅺ. Provided based on the public interest in compliance with laws and regulations. + +We will only share your personal information for legal, legitimate, necessary, specific and clear purposes. For companies, organizations and individuals with whom we share personal information, we will sign strict confidentiality agreements with them, requiring them to handle personal information in accordance with our instructions, this policy and any other relevant confidentiality and security measures. + +b. Transfer + +ⅰ. With the continuous development of our business, we may conduct mergers, acquisitions, asset transfers or similar transactions, and your personal information may be transferred as part of such transactions. We will require new companies and organizations that hold your personal information to continue to be bound by this policy, otherwise, we will require that companies and organizations to re-seek authorization and consent from you. + +ⅱ. After obtaining your explicit consent, we will transfer your personal information to other parties. + +c. Disclosure + +We will only disclose your personal information under the following circumstances and adopting industry-standard safety protection measures: + +ⅰ. According to your needs, disclose your designated personal information in a disclosure method that you explicitly agree to; + +ⅱ. In cases where your personal information must be provided in accordance with the requirements of laws and regulations, compulsory administrative law enforcement or judicial requirements, we may disclose your personal information based on the type of personal information required and the method of disclosure. Under the premise of complying with laws and regulations, when we receive the above request for the disclosure of personal information, we will require the recipient to issue corresponding legal documents, such as subpoenas or investigation letters. We firmly believe that the personal information we are required to provide should be as transparent as possible to the extent permitted by law. We have carefully reviewed all requests to ensure that they have a legal basis and are limited to data obtained by law enforcement agencies for specific investigation purposes and have legal rights. + +d. Exceptions for obtaining prior authorization and consent when sharing, transferring, or disclosing personal information + +In the following situations, sharing, transferring, and publicly disclosing your personal information does not require your prior authorization and consent: + +ⅰ. Related to personal information controllers fulfilling obligations stipulated by laws and regulations; + +ⅱ. Related to national security and national defense security; + +ⅲ. Related to public safety, public health, and major public interests; + +ⅳ. Related to judicial or administrative law enforcement such as criminal investigation, prosecution, trial, and execution of judgments; + +ⅴ. In order to protect your or other individuals' life, property and other major legal rights and interests, but it is difficult to obtain the consent of the person; + +ⅵ. Your personal information disclosed to the public on your own; + +ⅶ. Collect personal information from legally publicly disclosed information, such as legal news reports, government information disclosure and other channels. + +According to laws and regulations, sharing and transferring personal information that has been de-identified, and ensuring that the data recipient cannot restore and re-identify the subject of personal information does not belong to the external sharing, transfer, and public disclosure of personal information. The storage and processing will not need to notify you separately and obtain your consent. + +4. How do we keep, store and protect the security of your personal information + +a. We only store your personal information for the period necessary for the purpose stated in this policy and within the time limit prescribed by laws, regulations and supervision. TanCloud's criteria for judging the aforementioned period include: + +ⅰ. Complete transaction purposes related to you, maintain corresponding transaction and business records, and respond to your possible inquiries or complaints; + +ⅱ. Ensure the safety and quality of the services provided by TanCloud; + +ⅲ. Do you agree to a longer retention period; + +ⅳ. Whether there is any other special agreement on the retention period. + +After your personal information exceeds the retention period, TanCloud will delete or anonymize your personal information in accordance with the requirements of applicable laws (if you are a minor, after your personal information exceeds the retention period, TanCloud will follow Relevant laws and regulations require that your personal information be processed accordingly). If it is impossible to delete it in accordance with relevant requirements due to special circumstances, the platform will explain this part of the matter to you. + +If we terminate the service or operation, we will promptly stop the activities of continuing to collect your personal information, and at the same time, we will comply with relevant laws and regulations to notify you in advance, and delete or anonymize your personal information after terminating the service or operation. Unless otherwise provided by laws, regulations or regulatory authorities. + +b. The personal information collected and generated during our operations within the territory of the People's Republic of China is stored in the territory of China. Except in the following situations: + +ⅰ. There are clear provisions in laws and regulations; + +ⅱ. Obtain your authorization and consent; + +ⅲ. The products and services you use involve cross-border, and we need to provide your personal information overseas. + +In response to the above circumstances, we will ensure that your personal information is adequately protected in accordance with this policy and national laws and regulations. + +c. We attach great importance to personal information security, designate specific personnel, and take all reasonable and feasible measures to protect your personal information: + +ⅰ. Data security technical measures + +We will adopt safety protection measures that comply with industry standards, including the establishment of reasonable system specifications and safety technologies to prevent your personal information from unauthorized access, use, modification, and data damage or loss. Network services adopt a variety of encryption technologies. For example, in some services, we will use encryption technology to protect your personal information, use encryption technology to encrypt and store your personal information, and isolate it through isolation technology. When using personal information, such as personal information display and personal information association calculations, we will use a variety of data desensitization technologies to enhance the security of personal information in use. Strict data access control and multi-identity authentication technology are adopted to protect personal information and prevent data from being used in violation of regulations. + +ⅱ. Other security measures we take to protect personal information + +(1) We manage and regulate the storage and use of personal information by establishing a data classification and grading system, data security management specifications, and data security development specifications. + +(2) We conduct comprehensive security control of data through confidentiality agreements, monitoring and auditing mechanisms for personal information contacts. + +(3) We will also organize security and privacy protection training courses to strengthen employees’ awareness and security awareness of the importance of protecting personal information. + +(4) We only allow employees and partners of us and our affiliates who need to know this personal information to access your personal information, and we have set up strict access control and monitoring mechanisms for this purpose. We also require all personnel who may have access to your personal information to perform corresponding confidentiality obligations. If you fail to fulfill these obligations, you may be held accountable or be suspended from our cooperative relationship. + +ⅲ. The Internet is not an absolutely secure environment, and the communication methods with other users such as e-mail, instant messaging, social software or other service software cannot be determined whether it is completely encrypted. We recommend that you use complex passwords when using such tools, and pay attention. Protect your personal information security. + +ⅳ. We will try our best to ensure or guarantee the security of any personal information you send to us. If our physical, technical, or management protection facilities are damaged, resulting in unauthorized access, public disclosure, tampering, or destruction of personal information, resulting in damage to your legitimate rights and interests, we will bear the corresponding legal responsibility. + +d. Security incident handling + +In the unfortunate event of a personal information security incident, we will promptly inform you in accordance with the requirements of laws and regulations: the basic situation and possible impact of the security incident, the disposal measures we have taken or will take, and what you can independently prevent and reduce risks Suggestions, remedies for you, etc. At the same time, we will promptly notify you of the relevant information of the incident by email, letter, text message, phone call, push notification, etc. If it is difficult to inform the subject of personal information one by one, we will take a reasonable and effective way to issue an announcement. At the same time, we will also proactively report the handling of personal information security incidents in accordance with the requirements of the regulatory authorities. + +Please understand that due to technical limitations and risk prevention limitations, even if we have tried our best to strengthen security measures, we cannot always guarantee the 100% security of personal information. You need to understand that the system and communication network you use to access the TanCloud service may cause problems due to circumstances beyond our control. + +5. How to manage your personal information + +We encourage you to update and modify your personal information to make it more accurate and effective. Please understand that your decision to correct, delete, withdraw your authorization or stop using the TanCloud service will not affect our previous personal information based on your authorization. Information processing. + +You can manage your personal information in the following ways: + +a. Access your personal information + +ⅰ. Account personal information: If you want to access the basic personal information in your account (including avatar, nickname, birthday, company, address, etc.), you can log in to your account and access it through the "personal center". + +ⅱ. Order personal information: You can check the status of all your orders in "Control Panel-Expense Management-Order Information". + +b. Correct your personal information + +If you want to correct the basic personal information in your account (including avatar, nickname, mobile phone number, etc.), you can log in to your account and make changes in the "Personal Center". + +c. Delete your personal information + +You can voluntarily delete part of your personal information through the methods listed in "(1) Accessing and Correcting Your Personal Information". When some personal information is deleted, we may require you to verify your identity to protect the security of your personal information. + +In the following situations, you can request us to delete personal information: + +ⅰ. If our handling of personal information violates laws and regulations; + +ⅱ. If we collect and use your personal information, but have not obtained your authorization; + +ⅲ. If our handling of personal information seriously violates our agreement with you; + +ⅳ. If we no longer provide you with TanCloud service. + +If we decide to respond to your deletion request, we will also notify the entities that have obtained your personal information from us as much as possible at the same time, requiring them to delete them in a timely manner, unless laws and regulations provide otherwise, or these entities obtain your independent authorization. + +d. Change the scope of your authorization + +You can always choose whether to disclose personal information. Some personal information is necessary to use the TanCloud service, but the provision of most other personal information is up to you. You can change the scope of your authorization to continue to collect personal information by "deleting personal information, turning off device functions, or canceling your account" in the methods listed in "This Article (1) Accessing and Correcting Your Personal Information" or through the ninth of this policy. Article [How to Contact Us] Contact us with the agreed contact information to withdraw your authorization. Under normal circumstances, we will reply within 15 days. + +e. Cancel your account + +If you no longer use the TanCloud service, you can log in to the process shown in "TanCloud"-"Personal Center"-"Security Level"-"Account Logout" if it complies with the stipulated conditions of the service agreement and relevant national laws and regulations. Or contact us to cancel your account in the contact information stipulated in Article 9 of this Policy [How to Contact Us]. Generally, we will cancel your account within 15 working days, at which time we will stop providing you with TanCloud services. When your account is cancelled or deleted, all service information and data under the TanCloud service related to that account will be deleted or anonymized, unless otherwise provided by laws and regulations. + +f. Obtaining a copy of personal information: You can contact us through the email sales@TanCloud.cn service channel and inform us that you want to obtain a copy of your personal information. Generally, we will receive your question ten days after receiving your question. Respond within five days. + +g. Responding to your above request + +To ensure safety, you may need to provide a written request or prove your identity in other ways. We may ask you to verify your identity before processing your request. For your reasonable requests, we do not charge fees in principle, but for repeated requests that exceed reasonable limits, we will charge a certain cost as appropriate. For those who are unreasonably repeated, require too many technical means (for example, the need to develop new systems or fundamentally change current practices), bring risks to the legitimate rights and interests of others, or are very impractical (for example, involving information stored on backup tapes) Request, we may reject it. + +In the following situations, we will not be able to respond to your request: + +ⅰ. Related to our fulfillment of obligations stipulated by laws and regulations; + +ⅱ. It is directly related to national security and national defense security; + +ⅲ. It is directly related to public safety, public health, and major public interests; + +ⅳ. Directly related to criminal investigation, prosecution, trial and execution of judgments; + +ⅴ. We have sufficient evidence to show that you have subjective malice or abuse of rights; + +ⅵ. In order to protect your or other individuals' life, property and other major legal rights and interests, but it is difficult to obtain the consent of the person; + +ⅶ. Responding to your request will cause serious damage to the legitimate rights and interests of you or other individuals or organizations; + +ⅷ. Involving commercial secrets. + +6. Third-party services + +The TanCloud service may be linked to social media or other services (including websites or other forms of services) provided by third parties. include: + +a. You can use the "Share" button to share certain TanCloud service content to third-party services, or you can share third-party service content to TanCloud. These functions may collect your information (including your log information), and may install Cookies on your computer to operate the above functions normally; + +b. We provide you with links through advertisements or other methods of our services, so that you can link to third-party services or websites; + +c. Other access to third-party services. In order to achieve the purpose stated in this policy, we may access SDK or other similar applications provided by third-party service providers, and share certain information about you collected by us in accordance with this policy to such third-party service providers. In order to provide better customer service and user experience. Currently, the third-party service providers we access mainly include the following types: + +ⅰ. For advertising-related services, including advertising display, advertising data monitoring/statistics, etc.; + +ⅱ. Used for message push functions, including push from mobile phone manufacturers, reminders of specific events, etc.; + +ⅲ. For payment-related services, including order payment, transaction verification, income settlement, payment information summary statistics, etc.; + +ⅳ. It is used to obtain device location permissions, collect device information and log information, etc. with your consent; + +ⅴ. Used for third-party authorization services, including third-party account login, sharing relevant content to third-party products, etc.; + +ⅵ. Used to support product functional modules, including online live broadcast, video playback, voice recognition, intelligent customer service, content storage, etc.; + +Some third-party SDKs or similar applications that we access may collect your personal information. If you use such third-party services in our services, you agree that they will directly collect and process your information. We will evaluate the legality, legitimacy, and necessity of personal information collected by such third-party services, and require these third parties to take protective measures for your personal information, and strictly abide by relevant laws, regulations and regulatory requirements. You can also choose to contact us through the feedback channels listed in the "How to Contact Us" section of this policy, and we will answer you as soon as possible. + +The services mentioned above are operated by relevant third parties. Your use of such third-party services (including any personal information you provide to such third parties) is subject to the third party's own terms of service and personal information protection statement (not this policy), and you need to read its terms carefully. We will only share your information for legitimate, necessary, and specific purposes. We will require them to fulfill relevant confidentiality obligations and take corresponding security measures. + +7. Protection of minors + +If you are a minor under the age of 18, please be sure to ask your guardian to read this policy carefully and use our services or provide us with personal information with the consent of your guardian. We will protect the personal information of minors in accordance with relevant national laws and regulations. If the guardian finds that the relevant minor’s personal information is filled out by the minor himself and needs to be modified or deleted, please feel free to contact us. + +In particular, if you are a child under the age of 14, please notify your guardian and seek their consent and guidance before you use the TanCloud service and submit personal information. + +8. Notification and Amendment + +We may revise the terms of this policy in due course, and such revisions form part of this policy. For major changes, we will provide more noticeable notifications. If you do not agree with the changes, you can choose to stop using the TanCloud service; if you continue to use the TanCloud service, you agree to be bound by this revised policy. + +We encourage you to review our privacy policy every time you use the TanCloud service. + +We may issue service-related announcements when necessary (for example, when we suspend a certain service due to system maintenance). You may not be able to cancel these service-related announcements that are not promotional in nature. + +Finally, you must keep your account and password information confidential. In any case, please keep it carefully and properly. + +9. Application of law and jurisdiction + +If there is a dispute, the two parties will resolve the dispute through negotiation; if the two parties cannot resolve the dispute through negotiation, both parties agree that the China International Economic and Trade Arbitration Commission ("CIETAC") will conduct arbitration in Beijing, China in accordance with CIETAC's effective arbitration rules and applicable laws. The language of the arbitration is in Chinese and will be heard by 3 arbitrators. + +10. How to contact us + +The contact address of MianYang TanCloud Technology Co., Ltd. is: No.35, Mian'an Road, FuCheng District, Mianyang City, Sichuan Province. We will protect your personal information in accordance with this policy. + +We have designated personal information protection personnel, if you have complaints and reports about personal information security, or you have any questions, comments or suggestions about this policy, your personal information related matters, and privacy measures related to this policy or TanCloud If you have any questions, please contact us: Tel: 18781603458; Email address: gongchao@tancloud.cn. + +Under normal circumstances, we will reply within fifteen days from the date of receiving your questions, comments or suggestions. \ No newline at end of file diff --git a/home/versioned_docs/version-v1.3.x/others/private.md b/home/versioned_docs/version-v1.3.x/others/private.md new file mode 100644 index 00000000000..3c773ef4b7f --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/private.md @@ -0,0 +1,25 @@ +--- +id: private +title: Enterprise +sidebar_label: Enterprise +--- + +:::tip +**Open source does not mean completely free. If you [modify HertzBeat's logo, name, copyright](https://github.com/dromara/hertzbeat/blob/master/NOTICE), etc., please ask us for authorization, otherwise there will be [legal risks](legal).** +**Open source is based on mutual trust, please don't let developers chill.** +::: + +HertzBeat monitoring products are divided into open source community version and enterprise version. The enterprise version **provides more enterprise-level features such as user management and log auditing**. The maintenance team quickly responds to enterprise needs. + +## HertzBeat Licensed Version (paid) + +We provide the community open source version of the monitoring product HertzBeat, which can be used by individuals and businesses for free, **Requires complete reservation of copyright, Logo, trademark, footer copyright statement, and attribution statement**. +In some cases, enterprises need to modify the copyright LOGO and attribution statement based on the open source version for secondary development. We have launched **HertzBeat Authorized Version** for such needs. +This authorization needs to be paid. We implement enterprise-scale tiered pricing, and will give away technical support, etc. For specific plans and prices, please add our WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: authorization + team name + +## Enterprise Edition TanCloud (Paid) + +The enterprise version of the monitoring system is a version specially launched by the TanCloud team for enterprise-level needs. It provides **user management, permissions, logs and other enterprise-level features**, and has received quick response and technical support from our maintenance team. +The enterprise version is a paid version. We implement enterprise-scale tiered pricing, and will give away technical support, free maintenance period, technical explanation, etc. For specific plans and prices, please add us WeChat `tan-cloud` or email `tomsun28@outlook.com`, please note: Enterprise Edition + team name + +Welcome to introduce business to become a recommendation officer, there will be rewards for successful transactions diff --git a/home/versioned_docs/version-v1.3.x/others/resource.md b/home/versioned_docs/version-v1.3.x/others/resource.md new file mode 100644 index 00000000000..725d946e053 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/resource.md @@ -0,0 +1,19 @@ +--- +id: resource +title: Related resources +sidebar_label: Related resources +--- + +## Icon resources + +### TANCLOUD-HertzBeat LOGO + +![logo](/img/tancloud-logo.svg) + +Download: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.svg) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-logo.jpg) + +### TANCLOUD BRAND LOGO + +![logo](/img/tancloud-brand.svg) + +Download: [SVG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-brand.svg) [JPG](https://gitee.com/dromara/hertzbeat/raw/master/home/static/img/tancloud-brand.jpg) diff --git a/home/versioned_docs/version-v1.3.x/others/service.md b/home/versioned_docs/version-v1.3.x/others/service.md new file mode 100644 index 00000000000..590824d8fda --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/service.md @@ -0,0 +1,189 @@ +--- +id: service +title: TanCloud Subscription Agreement +sidebar_label: Subscription Agreement +--- + +> Updated on: February 17, 2022 + +Welcome to sign this 《TanCloud product service agreement》 (hereinafter referred to as "this Agreement") with MianYang TanCloud Technology Co., Ltd. (hereinafter referred to as "tancloud") and use tancloud services! + +The keywords listed in front of the terms in the agreement are only for the purpose of helping you understand the main purpose of the terms, and do not affect or limit the meaning or interpretation of the terms of this agreement. In order to protect your own rights and interests, it is recommended that you carefully read the specific statements of each clause. + +【Careful reading】 You should carefully read this agreement before agreeing to it. Please be sure to carefully read and fully understand the contents of each clause, especially the clauses of exemption or limitation of liability, application of law and dispute resolution. These clauses will be underlined in bold, and you should focus on reading. If you have any questions about the agreement, you can consult customer service and relevant business departments. + +【Signing action】 When you read and click to agree to this agreement or choose to accept this agreement in other ways, it means that you have fully read, understood and accepted all the contents of this Agreement and reached an agreement with TanCloud. This Agreement shall be established from the date when you click confirm on the web page or choose to accept this agreement in other ways. In the process of reading this agreement, if you do not agree with this agreement or any of its terms, please do not sign. + +TanCloud Subscription Agreement +1. Signing body and scope of agreement + This service agreement is a service agreement signed between you and MianYang TanCloud Technology Co., Ltd. for your use of TanCloud services. + +2. Service content + "Service" in this clause refers to: TanCloud service. The services displayed on tancloud.cn website and client (hereinafter individually or collectively referred to as "TanCloud") that you have applied for and that TanCloud agrees to provide to you. + +3. Service fee +3.1. The service fee will be listed and publicized on your order page. You can choose the specific service type by yourself and pay at the listed price. Tancloud is only available for pre paid services. + +3.2. Pay in advance: + +3.2.1. After you pay, TanCloud starts to provide services for you. If you do not pay immediately after placing an order, the order will expire. After the order expires, the agreement between TanCloud and you on the service will expire. + +3.2.2. If both parties are willing to continue cooperation after the expiration of the service, you should pay the renewal payment at least 7 days before the expiration of the service, so that the service can continue. + +3.3. Tancloud reserves the right not to provide services and / or technical support to you, or to terminate services and / or technical support until you have paid all the fees as agreed. At the same time, tancloud reserves the right to require you to bear 5 / 10000 of the liquidated damages and investigate other legal liabilities for your arrears. + +3.4. You fully understand that all complimentary service items or preferential activities in the TanCloud price system are one-time special discounts beyond the normal service price of TanCloud, and the complimentary service items or preferential activities cannot be discounted or offset the service price. + +4. Your rights and obligations +4.1. After successfully subscribing to the service, you have the right to require TanCloud to provide services to you in accordance with this service agreement and the service description, technical specifications and other contents displayed on the relevant pages of the TanCloud website. + +4.2. After you order the services of TanCloud, you can enjoy free after-sales service. In addition, TanCloud also provides other paid technical services. + +4.3. You should pay the corresponding service fees according to the tips on the website of tancloud and the provisions of this service agreement. + +4.4. The use of TanCloud services shall comply with the service use rules of TanCloud and this service agreement. + +4.5. You are responsible for the integrity and confidentiality of your data stored on the tancloud cloud platform and passwords for entering and managing various products and services on the tancloud cloud platform. The losses and consequences caused by the loss or disclosure of the above data and passwords etc. due to your improper maintenance or confidentiality shall be borne by you. + +4.6. You must keep the access log records of your website in accordance with the provisions of 《Network security law》, 《Measures for the administration of Internet information services》 and other laws and regulations, including the published information content and its publishing time, Internet address (IP), domain name, etc., which should be provided by the relevant state organs when inquiring according to law. You will bear the corresponding legal liabilities caused by failing to keep relevant records as required. + +4.7. For the safety of data, you should be responsible for the backup of your data. Tancloud products or services may configure data backup functions or tools for you, and you are responsible for the operation to complete the backup. + +4.8. You should be responsible for the source and content of your user business data. TanCloud reminds you to carefully judge the legitimacy of the data source and content. You will bear the corresponding results and responsibilities caused by your user's business data content violating laws and regulations, department rules or national policies. + +4.9. You understand and agree that the state secrets of the people's Republic of China are protected by law, and you have the obligation to keep the state secrets of the people's Republic of China; Your use of TanCloud service should comply with the requirements of relevant confidentiality laws and regulations, and should not endanger the security of state secrets of the people's Republic of China. + +4.10. You should also carefully read and abide by the corresponding service instructions, technical specifications, use processes, operation documents and other contents displayed by TanCloud on the website page (hereinafter referred to as "operation guidelines") and operate in accordance with the relevant operation guidelines. You will bear the consequences of violating the relevant operating instructions; At the same time, TanCloud solemnly reminds you to grasp the risks and operate cautiously. + +5. Rights and obligations of TanCloud +5.1. TanCloud shall provide services as agreed. + +5.2. During the service period, TanCloud will provide you with the following after-sales services: + +5.2.1. TanCloud will provide 7×24 enterprise WeChat service group and online work order consulting service to answer your questions in use. + +5.2.2. TanCloud will provide you with fault support services, and you should declare faults through online work orders; TanCloud will timely provide support for the faults caused by your non-human operation, except for your human reasons and / or force majeure, as well as other matters beyond the control of TanCloud. + +5.3. You can also get other paid after-sales services through TanCloud. For details, see the charged after-sales services on the relevant pages of the TanCloud website. + +5.4. TanCloud is only responsible for the operation and maintenance of the software provided by TanCloud, and you are responsible for the parts outside the TanCloud software (such as your identity source, data source, and application). + +5.5. You know that TanCloud cannot guarantee that the services it provides are flawless (for example, TanCloud security products cannot guarantee the absolute safety of your hardware or software), but TanCloud promises to continuously improve the service quality and service level. So you agree: even if there are defects in the services provided by TanCloud, the above defects cannot be avoided by the technical level of the industry at that time, and it will not be regarded as a breach of contract by TanCloud. You agree to work with TanCloud to solve the above defects. + +5.6. Some services of TanCloud may have the function of account authorization management, that is, you can authorize all or part of your operation rights to the service to one or more authorized accounts you specify. In this case, all operations conducted under any authorized account will be regarded as your actions conducted through your own account, and you will bear the corresponding responsibilities and the resulting service fees. + +5.7. You understand and acknowledge that TanCloud will provide you with security protocols based on certain services (such as LDAP, SAML, oidc) and relevant functions and services for management and monitoring (such as "User Overview"). Although TanCloud has tested these services in detail, it cannot guarantee that they are fully compatible with all software and hardware systems, nor can it guarantee the complete accuracy of its software and services. In case of incompatibility and software errors, you should immediately turn off or stop using relevant functions, and contact TanCloud in time for technical support. + +5.8. You should understand and agree that during the free use of the service or the free service quota, such as the public test and invited test of the service, although TanCloud will provide support for the availability and reliability of the service, it will not make any commitment to the availability and reliability of any service, and TanCloud will not bear any responsibility for the work or results of your use or inability to use the TanCloud service. TanCloud reserves the possibility of charging for such free services in the future. Before charging the service fee, TanCloud will inform you otherwise. + +6. User business data +6.1. TanCloud understands and acknowledges that the data you process, store, upload, download, distribute and process through other means through the services provided by TanCloud are your user business data, and you fully own your user business data. + +6.2. In terms of user business data, apart from implementing your service requirements, TanCloud will not make any unauthorized use and disclosure. Except for the following circumstances: + +6.2.1. When relevant state authorities inquire user business data according to law, TanCloud has the obligation to provide cooperation in accordance with relevant laws, regulations or policy documents, and disclose it to third parties or administrative, judicial and other institutions. + +6.2.2. You and TanCloud agree otherwise. + +6.3. You can delete and change your user business data by yourself. If you release the service or delete data, tancloud will delete your data and will no longer retain such data according to your instructions. You should be cautious about data deletion, change and other operations. + +6.4. When the service period expires, the service is terminated in advance (including the early termination agreed by both parties, the early termination caused by other reasons, etc.) or you owe money, unless expressly stipulated by laws and regulations, required by the competent department or otherwise agreed by both parties, Tancloud will only continue to store your user business data (if any) within a certain buffer period (subject to the time limit specified in the exclusive terms, product documents, service descriptions, etc. applicable to the service you ordered). When the buffer period expires, TanCloud will delete all user business data, including all cached or backup copies, and will no longer retain any user business data. + +6.5. Once the user business data is deleted, it cannot be recovered; You should bear the consequences and responsibilities caused by the deletion of data. You understand and agree that TanCloud has no obligation to continue to retain, export or return user business data. + +6.6. Tancloud abides by its security commitment to users and protects users' data stored in the TanCloud data center in accordance with applicable laws. + +7. Intellectual property right +7.1. The intellectual property rights of any information, technology or technical support, software, services, etc. provided by one party to the other party under this agreement belong to the providing party or its legal obligee.Unless expressly agreed by the provider or legal obligee, the other party has no right to copy, disseminate, transfer, license or provide others to use the above knowledge achievements, otherwise it shall bear corresponding responsibilities. + +7.2. You should ensure that the materials submitted to TanCloud, the use of TanCloud services and the results produced by the use of TanCloud services do not infringe the legitimate rights and interests of any third party. Tancloud shall ensure that the services provided to you do not infringe the legitimate rights and interests of any third party. + +7.3. If a third-party institution or individual questions or complains about the ownership of the intellectual property rights of the relevant materials involved in your use of TanCloud services, or questions or complains about the ownership of the intellectual property rights of the TanCloud services you use, you and TanCloud are both responsible for issuing relevant intellectual property certification materials and cooperating with each other in the handling of relevant complaints. For the claims, lawsuits or possible lawsuits caused thereby, the breaching party shall be responsible for solving them, bearing the costs and losses, and exempting the other party from liability. + +8. Confidentiality clause +8.1. The confidential information mentioned in these terms of service refers to the trade secrets (including financial secrets), technical secrets, and Business know-how and / or other confidential information and materials (including product information, product plan, price, financial and marketing planning, business strategy, customer information, customer data, research and development, software, hardware, API application data interface, technical description, design, special formula, special algorithm, etc.), regardless of the form or carrier of the above information and materials, regardless of whether the disclosing party uses oral Image or written means show that it is confidential. + +8.2. Both parties shall take appropriate measures to properly preserve the confidential information provided by the other party, and the degree of prudence of the measures shall not be less than that of protecting their own confidential information. Both parties can only use the confidential information for relevant purposes or purposes under this agreement. + +8.3. Both parties guarantee that the confidential information can only be known within the scope of the principals and employees of each party engaged in this business, and strictly restrict the employees who have access to the above confidential information from observing the confidentiality obligations of this article. + +8.4. The above restrictions in this article do not apply to the following situations: + +8.4.1. On or before the signing of this agreement, the confidential information has been legally owned by the recipient; + +8.4.2. When the confidential information is notified to the recipient, it has been made public or can be obtained from the public domain; + +8.4.3. Confidential information is obtained by the receiving party from a third party with which it has no confidentiality or non disclosure obligations; + +8.4.4. On the premise of not violating the responsibilities agreed in this agreement, the confidential information has been made public or can be obtained from the public domain; + +8.4.5. The confidential information is independently developed by the receiving party or its affiliates or subsidiaries, and does not benefit from the information obtained by the notifying party or its affiliates or subsidiaries; + +8.4.6. The receiving party discloses confidential information at the request of the court or other legal and administrative departments (through oral questions, inquiries, requests for information or documents, subpoenas, civil or criminal investigations or other procedures); + +8.4.7. In order to apply for a business qualification, obtain a recognition, or comply with national and industrial standards / certifications from administrative departments, industry associations and other institutions, the receiving party needs to submit materials or explain the information to the above-mentioned institutions in combination with the situation of the other party. In such cases, the receiving party shall adhere to the principle and requirements of minimum disclosure when necessary. Therefore, the institutions that receive confidential information shall keep it confidential at a standard not lower than this agreement. + +8.5. Both you and TanCloud should do their best to protect the above confidential information from disclosure. Once the disclosure of the above confidential information is found, both parties shall cooperate to take all reasonable measures to avoid or mitigate the consequences of damage. If losses are caused to the other party, the direct economic losses caused to the other party shall be compensated. + +9. Opening, termination and change of services +9.1. Pre paid services: + +9.1.1. After you pay for the service, you can open it. After you open it, you can use the service after you get the key and password of logging in and using the service sent by tancloud. The service period starts from the time of opening (not from the time you get the key and password of logging in and using the service); + +9.1.2. For services sold in the form of fixed term such as monthly subscription, the service period is until the expiration of the subscription period; For services sold in the form of resource packs (or package packs), the service period is until the service period of the resource pack you ordered expires or the services in the resource pack are used up (whichever occurs earlier); + +9.1.3. You should use up the number of services in the resource pack within the service period. If the service period of the resource pack expires, the services you have ordered but not used up will be invalidated, and TanCloud will not provide other substitutes or supplements. + +9.1.4. Your use of the service will give priority to the consumption of the subscribed resource package. Unless otherwise agreed by law and both parties, if the services in the resource package are used up or the service term expires, and you continue to use the service without continuing to subscribe to the resource package service, TanCloud will be deemed to use the service (if any) sold by TanCloud in the form of future payment, and TanCloud will continue to charge and deduct the service fee according to the charging results. + +9.2. In case of any of the following circumstances, the service period shall be terminated in advance: + +9.2.1. Both parties agree to terminate in advance; + +9.2.2. If you seriously violate this Agreement (including, you seriously violate relevant laws and regulations, or you seriously violate any commitment under this agreement, etc.), TanCloud has the right to terminate the service in advance until all your data is cleared; + +9.2.3. You understand and fully recognize that although tancloud has established (and will continue to improve according to the development of Technology) necessary technical measures to defend against matters or behaviors endangering network security, including computer viruses, network intrusion and attack damage (including DDoS) (hereinafter collectively referred to as these behaviors), in view of the limitations, relativity and unpredictability of network security technology, Therefore, if your website encounters such behavior, which brings harm to TanCloud or other networks or servers of TanCloud (including local, foreign and international networks, servers, etc.), or affects the smooth connection between TanCloud and the Internet, or between TanCloud and specific networks, servers and inside TanCloud, TanCloud may decide to suspend or terminate the service. If the service is terminated, the service fee will be calculated according to the actual service month (less than one month will be calculated by day), and the remaining amount (if any) will be refunded. + +9.2.4. TanCloud may terminate this service agreement by notifying you on the TanCloud website 30 days in advance or by notifying you on the website or in writing; At that time, TanCloud should return the money you have prepaid but not consumed to your TanCloud account. + +9.3. You understand and acknowledge that for the purpose of technology upgrading, service system upgrading, or due to business strategy adjustment or in line with major changes in national technology, regulations and policies, TanCloud does not guarantee the permanent provision of a certain service, and has the right to change the form, specification or other aspects of the service provided (such as the price and billing mode of the service). Before terminating this service or making such changes, TanCloud will try its best and make an announcement on the website in advance One or more ways such as in station letter, email or SMS to give advance notice. + +10. Liability for breach of contract +10.1. If you violate any of the commitments, warranty terms, service use rules or obligations in this agreement, or TanCloud believes that your use behavior is abnormal according to its judgment, TanCloud has the right to take one or more of the following measures unilaterally according to its independent judgment: (1) restrict and suspend the use of services; (2) Terminate the provision of services and terminate this Agreement; (3) Investigate your legal responsibility; (4) Other treatment measures deemed appropriate by TanCloud. You will bear the user losses caused by the suspension and termination of services taken by TanCloud in accordance with the foregoing agreement. + +10.2. If you violate relevant laws and regulations or the provisions of this Agreement and relevant rules, causing TanCloud to suffer any losses, claims from other users or any third party, or penalties from any administrative department, you shall make full compensation for the actual losses of TanCloud, other users or relevant third parties, including reasonable attorney fees. + +10.3. You understand and agree that in view of the particularity of computers and the Internet, the following situations do not belong to the breach of TanCloud: + +10.3.1. When configuring, maintaining and upgrading the system and server, TanCloud needs to interrupt the service for a short time; + +10.3.2. The access speed of your website is reduced due to the blocking of access on the Internet. + +10.4. If you can't use the service normally for 72 hours because of TanCloud, you can terminate the service, except for the reasons not under the control of TanCloud. + +10.5. Under no circumstances will TanCloud be liable for any indirect, consequential, punitive, accidental or special damages, including the loss of profits you suffer from using TanCloud services (even if you have been informed of the possibility of such losses). + +10.6. To the extent permitted by law, tancloud's liability for damages under this Agreement shall not exceed the total service fees paid in the past 12 months for this service. + +11. Force majeure +11.1. If the performance of these terms of service is impossible, unnecessary or meaningless due to force majeure or other accidents, the party suffering from force majeure or accidents shall not be liable. + +11.2. Force majeure and accidents refer to unforeseeable, insurmountable, unavoidable and objective events that have a significant impact on one or both parties, including natural disasters such as floods, earthquakes, epidemics, etc., as well as social events such as war, unrest, government behavior, interruption of telecommunications trunk lines, hackers, network congestion, technological adjustment of telecommunications departments, government regulation, etc. + +12. Application of law and dispute resolution +12.1. The conclusion, effectiveness, interpretation, amendment, supplement, termination, implementation and dispute resolution of this Agreement shall be governed by the mainland laws of the people's Republic of China. + +12.2. Any dispute arising from your use of TanCloud service and related to tancloud service shall be settled by TanCloud through negotiation with you. If the negotiation fails, either party may bring a lawsuit to Beijing Haidian District People's court. + +13. Supplementary articles +13.1. The annexes to this agreement, as well as the service description and price description of TanCloud on the relevant pages of the TanCloud website and the order page you confirmed and agreed (including the special terms of the product, service description, operation documents, etc.) are an integral part of this agreement. In case of any inconsistency, the order of (1) service description, price description, other order pages, (2) special terms and annexes, and (3) general terms and conditions of this Agreement shall apply. + +13.2. In case of any change in the content of this agreement, TanCloud shall prompt you for modified contents through an announcement on the appropriate page of the TanCloud website 30 days in advance. If you continue to use the TanCloud service, you will be deemed to have accepted the relevant modifications made by TanCloud. + +13.3. TanCloud has the right to transfer all or part of the rights and obligations of this agreement to its affiliates through advance notice. + +13.4. TanCloud's waiver of rights under this agreement in case of your negligence or breach of contract shall not be deemed as a waiver of your other or similar negligence or breach of contract in the future. + +13.5. Any provision of this agreement is deemed to be repealed, invalid or unenforceable, which shall be deemed to be separable and shall not affect the validity and enforceability of the remaining provisions of this agreement. + +13.6. The guarantee clauses, confidentiality clauses, intellectual property clauses, applicable laws and dispute resolution clauses under this Agreement shall not become invalid due to the termination of this agreement. \ No newline at end of file diff --git a/home/versioned_docs/version-v1.3.x/others/sponsor.md b/home/versioned_docs/version-v1.3.x/others/sponsor.md new file mode 100644 index 00000000000..76fed132af4 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/others/sponsor.md @@ -0,0 +1,20 @@ +--- +id: sponsor +title: Sponsor +sidebar_label: Sponsor +--- + + +**Hertzbeat is completely free for individuals or enterprises. If you like this project and are willing to help, buy us a cup of coffee** + + +![wechat-alipay](/img/docs/pay.png) + + +Thanks [JiShi Information(build a new microwave + optical transaction network)](https://www.flarespeed.com) sponsored server node. +Thanks [TianShang cloud computing(new wisdom cloud)](https://www.tsyvps.com/aff/BZBEGYLX) sponsored server node. +Thanks [Postcat(An Open source development tool)](https://datayi.cn/w/xRxVBBko) sponsored. + + + + diff --git a/home/versioned_docs/version-v1.3.x/start/account-modify.md b/home/versioned_docs/version-v1.3.x/start/account-modify.md new file mode 100644 index 00000000000..d167f0acb56 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/account-modify.md @@ -0,0 +1,114 @@ +--- +id: account-modify +title: Modify Account Username Password +sidebar_label: Update Account +--- + +HertzBeat default built-in three user accounts, respectively admin/hertzbeat tom/hertzbeat guest/hertzbeat +If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. +The configuration file content refer to project repository[/script/sureness.yml](https://gitee.com/dromara/hertzbeat/blob/master/script/sureness.yml) +Modify the following **part parameters** in sureness.yml:**[Note⚠️Other default sureness configuration parameters should be retained]** + +```yaml + +resourceRole: + - /api/account/auth/refresh===post===[admin,user,guest] + - /api/apps/**===get===[admin,user,guest] + - /api/monitor/**===get===[admin,user,guest] + - /api/monitor/**===post===[admin,user] + - /api/monitor/**===put===[admin,user] + - /api/monitor/**===delete==[admin] + - /api/monitors/**===get===[admin,user,guest] + - /api/monitors/**===post===[admin,user] + - /api/monitors/**===put===[admin,user] + - /api/monitors/**===delete===[admin] + - /api/alert/**===get===[admin,user,guest] + - /api/alert/**===post===[admin,user] + - /api/alert/**===put===[admin,user] + - /api/alert/**===delete===[admin] + - /api/alerts/**===get===[admin,user,guest] + - /api/alerts/**===post===[admin,user] + - /api/alerts/**===put===[admin,user] + - /api/alerts/**===delete===[admin] + - /api/notice/**===get===[admin,user,guest] + - /api/notice/**===post===[admin,user] + - /api/notice/**===put===[admin,user] + - /api/notice/**===delete===[admin] + - /api/tag/**===get===[admin,user,guest] + - /api/tag/**===post===[admin,user] + - /api/tag/**===put===[admin,user] + - /api/tag/**===delete===[admin] + - /api/summary/**===get===[admin,user,guest] + - /api/summary/**===post===[admin,user] + - /api/summary/**===put===[admin,user] + - /api/summary/**===delete===[admin] + +# Resources that need to be filtered and protected can be accessed directly without authentication +# /api/v1/source3===get means /api/v1/source3===get it can be accessed by anyone. Don't need to authentication +excludedResource: + - /api/account/auth/**===* + - /api/i18n/**===get + - /api/apps/hierarchy===get + # web ui the front-end static resource + - /===get + - /dashboard/**===get + - /monitors/**===get + - /alert/**===get + - /account/**===get + - /setting/**===get + - /passport/**===get + - /**/*.html===get + - /**/*.js===get + - /**/*.css===get + - /**/*.ico===get + - /**/*.ttf===get + - /**/*.png===get + - /**/*.gif===get + - /**/*.jpg===get + - /**/*.svg===get + - /**/*.json===get + # swagger ui resource + - /swagger-resources/**===get + - /v2/api-docs===get + - /v3/api-docs===get + +# user account information +# Here is admin tom lili three accounts +# eg: admin includes[admin,user]roles, password is hertzbeat +# eg: tom includes[user], password is hertzbeat +# eg: lili includes[guest],text password is lili, salt password is 1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin,user] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] +``` + +Modify the following **part parameters** in sureness.yml **[Note⚠️Other default sureness configuration parameters should be retained]**: + +```yaml + +# user account information +# Here is admin tom lili three accounts +# eg: admin includes[admin,user]roles, password is hertzbeat +# eg: tom includes[user], password is hertzbeat +# eg: lili includes[guest], text password is lili, salt password is 1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin,user] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] +``` + + +**Restart HertzBeat, access http://ip:1157/ to explore** diff --git a/home/versioned_docs/version-v1.3.x/start/custom-config.md b/home/versioned_docs/version-v1.3.x/start/custom-config.md new file mode 100644 index 00000000000..c8d616396d2 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/custom-config.md @@ -0,0 +1,58 @@ +--- +id: custom-config +title: Advanced Params Config +sidebar_label: Advanced Params Config +--- + +This describes how to configure the SMS server, the number of built-in availability alarm triggers, etc. + +**Configuration file `application.yml` of `hertzbeat`** + +### Configure the configuration file of HertzBeat + +Modify the configuration file located at `hertzbeat/config/application.yml` +Note ⚠️The docker container method needs to mount the application.yml file to the local host +The installation package can be decompressed and modified in `hertzbeat/config/application.yml` + +1. Configure the SMS sending server + +> Only when your own SMS server is successfully configured, the alarm SMS triggered in the monitoring tool will be sent normally. + +Add the following Tencent platform SMS server configuration in `application.yml` (parameters need to be replaced with your SMS server configuration) +```yaml +common: + sms: + tencent: + secret-id: AKIDbQ4VhdMr89wDedFrIcgU2PaaMvOuBCzY + secret-key: PaXGl0ziY9UcWFjUyiFlCPMr77rLkJYlyA + app-id: 1435441637 + sign-name: XX Technology + template-id: 1343434 +``` + +2. Configure alarm custom parameters + + +```yaml +alerter: + # Custom console address + console-url: https://console.tancloud.cn +``` + +3. Use external redis instead of memory to store real-time indicator data + +> By default, the real-time data of our indicators is stored in memory, which can be configured as follows to use redis instead of memory storage. + +Note ⚠️ `memory.enabled: false, redis.enabled: true` +```yaml +warehouse: + store: + memory: + enabled: false + init-size: 1024 + redis: + enabled: true + host: 127.0.0.1 + port: 6379 + password: 123456 +``` diff --git a/home/versioned_docs/version-v1.3.x/start/docker-deploy.md b/home/versioned_docs/version-v1.3.x/start/docker-deploy.md new file mode 100644 index 00000000000..3e2fcf42e6f --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/docker-deploy.md @@ -0,0 +1,111 @@ +--- +id: docker-deploy +title: Install HertzBeat via Docker +sidebar_label: Install via Docker +--- + +> Recommend to use docker deploy HertzBeat + + +1. Download and install the Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/)。 + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. pull HertzBeat Docker mirror + you can look up the mirror version TAG in [dockerhub mirror repository](https://hub.docker.com/r/tancloud/hertzbeat/tags) + or in [quay.io mirror repository](https://quay.io/repository/tancloud/hertzbeat) + ```shell + $ docker pull tancloud/hertzbeat + ``` + or + ```shell + $ docker pull quay.io/tancloud/hertzbeat + ``` + +3. Mounted HertzBeat configuration file (optional) + Create `application.yml` in the host directory, eg:`/opt/application.yml` + For the complete content of the configuration file, see the project repository [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml). + You can modify the configuration file according to your needs. + - If you need to use email to send alarms, you need to replace the email server parameters `spring.mail` in `application.yml` + - **Recommended** If you need to use an external Mysql database to replace the built-in H2 database, you need to replace the `spring.datasource` parameter in `application.yml` For specific steps, see [Using Mysql to replace H2 database](mysql-change) + - **Recommended** If you need to use the time series database TDengine to store indicator data, you need to replace the `warehouse.store.td-engine` parameter in `application.yml` for specific steps, see [Using TDengine to store metrics data](tdengine-init) + - **Recommended** If you need to use the time series database IotDB to store the indicator database, you need to replace the `warehouse.storeiot-db` parameter in `application.yml` For specific steps, see [Use IotDB to store metrics data](iotdb-init) + +4. Mounted the account file(optional) + HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` + If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. + Create `sureness.yml` in the host directory,eg:`/opt/sureness.yml` + The configuration file content refer to project repository [/script/sureness.yml](https://github.com/dromara/hertzbeat/blob/master/script/sureness.yml) + For detail steps, please refer to [Configure Account Password](account-modify) + +5. Start the HertzBeat Docker container + +```shell +$ docker run -d -p 1157:1157 \ + -e LANG=zh_CN.UTF-8 \ + -e TZ=Asia/Shanghai \ + -v /opt/data:/opt/hertzbeat/data \ + -v /opt/logs:/opt/hertzbeat/logs \ + -v /opt/application.yml:/opt/hertzbeat/config/application.yml \ + -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml \ + --name hertzbeat tancloud/hertzbeat +``` + + This command starts a running HertzBeat Docker container with mapping port 1157. If existing processes on the host use the port, please modify host mapped port. + - `docker run -d` : Run a container in the background via Docker + - `-p 1157:1157` : Mapping container ports to the host + - `-e LANG=zh_CN.UTF-8` : (optional) set the LANG + - `-e TZ=Asia/Shanghai` : (optional) set the TimeZone + - `-v /opt/data:/opt/hertzbeat/data` : (optional, data persistence) Important⚠️ Mount the H2 database file to the local host, to ensure that the data is not lost due creating or deleting container. + - `-v /opt/logs:/opt/hertzbeat/logs` : (optional, if you don't have a need, just delete it) Mount the log file to the local host, to ensure the log will not be lost due creating or deleting container. + - `-v /opt/application.yml:/opt/hertzbeat/config/application.yml` : (optional, if you don't have a need, just delete it) Mount the local configuration file into the container which has been modified in the previous step, namely using the local configuration file to cover container configuration file. + - `-v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (optional, if you don't have a need, just delete it) Mount account configuration file modified in the previous step into the container. Delete this command parameters if no needs. + - `--name hertzbeat` : Naming container name hertzbeat + - `tancloud/hertzbeat` : Use the pulled latest HertzBeat official application mirror to start the container. **Use `quay.io/tancloud/hertzbeat` instead if you pull `quay.io` docker image.** + +6. Begin to explore HertzBeat + + Access http://ip:1157/ using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +**HAVE FUN** + +### FAQ + +**The most common problem is network problems, please check in advance** + +1. **MYSQL, TDENGINE, IoTDB and HertzBeat are deployed on the same host by Docker,HertzBeat use localhost or 127.0.0.1 connect to the database but fail** +The problems lies in Docker container failed to visit and connect localhost port. Because the docker default network mode is Bridge mode which can't access local machine through localhost. +> Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. +> Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + +2. **According to the process deploy,visit http://ip:1157/ no interface** +Please refer to the following points to troubleshoot issues: +> 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. +> 2:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. +> 3:`docker logs hertzbeat` Check whether the container log has errors. If you haven't solved the issue, report it to the communication group or community. + +3. **Log an error TDengine connection or insert SQL failed** +> 1:Check whether database account and password configured is correct, the database is created. +> 2:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. + +4. **Historical monitoring charts have been missing data for a long time** +> 1:Check whether you configure Tdengine or IoTDB. No configuration means no historical chart data. +> 2:Check whether Tdengine database `hertzbeat` is created. +> 3: Check whether IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. + +5. If the history chart on the monitoring page is not displayed,popup [please configure time series database] +> As shown in the popup window,the premise of history chart display is that you need install and configure hertzbeat's dependency service - IoTDB or TDengine database. +> Installation and initialization this database refer to [TDengine Installation](tdengine-init) or [IoTDB Installation](iotdb-init) + +6. The historical picture of monitoring details is not displayed or has no data, and TDengine has been deployed +> Please confirm whether the installed TDengine version is near 2.4.0.12, version 3.0 and 2.2 are not compatible. + +7. The time series database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure dependent time series database] +> Please check if the configuration parameters are correct +> Is iot-db or td-engine enable set to true +> Note⚠️If both hertzbeat and IotDB, TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed +> You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-v1.3.x/start/greptime-init.md b/home/versioned_docs/version-v1.3.x/start/greptime-init.md new file mode 100644 index 00000000000..30de1857640 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/greptime-init.md @@ -0,0 +1,63 @@ +--- +id: greptime-init +title: Use Time Series Database GreptimeDB to Store Metrics Data (Optional) +sidebar_label: Use GreptimeDB Store Metrics +--- + +HertzBeat's historical data storage depends on the time series database GreptimeDB, TDengine or IoTDB, choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +GreptimeDB is an open-source time-series database with a special focus on scalability, analytical capabilities and efficiency. + +It's designed to work on infrastructure of the cloud era, and users benefit from its elasticity and commodity storage. + +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** + +### Install GreptimeDB via Docker +> Refer to the official website [installation tutorial](https://docs.greptime.com/getting-started/overview) +1. Download and install Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install GreptimeDB with Docker + +```shell +$ docker run -p 4000-4004:4000-4004 \ + -p 4242:4242 -v /opt/greptimedb:/tmp/greptimedb \ + --name greptime \ + greptime/greptimedb standalone start \ + --http-addr 0.0.0.0:4000 \ + --rpc-addr 0.0.0.0:4001 \ +``` + `-v /opt/greptimedb:/tmp/greptimedb` is local persistent mount of greptimedb data directory. `/opt/greptimedb` should be replaced with the actual local directory. + use```$ docker ps``` to check if the database started successfully + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.greptime` data source parameters, URL account and password. + +```yaml +warehouse: + store: + # disable jpa + jpa: + enabled: false + # enable greptime + greptime: + enabled: true + endpoint: localhost:4001 +``` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases Greptime, IoTDB or TDengine need to be configured? Can they both be used? + +> You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. + diff --git a/home/versioned_docs/version-v1.3.x/start/influxdb-init.md b/home/versioned_docs/version-v1.3.x/start/influxdb-init.md new file mode 100644 index 00000000000..6c2ae211c29 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/influxdb-init.md @@ -0,0 +1,71 @@ +--- +id: influxdb-init +title: Use Time Series Database InfluxDB to Store Metrics Data (Optional) +sidebar_label: Use InfluxDB Store Metrics +--- + +HertzBeat's historical data storage depends on the time series database InfluxDB, TDengine or IoTDB, choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +TDengine is the Time Series Data Platform where developers build IoT, analytics, and cloud applications. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** +Note⚠️ Need InfluxDB 1.x Version. + +### 1. Use HuaweiCloud GaussDB For Influx + +> Use [HuaweiCloud GaussDB For Influx](https://www.huaweicloud.com/product/gaussdbforinflux.html) + +> Get the `GaussDB For Influx` service url, username and password config. + +⚠️Note `GaussDB For Influx` enable SSL default, the service url should use `https:` + +### 2. Install TDengine via Docker +> Refer to the official website [installation tutorial](https://hub.docker.com/_/influxdb) +1. Download and install Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install InfluxDB with Docker + ``` + $ docker run -p 8086:8086 \ + -v /opt/influxdb:/var/lib/influxdb \ + influxdb:1.8 + ``` + `-v /opt/influxdb:/var/lib/influxdb` is local persistent mount of InfluxDB data directory. `/opt/influxdb` should be replaced with the actual local directory. + use```$ docker ps``` to check if the database started successfully + + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.influxdb` data source parameters, URL account and password. + +```yaml +warehouse: + store: + # disable jpa + jpa: + enabled: false + # enable influxdb + influxdb: + enabled: true + server-url: http://localhost:8086 + username: root + password: root + expire-time: '30d' + replication: 1 +``` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases InfluxDB, IoTDB and TDengine need to be configured? Can they both be used? + +> You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. diff --git a/home/versioned_docs/version-v1.3.x/start/iotdb-init.md b/home/versioned_docs/version-v1.3.x/start/iotdb-init.md new file mode 100644 index 00000000000..e3b9d64cde9 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/iotdb-init.md @@ -0,0 +1,78 @@ +--- +id: iotdb-init +title: Use Time Series Database IoTDB to Store Metrics Data (Optional) +sidebar_label: Use IoTDB Store Metrics +--- + +HertzBeat's historical data storage relies on the time series database IoTDB or TDengine, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +Apache IoTDB is a software system that integrates the collection, storage, management and analysis of time series data of the Internet of Things. We use it to store and analyze the historical data of monitoring indicators collected. Support V0.13+ version and V1.0.+ version. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** + +> If you already have an IoTDB environment, you can skip directly to the YML configuration step. + + +### Install IoTDB via Docker +> Refer to the official website [installation tutorial](https://iotdb.apache.org/UserGuide/V0.13.x/QuickStart/WayToGetIoTDB.html) +1. Download and install Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install IoTDB via Docker + +```shell +$ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ + -v /opt/iotdb/data:/iotdb/data \ + --name iotdb \ + apache/iotdb:0.13.3-node +``` + + `-v /opt/iotdb/data:/iotdb/data` is local persistent mount of TDengine data directory.`/iotdb/data` should be replaced with the actual local directory. + use```$ docker ps``` to check if the database started successfully + +3. Configure the database connection in hertzbeat `application.yml`configuration file + + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.iot-db` data source parameters, HOST account and password. + +``` +warehouse: + store: + # disable JPA + jpa: + enabled: false + # enable iot-db + iot-db: + enabled: true + host: 127.0.0.1 + rpc-port: 6667 + username: root + password: root + # org.dromara.hertzbeat.warehouse.config.IotDbVersion: V_0_13 || V_1_0 + version: V_0_13 + query-timeout-in-ms: -1 + # default '7776000000'(90days,unit:ms,-1:no-expire) + expire-time: '7776000000' +``` + +4. Restart HertzBeat + +### FAQ + +1. Do both the time series databases IoTDB and TDengine need to be configured? Can they both be used? +> You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. + +2. The historical chart of the monitoring page is not displayed, and pops up [Unable to provide historical chart data, please configure to rely on the time series database] +> As shown in the pop-up window, the premise of displaying the history chart is to install and configure the dependent services of hertzbeat - IotDB database or TDengine database + +3. The TDengine database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure the dependent time series database] +> Please check if the configuration parameters are correct +> Is td-engine enable set to true +> Note⚠️If both hertzbeat and TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed +> You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-v1.3.x/start/mysql-change.md b/home/versioned_docs/version-v1.3.x/start/mysql-change.md new file mode 100644 index 00000000000..403939bc6ab --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/mysql-change.md @@ -0,0 +1,57 @@ +--- +id: mysql-change +title: Use MYSQL Replace H2 Database to Store Metadata(Optional) +sidebar_label: Use MYSQL Instead of H2 +--- +MYSQL is a reliable relational database. In addition to default built-in H2 database, HertzBeat allow you to use MYSQL to store structured relational data such as monitoring information, alarm information and configuration information. + +> If you have the MYSQL environment, can be directly to database creation step. + +### Install MYSQL via Docker +1. Download and install the Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/)。 + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install MYSQl with Docker + ``` + $ docker run -d --name mysql -p 3306:3306 -v /opt/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 + ``` + `-v /opt/data:/var/lib/mysql` is local persistent mount of mysql data directory. `/opt/data` should be replaced with the actual local directory. + use ```$ docker ps``` to check if the database started successfully + +### Database creation +1. Enter MYSQL or use the client to connect MYSQL service + `mysql -uroot -p123456` +2. Create database named hertzbeat + `create database hertzbeat;` +3. Check if hertzbeat database has been successfully created + `show databases;` + +### Modify hertzbeat's configuration file application.yml and switch data source + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `spring.database` data source parameters, URL account and password. +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL +``` + Specific replacement parameters are as follows and you need to configure account according to the mysql environment: +```yaml +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false +``` + +**Start HertzBeat visit http://ip:1157/ on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/start/package-deploy.md b/home/versioned_docs/version-v1.3.x/start/package-deploy.md new file mode 100644 index 00000000000..3f9244acff2 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/package-deploy.md @@ -0,0 +1,81 @@ +--- +id: package-deploy +title: Install HertzBeat via Package +sidebar_label: Install via Package +--- +> You can install and run HertzBeat on Linux Windows Mac system, and CPU supports X86/ARM64. Due to the installation package itself does not include the JAVA runtime environment, you need to prepare JAVA runtime environment in advance. + +1. Install JAVA runtime environment-refer to [official website](http://www.oracle.com/technetwork/java/javase/downloads/index.html) + requirement:JDK11 ENV + download JAVA installation package: [mirror website](https://repo.huaweicloud.com/java/jdk/) + After installation use command line to check whether you install it successfully. + ``` + $ java -version + java version "11.0.12" + Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237) + Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode) + + ``` + +2. Download HertzBeat installation package + Download installation package corresponding to your system environment + - download from [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) repository + - download from [GITHUB Release](https://github.com/dromara/hertzbeat/releases) repository + +3. Configure HertzBeat's configuration file(optional) + Unzip the installation package to the host eg: /opt/hertzbeat + ``` + $ tar zxvf hertzbeat-[version number].tar.gz + ``` + Modify the configuration file `hertzbeat/config/application.yml` params according to your needs. + - If you need to use email to send alarms, you need to replace the email server parameters `spring.mail` in `application.yml` + - **Recommended** If you need to use an external Mysql database to replace the built-in H2 database, you need to replace the `spring.datasource` parameter in `application.yml` For specific steps, see [Using Mysql to replace H2 database](mysql-change) + - **Recommended** If you need to use the time series database TDengine to store indicator data, you need to replace the `warehouse.store.td-engine` parameter in `application.yml` for specific steps, see [Using TDengine to store metrics data](tdengine-init) + - **Recommended** If you need to use the time series database IotDB to store the indicator database, you need to replace the `warehouse.storeiot-db` parameter in `application.yml` For specific steps, see [Use IotDB to store metrics data](iotdb-init) + +4. Configure the account file(optional) + HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` + If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. + For detail steps, please refer to [Configure Account Password](account-modify) + +5. Start the service + Execute the startup script `startup.sh` in the installation directory `hertzbeat/bin/` + ``` + $ ./startup.sh + ``` + +⚠️Note, If there are multiple Java environments configured in the system environment variables and `java11` is not included, modify `$ ./startup.sh` or `startup.bat` to specify the Java path manually. +In `startup.sh`, add `JAVA_HOME=${JAVA_DIR}` at the first line. +In `startup.bat`, modify `javaw` to the path of `java11`, such as `C:\Users\user\.jdks\corretto-11.0.18\bin\javaw` + +6. Begin to explore HertzBeat + + Access http://ip:1157/ using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +**HAVE FUN** + +### FAQ + +1. **According to the process deploy,visit http://ip:1157/ no interface** + Please refer to the following points to troubleshoot issues: +> 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. +> 2:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `hertzbeat/config/application.yml`. +> 3:Check whether the running log has errors in `hertzbeat/logs/` directory. If you haven't solved the issue, report it to the communication group or community. + +2. **Log an error TDengine connection or insert SQL failed** +> 1:Check whether database account and password configured is correct, the database is created. +> 2:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. + +3. **Historical monitoring charts have been missing data for a long time** +> 1:Check whether you configure Tdengine or IoTDB. No configuration means no historical chart data. +> 2:Check whether Tdengine database `hertzbeat` is created. +> 3: Check whether IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. + +4. **The historical picture of monitoring details is not displayed or has no data, and TDengine has been deployed** +> Please confirm whether the installed TDengine version is near 2.4.0.12, version 3.0 and 2.2 are not compatible. + +5. **The time series database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure dependent time series database]** +> Please check if the configuration parameters are correct +> Is iot-db or td-engine enable set to true +> Note⚠️If both hertzbeat and IotDB, TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed +> You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-v1.3.x/start/postgresql-change.md b/home/versioned_docs/version-v1.3.x/start/postgresql-change.md new file mode 100644 index 00000000000..f2b8aa3fc12 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/postgresql-change.md @@ -0,0 +1,73 @@ +--- +id: postgresql-change +title: Use PostgreSQL Replace H2 Database to Store Metadata(Optional) +sidebar_label: Use PostgreSQL Instead of H2 +--- +PostgreSQL is a RDBMS emphasizing extensibility and SQL compliance. In addition to default built-in H2 database, HertzBeat allow you to use PostgreSQL to store structured relational data such as monitoring information, alarm information and configuration information. + +> If you have the PostgreSQL environment, can be directly to database creation step. + +### Install PostgreSQL via Docker +1. Download and install the Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/)。 + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install PostgreSQL with Docker + ``` + $ docker run -d --name postgresql -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgresql:15 + ``` + use```$ docker ps```to check if the database started successfully +3. Create database in container manually or with [script](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose/hertzbeat-postgresql-iotdb/conf/sql/schema.sql). + +### Database creation +1. Enter postgreSQL or use the client to connect postgreSQL service + ``` + su - postgres + psql + ``` +2. Create database named hertzbeat + `CREATE DATABASE hertzbeat;` +3. Check if hertzbeat database has been successfully created + `\l` + +### Modify hertzbeat's configuration file application.yml and switch data source + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `spring.database` data source parameters, URL account and password. +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL +``` +Specific replacement parameters are as follows and you need to configure account, ip, port according to the postgresql environment: +```yaml +spring: + config: + activate: + on-profile: prod + datasource: + driver-class-name: org.postgresql.Driver + username: root + password: 123456 + url: jdbc:postgresql://127.0.0.1:5432/hertzbeat + hikari: + max-lifetime: 120000 + + jpa: + database: postgresql + hibernate: + ddl-auto: update + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQLDialect +``` + +**Start HertzBeat visit http://ip:1157/ on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/start/quickstart.md b/home/versioned_docs/version-v1.3.x/start/quickstart.md new file mode 100644 index 00000000000..41ddcc65c04 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/quickstart.md @@ -0,0 +1,55 @@ +--- +id: quickstart +title: Quick Start +sidebar_label: Quick Start +--- + +### 🐕 Quick Start + +- If you don’t want to deploy but use it directly, we provide [SAAS Monitoring Cloud-TanCloud](https://console.tancloud.cn), **[Log In And Register For Free](https://console.tancloud.cn)**. +- If you want to deploy HertzBeat local, please refer to the following Deployment Documentation for operation. + +### 🍞 Install HertzBeat + +> HertzBeat supports installation through source code, docker or package, cpu support X86/ARM64. + +##### 1:Install quickly via docker + +1. Just one command to get started: + +```docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat``` + +```or use quay.io (if dockerhub network connect timeout)``` + +```docker run -d -p 1157:1157 --name hertzbeat quay.io/tancloud/hertzbeat``` + +2. Access `localhost:1157` to start, default account: `admin/hertzbeat` + +Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.com/docs/start/docker-deploy) + +##### 2:Install via package + +1. Download the installation package [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) +2. Need Jdk Environment, `jdk11` +3. [optional]Configure the HertzBeat configuration yml file `hertzbeat/config/application.yml` +4. Run shell `$ ./startup.sh ` +5. Access `localhost:1157` to start, default account: `admin/hertzbeat` + +Detailed config refer to [Install HertzBeat via Package](https://hertzbeat.com/docs/start/package-deploy) + +##### 3:Start via source code + +1. Local source code debugging needs to start the back-end project manager and the front-end project web-app. +2. Backend:need `maven3+`, `java11`, `lombok`, start the manager service. +3. Web:need `nodejs npm angular-cli` environment, Run `ng serve --open` in `web-app` directory after backend startup. +4. Access `localhost:4200` to start, default account: `admin/hertzbeat` + +Detailed steps refer to [CONTRIBUTING](../others/contributing) + +##### 4:Install All(hertzbeat+mysql+iotdb/tdengine) via Docker-compose + +Install and deploy the mysql database, iotdb/tdengine database and hertzbeat at one time through [docker-compose deployment script](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose). + +Detailed steps refer to [Install via Docker-Compose](https://github.com/dromara/hertzbeat/tree/master/script/docker-compose) + +**HAVE FUN** diff --git a/home/versioned_docs/version-v1.3.x/start/rainbond-deploy.md b/home/versioned_docs/version-v1.3.x/start/rainbond-deploy.md new file mode 100644 index 00000000000..1ff4de9428f --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/rainbond-deploy.md @@ -0,0 +1,32 @@ +--- +id: rainbond-deploy +title: Use Rainbond Deploy HertzBeat +sidebar_label: Install via Rainbond +--- + +If you are unfamiliar with Kubernetes, and want to install HertzBeat in Kubernetes, you can use Rainbond to deploy. Rainbond is a cloud-native application management platform built on Kubernetes and simplifies the application deployment to Kubernetes. + +## Prerequisites + +To install Rainbond, please refer to [Rainbond Quick Install](https://www.rainbond.com/docs/quick-start/quick-install)。 + +## Deploy HertzBeat + +After logging in Rainbond, click Market in the left menu, switch to open source app store, and search HertzBeat in the search box, and click the Install button. + +![](/img/docs/start/install-to-rainbond-en.png) + +Fill in the following information, and click Confirm button to install. + +* Team: select a team or create a new team +* Cluster: select a cluster +* Application: select an application or create a new application +* Version: select a version + +After installation, HertzBeat can be accessed via the Access button. + +![](/img/docs/start/hertzbeat-topology-en.png) + +:::tip +HertzBeat installed via Rainbond, External Mysql database and Redis and IoTDB are used by default, The HertzBeat configuration file is also mounted, which can be modified in `Components -> Environment Configuration -> Configuration File Settings`. +::: diff --git a/home/versioned_docs/version-v1.3.x/start/sslcert-practice.md b/home/versioned_docs/version-v1.3.x/start/sslcert-practice.md new file mode 100644 index 00000000000..48ef6347f73 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/sslcert-practice.md @@ -0,0 +1,118 @@ +--- +id: ssl-cert-practice +title: SSL Certificate Monitor Practice +sidebar_label: Practice Example +--- + +Most websites now support HTTPS by default. The certificate we apply for is usually 3 months or 1 year. It is easy to expire the SSL certificate over time, but we did not find it the first time, or did not update the certificate in time before it expired. + +This article introduces how to use the hertzbeat monitoring tool to detect the validity period of our website's SSL certificate, and send us a warning message when the certificate expires or a few days before the certificate expires. + +#### What is HertzBeat + +HertzBeat is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). + +**Official website: https://hertzbeat.com | https://tancloud.cn** + +github: https://github.com/dromara/hertzbeat +gitee: https://gitee.com/dromara/hertzbeat + +#### Install HertzBeat + +1. If you don't want to install, you can use the cloud service directly [TanCloud exploration cloud console.tancloud.cn](https://console.tancloud.cn) + +2. The `docker` environment can be installed with just one command + +`docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat` + +3. After the installation is successful, the browser can access `localhost:1157` to start, the default account password is `admin/hertzbeat` + +#### Monitoring SSL certificates + +1. Click Add SSL Certificate Monitor + +> System Page -> Monitor Menu -> SSL Certificate -> Add SSL Certificate + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd53f343a5b54feab62e71458d076441~tplv-k3u1fbpfcp-zoom-1.image) + +2. Configure the monitoring website + +> Here we take the example of monitoring Baidu website, configure monitoring host domain name, name, collection interval, etc. +> Click OK Note ⚠️Before adding, it will test the connectivity of the website by default, and the connection will be successful before adding. Of course, you can also gray out the **Test or not** button. + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ad1154670648413bb82c8bdeb5b13609~tplv-k3u1fbpfcp-zoom-1.image) + +3. View the detection index data + +> In the monitoring list, you can view the monitoring status, and in the monitoring details, you can view the indicator data chart, etc. + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f874b45e909c4bb0acdd28b3fb034a61~tplv-k3u1fbpfcp-zoom-1.image) + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ef5d7443f8c04818ae5aa28d421203be~tplv-k3u1fbpfcp-zoom-1.image) + + + +4. Set the threshold (triggered when the certificate expires) + +> System Page -> Alarms -> Alarm Thresholds -> New Thresholds + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8d6205172d43463aa34e534477f132f1~tplv-k3u1fbpfcp-zoom-1.image) + +> Configure the threshold, select the SSL certificate indicator object, configure the alarm expression-triggered when the indicator `expired` is `true`, that is, `equals(expired,"true")`, set the alarm level notification template information, etc. + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/83d17b381d994f26a6240e01915b2001~tplv-k3u1fbpfcp-zoom-1.image) + +> Associating thresholds with monitoring, in the threshold list, set which monitoring this threshold applies to. + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9b9063d7bcf9454387be0491fc382bd1~tplv-k3u1fbpfcp-zoom-1.image) + + + + +5. Set the threshold (triggered one week before the certificate expires) + +> In the same way, add a new configuration threshold and configure an alarm expression - when the indicator expires timestamp `end_timestamp`, the `now()` function is the current timestamp, if the configuration triggers an alarm one week in advance: `end_timestamp <= (now( ) + 604800000)` , where `604800000` is the 7-day total time difference in milliseconds. + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d6f837f57c247e09f668f60eff4a0ff~tplv-k3u1fbpfcp-zoom-1.image) + +> Finally, you can see the triggered alarm in the alarm center. + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a61b23127524976b2c209ce0ca6a339~tplv-k3u1fbpfcp-zoom-1.image) + + +6. Alarm notification (in time notification via Dingding WeChat Feishu, etc.) + +> Monitoring Tool -> Alarm Notification -> New Receiver + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7f36956060ef410a82bbecafcbb2957f~tplv-k3u1fbpfcp-zoom-1.image) + +For token configuration such as Dingding WeChat Feishu, please refer to the help document + +https://hertzbeat.com/docs/help/alert_dingtalk +https://tancloud.cn/docs/help/alert_dingtalk + +> Alarm Notification -> New Alarm Notification Policy -> Enable Notification for the Recipient Just Configured + + +![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d976343e81f843138344a039f3aff8a3~tplv-k3u1fbpfcp-zoom-1.image) + +7. OK When the threshold is triggered, we can receive the corresponding alarm message. If there is no notification, you can also view the alarm information in the alarm center. + +---- + +#### Finish! + +The practice of monitoring SSL certificates is here. Of course, for hertzbeat, this function is just the tip of the iceberg. If you think hertzbeat is a good open source project, please give us a Gitee star on GitHub, thank you very much. Thank you for your support. Refill! + +**github: https://github.com/dromara/hertzbeat** + +**gitee: https://gitee.com/dromara/hertzbeat** diff --git a/home/versioned_docs/version-v1.3.x/start/tdengine-init.md b/home/versioned_docs/version-v1.3.x/start/tdengine-init.md new file mode 100644 index 00000000000..1a851fea3c5 --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/start/tdengine-init.md @@ -0,0 +1,114 @@ +--- +id: tdengine-init +title: Use Time Series Database TDengine to Store Metrics Data (Optional) +sidebar_label: Use TDengine Store Metrics +--- + +HertzBeat's historical data storage depends on the time series database TDengine or IoTDB, choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +TDengine is an open-source IoT time-series database, which we use to store the collected historical data of monitoring indicators. Pay attention to support ⚠️ 3.x version. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** +Note⚠️ Need TDengine 3.x Version. + +> If you have TDengine environment, can directly skip to create a database instance. + + +### Install TDengine via Docker +> Refer to the official website [installation tutorial](https://docs.taosdata.com/get-started/docker/) +1. Download and install Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). + After the installation you can check if the Docker version normally output at the terminal. + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` +2. Install TDengine with Docker + ```shell + $ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \ + -v /opt/taosdata:/var/lib/taos \ + --name tdengine -e TZ=Asia/Shanghai \ + tdengine/tdengine:3.0.4.0 + ``` + `-v /opt/taosdata:/var/lib/taos` is local persistent mount of TDengine data directory. `/opt/taosdata` should be replaced with the actual local directory. + `-e TZ="Asia/Shanghai"` can set time zone for TDengine.Set up the corresponding time zone you want. + use```$ docker ps``` to check if the database started successfully + +### Create database instance + +1. Enter database Docker container + ``` + $ docker exec -it tdengine /bin/bash + ``` +2. Create database named hertzbeat + After entering the container,execute `taos` command as follows: + + ``` + root@tdengine-server:~/TDengine-server# taos + Welcome to the TDengine shell from Linux, Client Version + Copyright (c) 2020 by TAOS Data, Inc. All rights reserved. + taos> + ``` + + execute commands to create database + + ``` + taos> show databases; + taos> CREATE DATABASE hertzbeat KEEP 90 DURATION 10 BUFFER 16; + ``` + + The above statements will create a database named hertzbeat. The data will be saved for 90 days (more than 90 days data will be automatically deleted). + A data file every 10 days, memory blocks buffer is 16MB. + +3. Check if hertzbeat database has been created success + + ``` + taos> show databases; + taos> use hertzbeat; + ``` + +**Note⚠️If you install TDengine using package** + +> In addition to start the server,you must execute `systemctl start taosadapter` to start adapter + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file [/script/application.yml](https://github.com/dromara/hertzbeat/raw/master/script/application.yml) + Note⚠️The docker container way need to mount application.yml file locally,while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.td-engine` data source parameters, URL account and password. + +```yaml +warehouse: + store: + # disable jpa + jpa: + enabled: false + # enable td-engine + td-engine: + enabled: true + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:TAOS-RS://localhost:6041/hertzbeat + username: root + password: taosdata +``` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases IoTDB and TDengine need to be configured? Can they both be used? +> You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. + +2. The historical chart of the monitoring page is not displayed, and pops up [Unable to provide historical chart data, please configure to rely on the time series database] +> As shown in the pop-up window, the premise of displaying the history chart is to install and configure the dependent services of hertzbeat - IotDB database or TDengine database + +3. The historical picture of monitoring details is not displayed or has no data, and TDengine has been deployed +> Please confirm whether the installed TDengine version is 3.x, version 2.x are not compatible. + +4. The TDengine database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure the dependent time series database] +> Please check if the configuration parameters are correct +> Is td-engine enable set to true +> Note⚠️If both hertzbeat and TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed +> You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-v1.3.x/template.md b/home/versioned_docs/version-v1.3.x/template.md new file mode 100644 index 00000000000..345f88d420d --- /dev/null +++ b/home/versioned_docs/version-v1.3.x/template.md @@ -0,0 +1,97 @@ +--- +id: template +title: Monitoring Template Here +sidebar_label: Monitoring Template +--- + +> Hertzbeat is an open source, real-time monitoring tool with custom-monitor and agentLess. + +> We make protocols such as `Http, Jmx, Ssh, Snmp, Jdbc` configurable, and you only need to configure `YML` online to collect any metrics you want. +> Do you believe that you can immediately adapt a new monitoring type such as K8s or Docker just by configuring online? + +Here is the architecture. + +![hertzBeat](/img/docs/hertzbeat-arch.png) + +**We define all monitoring collection types (mysql, website, jvm, k8s) as yml templates, and users can import these templates into the hertzbeat system to support corresponding types of monitoring, which is very convenient!** + +![](/img/docs/advanced/extend-point-1.png) + +**Welcome everyone to contribute your customized general monitoring type YML template during use. The available templates are as follows:** + +### Application service monitoring + + 👉 [Website monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml)
+ 👉 [HTTP API](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml)
+ 👉 [PING Connectivity](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml)
+ 👉 [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml)
+ 👉 [Full site monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml)
+ 👉 [SSL Cert monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml)
+ 👉 [JVM monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml)
+ 👉 [SpringBoot2.0](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml)
+ 👉 [SpringBoot3.0](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml)
+ 👉 [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml)
+ +### Database monitoring + + 👉 [MYSQL database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml)
+ 👉 [MariaDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml)
+ 👉 [PostgreSQL database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml)
+ 👉 [SqlServer database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml)
+ 👉 [Oracle database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml)
+ 👉 [DM database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml)
+ 👉 [OpenGauss database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml)
+ 👉 [IoTDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml)
+ 👉 [ElasticSearch database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml)
+ 👉 [MongoDB database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml)
+ 👉 [ClickHouse database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml)
+ 👉 [Redis database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml)
+ 👉 [Redis Sentinel database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml)
+ 👉 [Redis Cluster database monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml)
+ +### Operating system monitoring + + 👉 [Linux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml)
+ 👉 [Windows operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml)
+ 👉 [Ubuntu operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml)
+ 👉 [Centos operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml)
+ 👉 [EulerOS operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml)
+ 👉 [Fedora CoreOS operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml)
+ 👉 [OpenSUSE operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml)
+ 👉 [Rocky Linux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml)
+ 👉 [Red Hat operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml)
+ 👉 [FreeBSD operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml)
+ 👉 [AlmaLinux operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml)
+ 👉 [Debian operating system monitoring](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml)
+ + +### Middleware monitoring + + 👉 [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml)
+ 👉 [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml)
+ 👉 [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml)
+ 👉 [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml)
+ 👉 [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml)
+ 👉 [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml)
+ 👉 [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml)
+ 👉 [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml)
+ 👉 [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml)
+ 👉 [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml)
+ + +### CloudNative monitoring + + 👉 [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml)
+ 👉 [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml)
+ +### Network monitoring + + 👉 [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml)
+ 👉 [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml)
+ 👉 [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml)
+ 👉 [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml)
+ 👉 [H3CSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml)
+ +--- + +**Have Fun!** diff --git a/home/versioned_sidebars/version-v1.3.x-sidebars.json b/home/versioned_sidebars/version-v1.3.x-sidebars.json new file mode 100644 index 00000000000..cc9c0d6a176 --- /dev/null +++ b/home/versioned_sidebars/version-v1.3.x-sidebars.json @@ -0,0 +1,194 @@ +{ + "docs": [ + { + "type": "category", + "label": "quickstart", + "items": [ + "introduce", + { + "type": "link", + "label": "Cloud Service", + "href": "https://console.tancloud.cn" + }, + "start/quickstart", + "start/docker-deploy", + "start/package-deploy", + { + "type": "link", + "label": "Install via HuaweiCloud", + "href": "https://marketplace.huaweicloud.com/contents/0477015c-ad63-4522-a308-816861769f0a#productid=OFFI863735781612109824" + }, + "start/rainbond-deploy", + "start/iotdb-init", + "start/tdengine-init", + "start/greptime-init", + "start/influxdb-init", + "start/mysql-change", + "start/postgresql-change", + "start/account-modify", + "start/custom-config", + "start/ssl-cert-practice" + ] + }, + { + "type": "category", + "label": "custom", + "items": [ + "advanced/extend-point", + "advanced/extend-tutorial", + { + "type": "category", + "label": "http", + "items": [ + "advanced/extend-http", + "advanced/extend-http-default", + "advanced/extend-http-jsonpath", + "advanced/extend-http-example-hertzbeat", + "advanced/extend-http-example-token" + ] + }, + { + "type": "category", + "label": "jdbc", + "items": [ + "advanced/extend-jdbc" + ] + }, + { + "type": "category", + "label": "ssh", + "items": [ + "advanced/extend-ssh" + ] + }, + { + "type": "category", + "label": "jmx", + "items": [ + "advanced/extend-jmx" + ] + }, + { + "type": "category", + "label": "snmp", + "items": [ + "advanced/extend-snmp" + ] + } + ] + }, + { + "type": "doc", + "id": "template" + }, + { + "type": "category", + "label": "help", + "items": [ + "help/guide", + { + "type": "category", + "label": "service", + "items": [ + "help/website", + "help/api", + "help/ping", + "help/port", + "help/fullsite", + "help/ssl_cert", + "help/jvm", + "help/springboot2" + ] + }, + { + "type": "category", + "label": "database", + "items": [ + "help/mysql", + "help/mariadb", + "help/postgresql", + "help/sqlserver", + "help/oracle", + "help/dm", + "help/opengauss", + "help/iotdb", + "help/redis" + ] + }, + { + "type": "category", + "label": "os", + "items": [ + "help/linux", + "help/windows", + "help/ubuntu", + "help/centos" + ] + }, + { + "type": "category", + "label": "mid", + "items": [ + "help/zookeeper", + "help/kafka", + "help/tomcat", + "help/shenyu", + "help/dynamic_tp", + "help/rabbitmq", + "help/activemq", + "help/jetty", + "help/hadoop" + ] + }, + { + "type": "category", + "label": "cloud-native", + "items": [ + "help/docker", + "help/kubernetes" + ] + }, + { + "type": "category", + "label": "threshold", + "items": [ + "help/alert_threshold", + "help/alert_threshold_expr" + ] + }, + { + "type": "category", + "label": "notice", + "items": [ + "help/alert_email", + "help/alert_webhook", + "help/alert_discord", + "help/alert_slack", + "help/alert_telegram", + "help/alert_wework", + "help/alert_dingtalk", + "help/alert_feishu", + "help/alert_console", + "help/alert_enterprise_wechat_app", + "help/alert_smn" + ] + }, + "help/issue" + ] + }, + { + "type": "category", + "label": "Others", + "items": [ + "others/developer", + "others/contributing", + "others/contact", + "others/design", + "others/sponsor", + "others/private", + "others/legal", + "others/resource" + ] + } + ] +} diff --git a/home/versions.json b/home/versions.json index 7f1acaf31ca..43aeb061cd3 100644 --- a/home/versions.json +++ b/home/versions.json @@ -1,4 +1,5 @@ [ + "v1.3.x", "v1.1.x", "v1.0.0" ] diff --git a/script/docker/collector/Dockerfile b/script/docker/collector/Dockerfile index d8ba8701799..24619fbf457 100644 --- a/script/docker/collector/Dockerfile +++ b/script/docker/collector/Dockerfile @@ -1,14 +1,14 @@ FROM openjdk:11.0.16-jre-slim-buster +ARG VERSION + MAINTAINER tancloud "tomsun28@outlook.com" -ADD hertzbeat-collector-1.3.2.tar /opt/ +ADD hertzbeat-collector-${VERSION}.tar /opt/ -ENV TZ=Asia/Shanghai +#ENV TZ=Asia/Shanghai #ENV LANG=zh_CN.UTF-8 -EXPOSE 1159 - WORKDIR /opt/hertzbeat-collector/ ENTRYPOINT ["./bin/entrypoint.sh"] diff --git a/script/docker/collector/build.sh b/script/docker/collector/build.sh new file mode 100755 index 00000000000..eb09aae7d43 --- /dev/null +++ b/script/docker/collector/build.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# 调整脚本目录 +cd `dirname $0` +# 当前脚本目录 +CURRENT_DIR=`pwd` +# 跳转制品目录 +cd ../../../collector/target +# 自动捕获hertzbeat版本 +VERSION=`ls *.tar| awk -F"-" '{print $3}' | awk -F".tar" '{print $1}'` +# 强制使用版本参数 +if [ -n "$1" ]; then + VERSION="$1"; +fi + +# 编译上下文目录 +CONTEXT_DIR=`pwd` + +echo "docker buildx build --platform linux/arm64,linux/amd64 -t tancloud/hertzbeat-collector:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push" + +#docker buildx build --platform linux/arm64,linux/amd64 -t tancloud/hertzbeat:v"$VERSION" -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push +#docker build -t tancloud/hertzbeat:latest -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" + +echo "docker buildx build --platform linux/arm64,linux/amd64 -t quay.io/tancloud/hertzbeat-collector:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push" + +#docker buildx build --platform linux/arm64,linux/amd64 -t quay.io/tancloud/hertzbeat-collector:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push diff --git a/script/docker/server/Dockerfile b/script/docker/server/Dockerfile index 7c7eba9c56d..7a0c7954dc3 100644 --- a/script/docker/server/Dockerfile +++ b/script/docker/server/Dockerfile @@ -11,10 +11,10 @@ RUN mkdir /var/run/sshd ADD hertzbeat-${VERSION}.tar /opt/ -ENV TZ=Asia/Shanghai +#ENV TZ=Asia/Shanghai #ENV LANG=zh_CN.UTF-8 -EXPOSE 1157 22 +EXPOSE 1157 1158 22 WORKDIR /opt/hertzbeat/ diff --git a/script/docker/server/build.sh b/script/docker/server/build.sh index e57fc4957a4..ac0f2b0214b 100755 --- a/script/docker/server/build.sh +++ b/script/docker/server/build.sh @@ -31,7 +31,12 @@ fi # 编译上下文目录 CONTEXT_DIR=`pwd` -echo "docker build -t tancloud/hertzbeat:$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION"" +echo "docker buildx build --platform linux/arm64,linux/amd64 -t tancloud/hertzbeat:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push" -docker build -t tancloud/hertzbeat:"$VERSION" -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" +#docker buildx build --platform linux/arm64,linux/amd64 -t tancloud/hertzbeat:v"$VERSION" -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push #docker build -t tancloud/hertzbeat:latest -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" + + +echo "docker buildx build --platform linux/arm64,linux/amd64 -t quay.io/tancloud/hertzbeat:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push" + +#docker buildx build --platform linux/arm64,linux/amd64 -t quay.io/tancloud/hertzbeat:v$VERSION -f $CURRENT_DIR/Dockerfile $CONTEXT_DIR --build-arg VERSION="$VERSION" --push