Project: HertzBeat (Observability and Analysis / Observability)
File: introduce.md

id: introduce title: HertzBeat sidebar_label: Introduce slug: / A real-time monitoring system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities. ](https://discord.gg/Fb6M73htGr) ](https://www.reddit.com/r/hertzbeat/) ](https://twitter.com/hertzbeat1024) ](https://www.bestpractices.dev/projects/8139) ](https://hub.docker.com/repository/docker/apache/hertzbeat/general) ](https://artifacthub.io/packages/search?repo=hertzbeat) ](https://qm.qq.com/q/FltGGGIX2m) ](https://www.youtube.com/channel/UCri75zfWX0GHqJFPENEbLow) Home: Global | China Cloud: is an easy-to-use, open source, real-time monitoring system with agentless, high performance cluster, prometheus-compatible, offers powerful custom monitoring and status page building capabilities. Combines monitoring, alarm, and notification* features into one platform, and supports monitoring for web service, program, database, cache, os, webserver, middleware, bigdata, cloud-native, network, custom and more. Easy to use and agentless, web-based and with one-click monitoring and alerting, zero learning curve. Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` 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. Compatible with the `Prometheus` ecosystem and more, can monitoring what `Prometheus` can monitoring with few clicks on webui. 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` `Dingtalk` `WeChat` `FeiShu` `Webhook` `SMS` `ServerChan`. Provides powerful status page building capabilities, easily communicate the real-time status of your service to users. HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help users quickly build their own monitoring system. Before we discuss the customizable monitoring capabilities of HertzBeat, which we mentioned at the beginning, let's introduce the different monitoring templates of HertzBeat. And it is because of this monitoring template design that the advanced features come later. HertzBeat itself did not create a data collection protocol for the monitoring client to adapt to. Instead, HertzBeat makes full use of the existing ecosystem, `SNMP protocol` to collect information from network switches and routers, `JMX specification` to collect information from Java applications, `JDBC specification` to collect information from datasets, `SSH` to directly connect to scripts to get the display information, `HTTP+ (JsonPath | prometheus, etc.) ` to parse the information from API interfaces, `IPMI protocol to collect server information, and so on. HertzBeat uses these existing standard protocols or specifications, makes them abstractly configurable, and finally makes them all available in the form of YML format monitoring templates that can be written to create templates that use these protocols to collect any desired metrics data. Do you believe that users can just write a monitoring template on the UI page, click save and immediately adapt a new monitoring type like `K8s` or `Docker`? There are a lot of built-in monitoring templates for users to add directly on the page, one monitoring type corresponds to one YML monitoring template. , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , And More Your Custom Template. Notified Support `Discord` `Slack` `Telegram` `Email` `Dingtalk` `WeChat` `FeiShu` `Webhook` `SMS` `ServerChan`. From the previous introduction of Monitoring Templates, it is clear that `HertzBeat` has powerful customization

Each monitor type is considered as a monitor template, no matter it is built-in or user-defined. You can easily add, modify and delete indicators by modifying the monitoring template. The templates contain a series of functions such as protocol configuration, environment variables, metrics conversion, metrics calculation, units conversion, metrics collection, etc., which help users to collect the metrics they want. For users who have used various systems, the most troublesome thing is the installation, deployment, debugging and upgrading of various `agents'. You need to install one `agent` per host, and several corresponding `agents` to monitor different application middleware, and the number of monitoring can easily reach thousands, so writing a batch script may ease the burden. The problem of whether the version of `agent` is compatible with the main application, debugging the communication between `agent` and the main application, upgrading the `agent` synchronization and so on and so forth, are all big headaches. The principle of `HertzBeat` is to use different protocols to connect directly to the end system, and use the `PULL` form to pull the collected data, without the need for the user to deploy and install `Agent` | `Exporter` on the host of the end, etc. For example, monitoring the `linux operating system`. For example, if you want to monitor `linux OS`, you can just input the IP port account password or key on `HertzBeat` side. For example, to monitor `linux OS`, just enter your ip/port account password or key in `HertzBeat`. Password and other sensitive information is encrypted on all links. When the number of monitors rises exponentially, the collection performance drops or the environment is unstable and prone to single point of failure of the collectors, then our collector clusters come into play. HertzBeat supports the deployment of collector clusters and the horizontal expansion of multiple collector clusters to exponentially increase the number of monitorable tasks and collection performance. Monitoring tasks are self-scheduled in the collector cluster, single collector hangs without sensing the failure to migrate the collection tasks, and the newly added collector nodes are automatically scheduled to share the collection pressure. It is very easy to switch between stand-alone mode and cluster mode without additional component deployment. Two locations, three centers, multi-cloud environments, multi-isolated networks, you may have heard of these scenarios. When there is a need for a unified monitoring system to monitor the IT resources of different isolated networks, this is where our Cloud Edge Collaboration comes in. In an isolated network where multiple networks are not connected, we need to deploy a monitoring system in each network in the previous solution, which leads to data non-interoperability and inconvenient management, deployment and maintenance. `HertzBeat` provides the ability of cloud edge collaboration, can be deployed in multiple isolated networks edge collector, collector in the isolated network within the monitoring task collection, collection of data reported by the main service unified scheduling management display. Set Monitoring+Alarm+Notification All in one, no need to deploy multiple component services separately. Full UI interface operation, no matter adding new monitor, modifying monitor template, or alarm threshold notification, all can be done in WEB interface, no need to modify files or scripts or reboot. No Agent is needed, we only need to fill in the required IP, port, account, password and other parameters in the WEB

Customization friendly, only need a monitoring template YML, automatically generate monitoring management page, data chart page, threshold configuration for corresponding monitoring types. Threshold alarm notification friendly, based on the expression threshold configuration, a variety of alarm notification channels, support alarm silence, time label alarm level filtering and so on. An open source collaboration product using the `Apache2` protocol, maintained by a free and open source community. No monitoring number `License`, monitoring type and other pseudo-open source restrictions . Built on `Java+SpringBoot+TypeScript+Angular` mainstream technology stack , convenient secondary development . Open source is not the same as free, dev based on HertzBeat must retain the logo, name, page footnotes, copyright, etc. HertzBeat has been included in the -- HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help users quickly build their own monitoring system. -- Just run a single command in a Docker environment: `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` Browser access `http://localhost:1157` default account password `admin/hertzbeat` HertzBeat's user management is unified by the configuration file `sureness.yml`, which allows users to add, delete, and modify user information, user role permissions, and so on. Default password admin/hertzbeat The global overview page shows the distribution of current monitoring categories, users can visualize the current monitoring types and quantities and click to jump to the corresponding monitoring types for maintenance and management. Show the status of currently registered collector clusters, including collector on-line status, monitoring tasks, startup time, IP address, name and so on. Show the list of recent alarm messages, alarm level distribution and alarm processing rate. The monitoring portal supports the management of monitoring of application services, database, operating system, middleware, network, customization, etc. It displays the currently added monitors in the form of a list. It displays the currently added monitors in the form of a list and supports adding, modifying, deleting, canceling, importing, exporting and batch management of monitors. Support tag grouping, query filtering, view monitoring details portal. Built-in support for monitoring types include: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , You can add or modify monitoring instances of a specific monitoring type, configure the IP, port and other parameters of the monitoring on the other end, set the collection period, collection task scheduling method, support detecting availability in advance, etc. The monitoring instances on the page are defined by the corresponding monitoring templates. The monitoring parameters configured on the page are defined by the monitoring template of the corresponding monitoring type, and users can modify the configuration parameters on the page by modifying the monitoring template. Support associated tags to manage monitoring grouping, alarm matching, and so on. The monitoring data detail page shows the basic parameter information of the current monitoring, and the monitoring indicator data information. Monitor Real-time Data Report displays the real-time values of all the currently monitored indicators in the form of a list of small cards, and users can configure alarm threshold rules based on the real-time values for

Monitor Historical Data Report displays the historical values of the currently monitored metrics in the form of trend charts, supports querying hourly, daily and monthly historical data, and supports configuring the page refresh time. Note that the monitoring history charts need to be configured with an external timing database in order to get the full functionality, timing database support: IOTDB, TDengine, InfluxDB, GreptimeDB The management display page of triggered alarm messages enables users to visualize the current alarm situation. Support alarm processing, alarm marking unprocessed, alarm deletion, clearing and other batch operations. Threshold rules can be configured for monitoring the availability status, and alerts can be issued when the value of a particular metric exceeds the expected range. There are three levels of alerts: notification alerts, critical alerts, and emergency alerts. Threshold rules support visual page configuration or expression rule configuration for more flexibility. It supports configuring the number of triggers, alarm levels, notification templates, associated with a specific monitor and so on. When the alarm is triggered by the threshold rule, it will enter into the alarm convergence, the alarm convergence will be based on the rules of the specific time period of the duplicate alarm message de-emphasis convergence, to avoid a large number of repetitive alarms lead to the receiver alarm numbness. Alarm convergence rules support duplicate alarm effective time period, label matching and alarm level matching filter. When the alarm is triggered by the threshold rule, it will enter into the alarm silence, the alarm silence will be based on the rules of a specific one-time time period or periodic time period of the alarm message blocking silence, this time period does not send alarm messages. This application scenario, such as users in the system maintenance, do not need to send known alarms. Users will only receive alarm messages on weekdays, and users need to avoid disturbances at night. Alarm silence rules support one-time time period or periodic time period, support label matching and alarm level matching. Message notification is a function to notify alarm messages to specified recipients through different media channels, so that the alarm messages can reach them in time. It includes recipient information management and notification policy management. Recipient management maintains the information of recipients and their notification methods, while notification policy management maintains the policy rules of which recipients will be notified of the alert messages. Notification methods support `Email` `Discord` `Slack` `Telegram` `Pinning` `WeChat` `Flybook` `SMS` `Webhook` and so on. The notification policy supports tag matching and alert level matching, which makes it convenient to assign alerts with different tags and alert levels to different receivers and handlers. Support notification templates, users can customize the content format of the templates to meet their own personalized notification display needs. HertzBeat makes `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` and other protocols configurable so that you can customize the metrics you want to collect using these protocols by simply configuring the monitoring template `YML` in your browser. Would you believe that you can instantly adapt a new monitoring type such as `K8s` or `Docker` just by configuring it? All our built-in monitoring types (mysql, website, jvm, k8s) are also mapped to corresponding monitoring templates, so you can add and modify monitoring templates to customize your monitoring functions. -- There's so much more to discover. Have Fun! -- Home: https://hertzbeat.com/ Github: https://github.com/apache/hertzbeat Gitee: https://gitee.com/hertzbeat/hertzbeat