chore: import upstream snapshot with attribution
MCP Bash Server CI / Test MCP Bash Server (dev) (push) Has been cancelled
MCP Bash Server CI / Test MCP Bash Server (release) (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:11:39 +08:00
commit c8cebdfeee
4654 changed files with 626756 additions and 0 deletions
+137
View File
@@ -0,0 +1,137 @@
---
id: questdb-init
title: Installation and Initialization of Time-Series Database Service QuestDB (Optional)
sidebar_label: Metrics Store QuestDB
---
The historical data storage of Apache HertzBeat™ relies on a time-series database. You can choose to install and initialize **one** of the supported databases, or skip the installation (⚠️ However, it is strongly recommended to configure one in the production environment).
> We recommend using and providing long-term support for VictoriaMetrics as the storage solution.
QuestDB is an open-source time-series database that stands out in the field of time-series data processing due to its high performance and low latency. We use it to store and analyze the collected historical monitoring metric data.
**⚠️ Note: Configuring a time-series database is optional, but it is strongly recommended for production environments to ensure more comprehensive historical chart functions, high performance, and stability.**
**⚠️ If no time-series database is configured, only the historical data of the last hour will be retained.**
> If you already have an existing QuestDB environment, you can skip directly to the YML configuration step.
## Install QuestDB<!-- markdownlint-disable MD029 -->
1. Download the installation package
Download the latest version for your operating system from the official GitHub repository:
```shell
# For Linux/macOS (taking v7.3.9 as an example; replace with the latest version number)
wget https://github.com/questdb/questdb/releases/download/7.3.9/questdb-7.3.9-no-jre-bin.tar.gz
# Extract the package
tar -zxvf questdb-7.3.9-no-jre-bin.tar.gz
mv questdb-7.3.9 /opt/questdb # Move to a common directory
```
For Windows users:
Download the zip package and extract it to C:\questdb or a custom directory.
2. Start QuestDB
```shell
# For Linux/macOS: Navigate to the installation directory and start the service
cd /opt/questdb/bin
./questdb start
# For Windows (Command Prompt):
cd C:\questdb\bin
questdb.exe start
```
3. Set up access password
QuestDB enables authentication through a configuration file, which needs to be modified manually.
Edit the configuration file:
```shell
# For Linux/macOS
vi /opt/questdb/conf/server.conf
# For Windows
notepad C:\questdb\conf\server.conf
```
Enable authentication and configure the password:
```shell
# Enable authentication (disabled by default)
http.security.enabled=true
pg.security.enabled=true # PostgreSQL protocol authentication
# Set admin account and password (customize as needed)
http.security.admin.username=admin
http.security.admin.password=YourStrongPassword123!
# Optional: Restrict Web Console access to specific IPs (e.g., local access only)
http.bind.to=127.0.0.1:9000
```
Restart QuestDB for the changes to take effect:
```shell
# For Linux/macOS
./questdb stop
./questdb start
# For Windows
questdb.exe stop
questdb.exe start
```
4. Configure QuestDB connection in HertzBeat's application.yml file
Modify HertzBeat's configuration file
Locate and edit the configuration file at hertzbeat/config/application.yml
⚠️ Note: For Docker container deployment, you need to mount the application.yml file to the host machine. For the installation package deployment, simply extract the package and modify the file at hertzbeat/config/application.yml.
**Set the** **warehouse.store.duckdb.enabled** **parameter to** **false****, configure the** **warehouse.store.questdb** **data source parameters (HOST, username, password, etc.), and set** **enabled** **to** **true** **to enable QuestDB.**
```yaml
warehouse:
store:
# Disable the default DuckDB
duckdb:
enabled: false
# Enable QuestDB
questdb:
enabled: true
url: localhost:9000
username: admin
password: quest
```
Parameter Description:
| Parameter Name | Description |
| -------------- | ------------------------------ |
| enabled | Whether to enable QuestDB |
| url | QuestDB server URL (host:port) |
| username | QuestDB database account |
| password | QuestDB database password |
> **Note:** Due to QuestDB's architectural design, if you need to set an expiration time for data, you can configure it in QuestDB's configuration file server.conf:
```shell
cairo.default.ttl=30d
```
5. Restart HertzBeat
<!-- markdownlint-enable MD029 -->