English Document | 中文文档
A real-time monitoring system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities.
Home: hertzbeat.apache.org
Email: Mail to dev-subscribe@hertzbeat.apache.org
to subscribe mailing lists
🎡 Introduction
Apache HertzBeat (incubating) 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.
Features
- 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 templateYML
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 whatPrometheus
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.
🥐 Architecture
⛄ Supported
We define all monitoring collection types such as
mysql
,jvm
, andk8s
asYML
monitoring templates, allowing users to import them to support corresponding types of monitoring. Welcome everyone to contribute your customized general monitoring type YML template during use.
- Website, Port Telnet, Http Api, Ping Connect, Jvm, SiteMap, Ssl Certificate, SpringBoot2, FTP Server, SpringBoot3, Udp Port, Dns, Pop3, Ntp, Api Code, Smtp, Nginx
- Mysql, PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, DM, OpenGauss, ClickHouse, IoTDB, Redis Cluster, Redis Sentinel Doris BE, Doris FE, Memcached, NebulaGraph
- Linux, Ubuntu, CentOS, Windows, EulerOS, Fedora CoreOS, OpenSUSE, Rocky Linux, Red Hat, FreeBSD, AlmaLinux, Debian Linux
- Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ, Spring Gateway, EMQX MQTT, AirFlow, Hive, Spark, Hadoop
- Kubernetes, Docker
- CiscoSwitch, HpeSwitch, HuaweiSwitch, TpLinkSwitch, H3cSwitch
- And More Your Custom Template.
- Notified Support
Discord
Slack
Telegram
Email
Dingtalk
WeChat
FeiShu
Webhook
SMS
ServerChan
.
🐕 Quick Start
- If you wish to deploy HertzBeat locally, please refer to the following Deployment Documentation for instructions.
🍞 Install HertzBeat
HertzBeat supports installation through source code, docker or package, cpu support x86/arm64.
1:Install quickly via docker
-
Just one command to get started
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat
-
Access
http://localhost:1157
to start, default account:admin/hertzbeat
-
Deploy collector clusters (Optional)
docker run -d -e IDENTITY=custom-collector-name -e MANAGER_HOST=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector apache/hertzbeat-collector
-e IDENTITY=custom-collector-name
: set the collector unique identity name.-e MODE=public
: set the running mode(public or private), public cluster or private cloud-edge.-e MANAGER_HOST=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
2:Install via package
- Download the release package
hertzbeat-xx.tar.gz
Download - Configure the HertzBeat configuration yml file
hertzbeat/config/application.yml
(optional) - Run command
$ ./bin/startup.sh
orbin/startup.bat
- Access
http://localhost:1157
to start, default account:admin/hertzbeat
- Deploy collector clusters (Optional)
- Download the release package
hertzbeat-collector-xx.tar.gz
to new machine Download - Configure the collector configuration yml file
hertzbeat-collector/config/application.yml
: uniqueidentity
name, runningmode
(public or private), hertzbeatmanager-host
, hertzbeatmanager-port
collector: dispatch: entrance: netty: enabled: true identity: ${IDENTITY:} mode: ${MODE:public} manager-host: ${MANAGER_HOST:127.0.0.1} manager-port: ${MANAGER_PORT:1158}
- Run command
$ ./bin/startup.sh
orbin/startup.bat
- Access
http://localhost:1157
and you will see the registered new collector in dashboard
- Download the release package
Detailed config refer to Install HertzBeat via Package
3:Start via source code
- Local source code debugging needs to start the back-end project
manager
and the front-end projectweb-app
. - Backend:need
maven3+
,java17
,lombok
, start themanager
service. - Web:need
nodejs npm angular-cli
environment, Runng serve --open
inweb-app
directory after backend startup. - Access
http://localhost:4200
to start, default account:admin/hertzbeat
Detailed steps refer to CONTRIBUTING
4:Install All(hertzbeat+postgresql+tsdb) via Docker-compose
Install the postgresql/mysql database, victoria-metrics/iotdb/tdengine database and hertzbeat at one time through docker-compose deployment script.
Detailed steps refer to Install via Docker-Compose
5: Install All(hertzbeat+collector+postgresql+tsdb) via kubernetes helm charts
Install HertzBeat cluster in a Kubernetes cluster by Helm chart.
Detailed steps refer to Artifact Hub
HAVE FUN
🥐 Roadmap
✨ Contributors
Thanks to these wonderful people, welcome to join us:
Contributor Guide