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
+145
View File
@@ -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
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
<!-- others -->
</broker>
```
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: 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: 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: 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: class_loading
| Metric Name | Unit | Description |
|-----------------------|------|--------------------------|
| LoadedClassCount | | Loaded Class Count |
| TotalLoadedClassCount | | Total Loaded Class Count |
| UnloadedClassCount | | Unloaded Class Count |
#### metrics: 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 |
+360
View File
@@ -0,0 +1,360 @@
---
id: ai_agent
title: HertzBeat AI Agent User Guide
sidebar_label: HertzBeat AI
keywords: [AI, Chat, Agent, Monitoring, AI Agent, OpenAI]
---
> HertzBeat AI Agent is an intelligent monitoring AI Agent that helps you manage monitors, configure alerts, and optimize your infrastructure monitoring through natural language conversation.
## Overview
The HertzBeat AI Agent feature provides an interactive chat interface where you can:
**Monitor Management:**
- 🔍 Query and filter existing monitors by status, type, host, and labels
- Add new monitors for websites, APIs, databases, and services
- 📊 Get detailed information about available monitor types and their parameters
- ⚡ Check monitor status and troubleshoot monitoring issues
**Alert Management:**
- 🚨 Query active alerts with comprehensive filtering (type, status, search)
- 📈 Get alert summary statistics and distribution
- 🔔 View both single and grouped alerts
- 📋 Analyze alert patterns and trends
**Metrics Analysis:**
- 📊 Retrieve real-time metrics data for any monitor
- 📈 Access historical metrics with customizable time ranges
- 💾 Check warehouse storage system status
- 🔍 Query specific metric fields and labels
**Alert Rule Management:**
- ⚙️ Configure alert rules and thresholds
- 📝 Manage alert definitions for different monitor types
- 🎯 Set up custom alerting criteria
## Prerequisites
Before using the AI Agent, ensure:
1 **OpenAI Configuration**: Valid OpenAI API key must be configured. Optionally, you can change the model in `application.yml` under `spring.ai.openai.chat.options.model` (default is `gpt-4.1-nano`).
2 **Database Connection**: HertzBeat database must be accessible for monitor operations
## Configuration
### OpenAI API Key Setup
The AI Agent uses OpenAI's GPT models. You need to configure an OpenAI API key in this ways:
#### Database Configuration via UI
1. Navigate to the AI Agent interface
2. If no API key is configured, you'll see a configuration dialog
3. Enter your OpenAI API key
4. Click **Save Configuration**
### Configuration Priority
- **Database configuration** takes priority over YAML configuration
- Configuration changes are applied immediately without restart
- Invalid API keys are automatically validated before saving
## Using the AI Agent
### Accessing the Chat Interface
1. Navigate to the **AI Agent** section in HertzBeat web interface
2. You'll see the HertzBeat Monitoring AI Agent welcome screen
3. Start typing your questions in the chat input field
### Sample Conversations
#### Adding a New Monitor
```text
You: Add a new HTTP monitor for my website https://example.com
AI Agent: I'll help you add an HTTP monitor for https://example.com.
Let me create that monitor with the following configuration:
- Name: example.com Website Monitor
- Type: HTTP
- Host: example.com
- Port: 443 (HTTPS)
- Path: /
- Interval: 60 seconds
Monitor created successfully with ID: 12345
```
#### Listing Existing Monitors
```text
You: Show me all my current monitors
AI Agent: Here are your current monitors:
1. **Linux Server** (ID: 1001)
- Status: ✅ Online
- Host: 192.168.1.100
- Last Check: 2 minutes ago
2. **MySQL Database** (ID: 1002)
- Status: ⚠️ Warning
- Host: db.example.com
- Last Check: 30 seconds ago
3. **Website Monitor** (ID: 1003)
- Status: ✅ Online
- Host: https://example.com
- Last Check: 1 minute ago
Would you like details on any specific monitor?
```
#### Getting Monitor Type Information
```text
You: What parameters do I need to monitor a PostgreSQL database?
AI Agent: To monitor a PostgreSQL database, you'll need these parameters:
**Required Parameters:**
- **Host**: Database server IP/hostname
- **Port**: PostgreSQL port (default: 5432)
- **Database**: Database name to connect to
- **Username**: Database username
- **Password**: Database password
**Optional Parameters:**
- **Timeout**: Connection timeout (default: 6000ms)
- **Query Timeout**: SQL query timeout (default: 3000ms)
- **SSL**: Enable SSL connection (default: false)
Would you like me to help you add a PostgreSQL monitor?
```
#### Alert Management
```text
You: Show me all critical alerts from the last 24 hours
AI Agent: Here are the critical alerts from the last 24 hours:
🚨 **Active Alerts (3 firing)**
1. **High CPU Usage** - Linux Server (ID: 1001)
- Status: 🔥 Firing
- Triggered: 2 hours ago
- Severity: Critical
- Message: CPU usage 95% > threshold 90%
2. **Database Connection Failed** - MySQL Database (ID: 1002)
- Status: 🔥 Firing
- Triggered: 45 minutes ago
- Severity: Critical
- Message: Connection timeout after 10 seconds
3. **Website Response Time** - Website Monitor (ID: 1003)
- Status: ⚠️ Warning
- Triggered: 15 minutes ago
- Severity: Warning
- Message: Response time 5.2s > threshold 3s
**Alert Summary:**
- Total alerts: 12
- Firing: 3 (2 critical, 1 warning)
- Resolved: 9
Would you like me to help you investigate any specific alert?
```
#### Metrics Analysis
```text
You: Show me the CPU usage for my Linux server over the last 6 hours
AI Agent: Here's the CPU usage data for your Linux server (Monitor ID: 1001) over the last 6 hours:
📊 **CPU Usage Metrics - Last 6 Hours**
```
Time | Usage (%) | Load Avg | Processes
14:00-15:00 | 45.2% | 1.2 | 156
15:00-16:00 | 67.8% | 2.1 | 178
16:00-17:00 | 89.4% | 3.8 | 195
17:00-18:00 | 92.1% | 4.2 | 203
18:00-19:00 | 94.7% | 4.8 | 210
19:00-20:00 | 88.3% | 3.5 | 188
``` text
**Analysis:**
- Peak usage: 94.7% at 19:00
- Average usage: 79.6%
- Trend: High usage sustained for 3+ hours
- Current status: Decreasing (88.3%)
**Real-time metrics:**
- Current CPU: 76.2%
- Memory usage: 82.1%
- Disk I/O: Normal
Would you like me to check historical data for comparison or investigate the high usage cause?
```
#### Alert Rule Configuration
```text
You: Set up an alert rule for when my website response time exceeds 5 seconds
AI Agent: I'll help you create an alert rule for website response time monitoring.
**Alert Rule Configuration:**
- **Monitor Type**: HTTP/Website
- **Metric**: Response Time
- **Condition**: Greater than 5 seconds
- **Severity**: Warning
- **Evaluation**: Check every 60 seconds
- **Notification**: Email + Dashboard
**Proposed Rule:**
```yaml
name: "Website Response Time Alert"
condition: "response_time > 5000ms"
severity: "warning"
description: "Alert when website response time exceeds 5 seconds"
evaluation_interval: 60s
for: 2m # Alert after condition persists for 2 minutes
```
This rule will:
1. Monitor response time every minute
2. Trigger alert if response time > 5s for 2+ minutes
3. Send notifications via configured channels
4. Show in dashboard with warning status
Would you like me to apply this configuration or modify any settings?
``` text
### Chat Features
#### Message History
- All conversations are automatically saved
- Access previous conversations from the sidebar
- Search through conversation history
- Export conversation logs
#### Real-time Responses
- Streaming responses for immediate feedback
- Typing indicators show when the assistant is processing
- Cancel ongoing requests if needed
#### Conversation Management
- Create new conversations for different topics
- Rename conversations for better organization
- Delete old conversations to keep things clean
Note: Conversations are not saved in the database
## Troubleshooting
### Common Issues
#### Chat Interface Not Loading
**Symptoms**: Chat interface shows loading spinner indefinitely
**Solutions**:
1. Check browser console for JavaScript errors
2. Ensure network connectivity to HertzBeat server
#### "Service Unavailable" Message
**Symptoms**: Chat shows "HertzBeat AI monitoring service unavailable"
**Solutions**:
1.Verify OpenAI API key configuration
2.Check application logs for errors
3.Ensure database connectivity
#### Invalid API Key Error
**Symptoms**: Configuration dialog shows "Invalid API key" error
**Solutions**:
1. Verify your OpenAI API key starts with `sk-`
2. Check API key has sufficient credits/quota
3. Test API key directly with OpenAI API
4. Ensure no extra spaces in the API key
#### Monitor Creation Failures
**Symptoms**: AI suggests monitor configuration but creation fails
**Solutions**:
1. Verify you have permissions to create monitors
2. Check if monitor with same name already exists
3. Ensure target host/service is accessible
4. Review monitor parameter validation errors
### Debug Mode
Enable debug logging by setting log level to DEBUG for:
```yaml
logging:
level:
org.apache.hertzbeat.ai.agent: DEBUG
```
## Best Practices
### Effective Chat Usage
1. **Be Specific**: "Add HTTP monitor for api.example.com port 8080" vs "add a monitor"
2. **Provide Context**: Mention if you want production vs test monitors
3. **Ask Follow-ups**: Request configuration details if needed
4. **Use Natural Language**: The AI understands conversational requests
### Monitor Management
1. **Naming Convention**: Use descriptive monitor names
2. **Documentation**: Ask the AI to document complex configurations
### Security Considerations
1. **API Key Security**: Store OpenAI API keys securely
2. **Access Control**: Limit AI chat access to authorized users
3. **Data Privacy**: Be mindful of sensitive information in chat logs
4. **Network Security**: Ensure secure connections to OpenAI API
## Advanced Features
### Bulk Operations
```text
You: Add HTTP monitors for all services in my staging environment:
- api-staging.example.com:8080
- web-staging.example.com:80
- admin-staging.example.com:3000
```
## Limitations
- Requires active internet connection for OpenAI API
- OpenAI API usage incurs costs based on token consumption
- Complex multi-step operations may require multiple interactions
- Some advanced configurations may need manual setup
- Rate limiting may apply based on OpenAI plan
## Support
For issues with AI Agent:
1. Check this documentation first
2. Review application logs for errors
3. Test OpenAI API connectivity independently
4. Contact HertzBeat support with specific error messages
---
+38
View File
@@ -0,0 +1,38 @@
---
id: airflow
title: Monitoring Apache Airflow
sidebar_label: Apache Airflow
keywords: [open source monitoring system, open source database monitoring, Apache Airflow monitoring]
---
> Collect and monitor general performance metrics for the Apache Airflow.
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------|
| Monitor Host | IP address, IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ without protocol prefix (e.g., https://, http://). |
| Task Name | Name identifying this monitoring, ensuring uniqueness. |
| Port | Port number of the database exposed to the outside, default is 8080. |
| Query Timeout | Set timeout for unresponsive connections, in milliseconds (ms), default is 3000ms. |
| HTTPS | Whether to enable HTTPS. |
| Collection Interval | Interval for periodic data collection during monitoring, in seconds, with a minimum interval of 30 seconds. |
| Whether to detect | Whether to perform a probe check for monitoring availability before adding a new monitor; operations proceed if successful. |
| Description | Additional information to identify and describe this monitoring, where users can add remarks. |
### Collection Metrics
#### Metric Set: airflow_health
| Metric Name | Metric Unit | Metric Description |
|--------------|-------------|--------------------|
| metadatabase | N/A | Response time |
| scheduler | N/A | scheduler health |
| triggerer | N/A | triggerer health |
#### Metric Set: airflow_version
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|---------------------|
| value | N/A | Airflow version |
| git_version | N/A | Airflow git version |
+57
View File
@@ -0,0 +1,57 @@
---
id: alarm_center
title: Alarm Center
sidebar_label: Alarm Center
keywords:
[open-source monitoring system, alarm center, alarm management, alarm display]
---
> The Alarm Center serves as a comprehensive visualization platform that displays all alarms after undergoing grouping, consolidation, suppression, and silencing processes. It encompasses both internally triggered threshold-based alarms and integrated third-party notifications.
## Alarm Sources
The HertzBeat Alarm Center manages notifications from two primary sources:
1. Internal Threshold-Triggered Alarms
- Generated when monitoring metrics exceed predefined thresholds
- Directly correlated with monitoring tasks and threshold rules configured within the system
- Manageable through adjustment of monitoring parameters and threshold configurations
2. Third-Party Integrated Alarms
- Received through API interfaces from external systems
- Compatible with various monitoring systems and alarm platforms
- Processed through identical workflow as internal alarms
## Alarm Processing Mechanism
Before appearing in the Alarm Center, all notifications undergo several processing stages:
1. Grouping
- Categorizes related alarms based on source, type, severity, and other attributes (labels)
- Facilitates efficient management of high-volume alarms
- Supports customizable grouping rules for diverse scenarios
2. Consolidation
- Mitigates notification fatigue from multiple similar alarms within short intervals
- Presents consolidated alarms in a streamlined format, eliminating redundancy
3. Suppression
- Manages alarm dependencies
- Suppresses secondary alarms when primary alarms are triggered
- Supports configurable suppression rules based on alarm dependencies
4. Silencing
- Temporarily mutes specific alarms during designated periods
- Ideal for system maintenance windows and known issue handling
- Enables time-based silence rule configuration
## Alarm Center Interface
![alarm_center](/img/docs/help/alarm-center-1.png)
The Alarm Center provides a comprehensive view of all system alarms:
1. Alarm Display
- Lists all alarms with crucial information including status, source, labels, and timestamps
- Offers detailed view functionality for comprehensive alarm information and context
2. Search Functionality
- Enables rapid alarm identification
- Supports multiple search criteria (labels, annotations, alarm status)
3. Alarm Management
- Alarm Deletion: Removes alarms no longer requiring attention
+24
View File
@@ -0,0 +1,24 @@
---
id: alarm_group
title: Alarm Grouping
sidebar_label: Alarm Grouping
keywords: [Open source monitoring system, alarm reduce, alarm grouping]
---
> Group convergence supports grouping and convergence of alarms for specified packet labels, deduplication and convergence of the same repeated alarms for the time period. When the threshold rule triggers the alarm or external alarm reporting, it will enter the packet convergence to alarm grouping to deduplicate the alarm to avoid a large number of alarm messages causing alarm storms.
## Grouping Policy Parameter Configuration
- Strategy Name: The name that uniquely identifies the grouping policy
- Group Labels: Alarm grouping tag, support up to 10 tags
> Tag source: monitoring, threshold rules, tags carried by external alarms
- Wait Time: Waiting time after a new alarm is generated. The same alarms received during this time will be grouped, with a default of 30 seconds.
> When a new (unable to join an existing group) alarm is generated, the group convergence will wait according to the `wait time`, during which time, the same alarm or the alarm that meets the grouping conditions will be grouped. The alarm after the grouping is sent to the alarm suppression module for subsequent processing until the time interval between the current time and the first alarm generation in the packet exceeds the `wait time`.
- Interval time: The minimum time interval for sending group alarm notifications to avoid excessive alarm notifications, default 5 minutes
- Repeat interval: The minimum notification interval for repeated alarms. For continuously triggered alarms, avoid repeated notifications, default 4 hours
**Note**: Only grouped alarms can be suppressed using suppression rules.
+45
View File
@@ -0,0 +1,45 @@
---
id: alarm_inhibit
title: Alarm Inhibition
sidebar_label: Alarm Inhibition
keywords: [ Open Source Monitoring System, Alarm Convergence, Alarm Inhibition ]
---
> Alarm inhibition is used to configure the inhibition relationship between alarms. When an alarm occurs, other alarms can be suppressed. It can be understood as "important" alarms suppressing "
> unimportant" alarms. For example, the alarm generated by a server crash suppresses the alarms generated by other services on this server.
## Prerequisites
- Correctly configure the alarm grouping rule
## Inhibit rule configuration
- Inhibit Rule Name: The name that uniquely identifies the suppression rule
- Source Labels: When the alarm contains these tags, the target alarm will be suppressed. Multiple tags can be added.
> Identify the tag of the "important" alarm. The alarm tag needs to contain all source tags to suppress the alarm marked by the target tag.
- Target Labels: Alarms matching these tags will be suppressed.
> Identify the label of "unimportant" alarms. Alarm labels need to contain all target labels to be suppressed.
- Equal Labels: Labels for determining alarm correlation. Supports up to 10 labels.
- Enabled: Enable or disable this inhibit rule
## Example
Scenario: Use HertzBeat to monitor two Centos servers 192.168.1.1, 192.168.1.2, and Redis services Redis-1 and Redis-2 deployed on the two servers.
And configure the following threshold rules:
- Monitor Centos Linux / Monitor availability. Bind label `server-status:down`
- Monitor Redis database / Monitor availability. Bind label `redis-status:down`
If you need to achieve that when the Centos downtime alarm is generated, the Redis alarm will no longer be generated, you can configure the following alarm suppression rules:
- Source label: `server-status:down`
- Target label: `redis-status:down`
- Equal label: `instancehost`
When the Centos 192.168.1.1 downtime alarm is generated, the Redis-1 unavailable alarm will no longer be generated. And at the same time, when Centos 192.168.1.2 is running normally and Redis-2 is
unavailable, the alarm notifying Redis-2 unavailable will be generated normally.
+29
View File
@@ -0,0 +1,29 @@
---
id: alarm_silence
title: Alarm Silence
sidebar_label: Alarm Silence
keywords: [ Open Source Monitoring System, Alert Silence ]
---
> The alert silence management allows you to configure silence policies to suppress alert notifications during specified time periods, such as during system maintenance or when you dont want to be disturbed by alerts at night or on weekends. Alert silence rules support both one-time and periodic time periods, and can match specific alerts using labels and alert levels.
## One-Time Time Period Silence Configuration
- Silence Strategy Name: A unique name to identify the silence policy;
- Match All: Whether to enable this silence policy for all alerts;
- Label Match: When "Apply to All" is disabled, you can match alerts to be silenced based on specified labels;
- Silence Type: Select "One Time Silence";
- Silence Period: After selecting "One Time Silence", the silence period configuration is shown in the following image, which can be configured as needed
![alarm_silence](/img/docs/help/alert-silence-1-en.png)
- Enable: Enable or disable the silence policy.
## Periodic Time Period Silence Configuration
- Silence Strategy Name: A unique name to identify the silence policy;
- Match All: Whether to enable this silence policy for all alerts;
- Label Match: When "Apply to All" is disabled, you can match alerts to be silenced based on specified labels;
- Silence Type: Select "Periodic Silence";
- Choose Date: After selecting "Periodic Silence", you can configure the dates when alerts should be silenced;
- Silence Period: After selecting "Periodic Silence", the silence period configuration is shown in the following image, which can be configured as needed (e.g., silencing alerts during weekends)
![alarm_silence](/img/docs/help/alert-silence-2-en.png)
- Enable: Enable or disable the silence policy.
+18
View File
@@ -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.
+41
View File
@@ -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!
+68
View File
@@ -0,0 +1,68 @@
---
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)
2. **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!
+33
View File
@@ -0,0 +1,33 @@
---
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. Please confirm whether you have configured its own mail server in application.yml
Other issues can be fed back through the communication group ISSUE!
@@ -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!
+38
View File
@@ -0,0 +1,38 @@
---
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】-> 【Bots】-> 【Add Bot】-> 【Custom Bot】 -> 【Set robot name and avatar】-> 【Copy its webhook URL 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.
2. How to @someone in alarm notification
> In the form for adding recipients, fill in the `User ID`. If you need to @everyone, you can enter `all` in the `User ID` field. Multiple user IDs are also supported, separated by commas `,`. For detailed instructions on how to get the Feishu user ID, please refer to: [Get feishu user id](https://open.feishu.cn/document/faq/trouble-shooting/how-to-get-internal-user-id).
Other issues can be fed back through the communication group ISSUE!
+75
View File
@@ -0,0 +1,75 @@
---
id: alert_feishu_app
title: Alert FeiShu app notification
sidebar_label: Alert FeiShu app notification
keywords: [Alert FeiShu app notification , open source alerter, open source feishu app notification]
---
> After the threshold is triggered send alarm information and notify the recipient by FeiShu app.
## Operation steps
1. **【[FeiShu Open Platform](https://open.feishu.cn/)】->【Create Custom App】->【Create】->【Add Features:Bot】**
2. **【Development Configuration】->【Permissions & Scopes】:Different types of notification objects require different API permissions, which can be opened as needed**
| Permission Name | Permission code | Designated User | Designated Group Chat | Designated Department | All User |
|-----------------------------------------------------------------|-----------------------------------|:---------------:|:---------------------:|:---------------------:|:--------:|
| Obtain user ID | contact:user.employee_id:readonly | ✓ | | | ✓ |
| Send messages as an app | im:message:send_as_bot | ✓ | ✓ | ✓ | ✓ |
| Obtain employee information in FeiShu CoreHR (Standard version) | ehr:employee:readonly | | | | ✓ |
| Send batch messages to members from one or more departments | im:message:send_multi_depts | | | ✓ | |
| Send batch messages to multiple users | im:message:send_multi_users | | | | ✓ |
> Attention⚠️:In the designated notification type of group chat,the application needs to be added as a robot to the group chat, to @someone, you need to enable the permission to 'obtain user ID'
>
> Batch import scopes
>
> ```json
> {
> "scopes": {
> "tenant": [
> "contact:user.employee_id:readonly",
> "im:message:send_as_bot",
> "ehr:employee:readonly",
> "im:message:send_multi_depts",
> "im:message:send_multi_users"
> ],
> "user": []
> }
> }
> ```
3. **【App Versions】->【Version Management & Release】->【Create a version】->【Save】->【Publish】**
4. **【Basic Info】->【Credentials & Basic Info】->【copy and save AppID and AppSecret】**
5. **【Notice Receiver】->【New Receiver】 ->【Choose FeiShu App method】->【Set AppID and AppSecret】-> 【Select Notice Object Type】-> 【Set the corresponding ID】**
6. **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 app notification common issues
1. FeiShu app did not receive the robot alarm notification.
> Please check whether there is any triggered alarm information in the alarm center.
> Please check whether the AppID and AppSecret is configured correctly and whether the alarm strategy association is configured.
> Please check if the user was within the available range when the application was published.
2. How to @someone in a designated group chat
> In the form for adding recipients, fill in the `User ID`. If you need to @everyone, you can enter `all` in the `User ID` field. Multiple user IDs are also supported, separated by commas `,`. For detailed instructions on how to get the FeiShu user ID, please refer to: [Get FeiShu user id](https://open.feishu.cn/document/faq/trouble-shooting/how-to-obtain-user-id#529e21a9)
3. How to obtain a chat ID
> Please refer to: [Chat ID description](https://open.feishu.cn/document/server-docs/group/chat/chat-id-description#394516c9)
4. How to obtain party ID
> Please refer to: [Department resource introduction](https://open.feishu.cn/document/server-docs/contact-v3/department/field-overview#9c02ed7a)
Other issues can be fed back through the communication group ISSUE!
+38
View File
@@ -0,0 +1,38 @@
---
id: alert_integration
title: Alert Integration
sidebar_label: Alert Integration
keywords:
[
open-source monitoring,
alert integration,
alert management,
multi-source alerts,
]
---
> The alert integration module of HertzBeat is designed to achieve unified reception, standardized processing, and intelligent dispatching of alerts from various third-party monitoring and observability platforms. As a centralized "Alert Center," HertzBeat efficiently ingests external alert information and applies flexible alert management strategies.
## Core Capabilities
- **Multi-Source Alert Ingestion**: Supports receiving alert messages from major platforms such as Webhook, Prometheus, Alertmanager, SkyWalking, and Tencent Cloud.
- **Alert Format Standardization**: Converts alerts from different platforms into a unified internal format within HertzBeat for easier processing.
- **Comprehensive Alert Processing Mechanisms**, including:
- **Grouping and Convergence**: Manage alerts by grouping them based on labels and deduplicate repeated alerts within a specific time window.
- **Inhibition**: Automatically suppresses secondary alerts when specific conditions are met.
- **Silencing**: Temporarily disables alert notifications during system maintenance or known issues to avoid unnecessary noise.
### Supported Alert Sources
HertzBeat currently supports alert integration from the following third-party monitoring platforms:
- **Webhook**: A generic integration method supporting customized alert format push.
- **Prometheus**: You can configure HertzBeats service address directly in the Prometheus Server's Alertmanager configuration, allowing HertzBeat to replace Alertmanager for receiving and handling Prometheus Server alerts.
- **Alertmanager**: Supports forwarding alerts from Prometheus AlertManager to the HertzBeat alert platform.
- **SkyWalking**: Sends SkyWalking alerts to the HertzBeat alert platform via Webhook.
- **Tencent Cloud Monitoring**: Sends Tencent Cloud alerts to the HertzBeat alert platform via Webhook.
- **And more**HertzBeat is actively expanding its integration support. If the integration you need is not yet available, the community is actively contributing and can assist in adding it.
You can view the detailed integration methods and configuration examples through the "Integration" interface in HertzBeat.
![integration](/img/docs/help/alert_integration_en.png)
@@ -0,0 +1,124 @@
---
id: alert_notification_template
title: Notification Template
sidebar_label: Notification Template
keywords: [Template, Alert Template, Alarm Template, Notification Template, Message Notification, Alert Webhook Callback Notification]
---
> HertzBeat supports custom notification templates. Templates use placeholder variables for rendering, and the system automatically replaces variables with actual alert data during push notifications.
## Template Configuration
【Notification】->【Notice Template】->【Template Configuration】
![Template Configuration](/img/docs/help/alert-notification-template-1-en.png)
## Template Rendering
HertzBeat notification templates are based on FreeMarker syntax, supporting variable placeholders, conditional judgments, loops, formatting, and other advanced features. During template rendering, the system injects alert data objects (e.g., GroupAlert, SingleAlert) into the template, and variables are automatically replaced with actual values.
## Available Variables and Data Structures
### GroupAlert Structure Fields
[GroupAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common-spring/src/main/java/org/apache/hertzbeat/common/entity/alerter/GroupAlert.java)
- `id`Primary key of the alert group
- `groupKey` Unique identifier for the group
- `status`Group status (e.g., firing, resolved)
- `groupLabels`Group labels (Map)
- `commonLabels`Common labels (Map)
- `commonAnnotations`Common annotations (Map)
- `alertFingerprints`List of alert fingerprints
- `creator``modifier``gmtCreate``gmtUpdate`Metadata
- `alerts`List of alert details `List<SingleAlert>`
### SingleAlert Structure Fields
[SingleAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common-spring/src/main/java/org/apache/hertzbeat/common/entity/alerter/SingleAlert.java)
- `id`Primary key of the detail
- `fingerprint`Unique fingerprint
- `labels`Labels (Map)
- `annotations`Annotations (Map)
- `content`Alert content
- `status`Status (firing|resolved)
- `triggerTimes`Number of triggers
- `startAt``activeAt``endAt`Timestamps
- `creator``modifier``gmtCreate``gmtUpdate`Metadata
## Template Variables and Syntax Explanation
- **Global Variables**
- ``status``Alert status (e.g., alert, recovery, etc.)
- ``groupKey``Unique identifier for the group
- `${commonLabels.xxx}``${commonAnnotations.xxx}`Common labels and annotations, accessed via `xxx`
- **Alert Details List**
- ``alerts``Collection of alert details, usually traversed with `<#list alerts as alert>`
- `${alert.labels.xxx}``${alert.annotations.xxx}`Labels and annotations for a single alert
- `${alert.content}`Alert content
- `${alert.triggerTimes}`Number of triggers
- `${alert.startAt}`First trigger time
- **Template Syntax Support**
- Supports FreeMarker syntax, including conditional statements `<#if>`, loops `<#list>`, JSON stringification `?json_string`, time formatting `?number_to_datetime`, string formatting `?string('yyyy-MM-dd HH:mm:ss')`, etc.
- Allows flexible combination of variables and template syntax to achieve complex message customization.
- For more syntax, refer to the [FreeMarker Documentation](https://freemarker.apache.org/)
## Template Example
```json
{
"title": "🔔 HertzBeat Alert Notification",
"status": "${status!"UNKNOWN"}",
"commonLabels": {
<#if commonLabels?? && commonLabels.severity??>
"severity": "${commonLabels.severity?switch("critical", "❤️ Critical", "warning", "💛 Warning", "info", "💚 Info", "Unknown")}"<#if commonLabels.alertname??>,</#if>
</#if>
<#if commonLabels?? && commonLabels.alertname??>
"alertName": "${commonLabels.alertname}"
</#if>
},
"alerts": [
<#if alerts?? && alerts?size gt 0>
<#list alerts as alert>
{
"index": ${alert?index + 1},
"labels": {
<#if alert.labels?? && alert.labels?size gt 0>
<#list alert.labels?keys as key>
"`key`": "${alert.labels[key]?json_string}"<#if key?has_next>,</#if>
</#list>
</#if>
},
<#if alert.content?? && alert.content != "">
"content": "${alert.content?json_string}",
</#if>
"triggerTimes": ${alert.triggerTimes!0},
"startAt": "${((alert.startAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
<#if alert.activeAt?? && alert.activeAt gt 0>
"activeAt": "${((alert.activeAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
</#if>
<#if alert.endAt?? && alert.endAt gt 0>
"endAt": "${(alert.endAt?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}"<#if alert.annotations?? && alert.annotations?size gt 0>,</#if>
</#if>
<#if alert.annotations?? && alert.annotations?size gt 0>
"annotations": {
<#list alert.annotations?keys as key>
"`key`": "${alert.annotations[key]?json_string}"<#if key?has_next>,</#if>
</#list>
}
</#if>
}<#if alert?has_next>,</#if>
</#list>
</#if>
],
"commonAnnotations": {
<#if commonAnnotations?? && commonAnnotations?size gt 0>
<#list commonAnnotations?keys as key>
"`key`": "${commonAnnotations[key]?json_string}"<#if key?has_next>,</#if>
</#list>
</#if>
}
}
+35
View File
@@ -0,0 +1,35 @@
---
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)
2. **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!
+43
View File
@@ -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!
+282
View File
@@ -0,0 +1,282 @@
---
id: alert_sms
title: Alert SMS notification
sidebar_label: Alert SMS notification
keywords: [open source monitoring tool, open source alerter, open source SMS alert notification]
---
> After the threshold is triggered send alarm information and notify the recipient by SMS.
## SMS Service Configuration
Only when you successfully configure your own SMS service will the alert SMS triggered within the monitoring system be sent correctly.
HertzBeat provides two ways to configure the SMS service: modifying the `application.yml` configuration file directly or configuring it through the HertzBeat frontend interface (Settings > Message Server Setting).
> ⚠️ Note: Only one method can be effective at a time. If both methods are configured and enabled, HertzBeat will prioritize the SMS service configured in the frontend interface.
### Tencent Cloud SMS Configuration
Add/Fill in the following Tencent Cloud SMS server configuration to `application.yml` (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: tencent # SMS provider type, supports "tencent"
tencent: # Tencent Cloud SMS configuration
secret-id: AKIDbQ4VhdMr89wDedFrIcgU2PaaMvOuBCzY
secret-key: PaXGl0ziY9UcWFjUyiFlCPMr77rLkJYlyA
app-id: 1435441637
sign-name: HertzBeat
template-id: 1343434
```
1. Create a signature (sign-name) in Tencent Cloud SMS
![image](/img/docs/help/alert-sms-tencent-cloud-signature.png)
2. Create a message template (template-id) in Tencent Cloud SMS
```text
Monitor: {1}, Alert Level: {2}. Content: {3}
```
![image](/img/docs/help/alert-sms-tencent-cloud-template.png)
3. Create an application (app-id) in Tencent Cloud SMS
![image](/img/docs/help/alert-sms-tencent-cloud-app.png)
4. Obtain Tencent Cloud Access Management credentials (secret-id, secret-key)
![image](/img/docs/help/alert-sms-tencent-cloud-access.png)
### Alibaba Cloud SMS Configuration
To activate and use Alibaba Cloud SMS service, you can refer to the official Alibaba Cloud documentation: [SMS Getting Started Guide](https://help.aliyun.com/zh/sms/getting-started/get-started-with-sms)
You can configure the Alibaba Cloud SMS service either through the graphical interface or in the `application.yml` file.
To use `application.yml`, add/fill in the following Alibaba Cloud SMS configuration (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: alibaba # SMS provider type, supports "alibaba"
alibaba: # Alibaba Cloud SMS configuration
access-key-id: # Your AccessKey ID
access-key-secret: # Your AccessKey Secret
sign-name: # SMS signature
template-code: # SMS template code
```
1. Create an Alibaba Cloud account and activate SMS service
- Visit [Alibaba Cloud SMS Console](https://dysms.console.aliyun.com/)
- Activate SMS service
2. Create a signature (sign-name)
- Log in to [SMS Console](https://dysms.console.aliyun.com/)
- Select Domestic/International SMS service
- Go to "Signature Management" page and click "Add Signature"
- Fill in signature information and submit for review
- Wait for signature approval
3. Create a message template (template-code)
- Go to "Template Management" page
- Click "Add Template"
- Create a template with the following format:
```text
Monitor: `instance`, Alert Level: `priority`. Content: `content`
```
- Submit the template for review
4. Obtain Access Key credentials (access-key-id, access-key-secret)
:::tip
Alibaba Cloud officially recommends using RAM user AccessKey with minimal permissions.
:::
- [Go to RAM Access Control](https://ram.console.aliyun.com/users) to manage RAM users
- Create user and select "Access Key for API Access"
- Securely save the AccessKey ID and AccessKey Secret
- Grant SMS service permission "AliyunDysmsFullAccess" to the user
Now you can configure this information in your hertzbeat application.
### UniSMS Configuration
UniSMS is an aggregated SMS service platform. You can refer to [UniSMS Documentation](https://unisms.apistd.com/docs/tutorials) for configuration.
Add/Fill in the following UniSMS configuration to `application.yml` (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: unisms # SMS provider type, set to unisms
unisms: # UniSMS configuration
# auth-mode: simple or hmac
auth-mode: simple
access-key-id: YOUR_ACCESS_KEY_ID
# hmac mode need to fill in access-key-secret
access-key-secret: YOUR_ACCESS_KEY_SECRET
signature: YOUR_SMS_SIGNATURE
template-id: YOUR_TEMPLATE_ID
```
1. Register UniSMS account
- Visit [UniSMS website](https://unisms.apistd.com/)
2. Create signature
- Log in to [UniSMS Console](https://unisms.apistd.com/console/)
- Go to "SMS Filing - Signature Management" page
- Click "Add Signature"
- Fill in signature information and submit for review
- Wait for signature approval
3. Create message template
- Go to "SMS Filing - Template Management" page
- Click "Add Template"
- Create a template with the following format:
```text
Monitor: {instance}, Alert Level: {priority}. Content: {content}
```
- Submit the template for review
4. Obtain `access-key-id` and `access-key-secret`
- Log in to [UniSMS Console](https://unisms.apistd.com/console/)
- Go to "Credential Management" page
- Get AccessKey ID and AccessKey Secret
- Securely save the AccessKey ID and AccessKey Secret
:::note
UniSMS provides two authentication methods for developers to choose from, which can be set in Console - Credential Management, with Simple Mode as default.
- Simple Mode [Default]: This mode only verifies AccessKey ID without request parameter signature, making it easier for developers to integrate quickly.
- HMAC Mode: This mode requires signing request parameters with AccessKey Secret to enhance the security and authenticity of requests.
:::
Now you can configure this information in your hertzbeat application.
### Smslocal SMS Configuration
SMSLocal is an all-in-one SMS service for businesses, with features like multi-way sending, strong security, and 24/7 support. You can refer to smslocal's [Developer Documentation](https://www.smslocal.com/developer/) for configuration.
Add/Fill in the following Smslocal configuration to `application.yml` (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: smslocal # SMS provider type, set to smslocal
smslocal: # Smslocal configuration
api-key: YOUR_API_KEY_HERE
```
1. Register smslocal account
- Visit [Smslocal Website](https://www.smslocal.com/)
2. Obtain `api-key`
- Log in to [Smslocal Api Access](https://secure.smslocal.com/cpaas/pages/profile/settings/api-reference)
- Go to "API Access" page
- Click the eye button
- Copy the displayed access key
- Then you can configure the `application.yml` file
Now you can configure this information in your hertzbeat application.
### AWS Cloud SMS Configuration
To activate and use the AWS Cloud SMS service, refer to the official AWS documentation: [SMS Getting Started Guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-sms-mms.html)
You can configure the AWS Cloud SMS service either through the graphical interface or in the `application.yml` file.
To use `application.yml`, add/fill in the following AWS Cloud SMS configuration (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: aws # SMS provider type, supports "aws"
aws: # AWS Cloud SMS configuration
access-key-id: # Your AccessKey ID
access-key-secret: # Your AccessKey Secret
region: # Region Of Your AWS
```
1. Create an AWS Cloud account
- If you dont already have an AWS account, sign up at [AWS Cloud SMS Console](https://aws.amazon.com/console/)
2. Obtain Access Key credentials (access-key-id, access-key-secret)
- Go to the AWS IAM (Identity and Access Management) Console.
- Create an IAM user with programmatic access and attach the necessary permissions.
- Retrieve your Access Key ID and Secret Access Key (You will need these for configuration).
3. Select a Specific AWS Region for SMS Messaging
- Choose a region that supports AWS End User Messaging (SMS Service).
- You can check the supported regions [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).
4. Move from the AWS SMS Sandbox to Production
- By default, AWS SMS operates in sandbox mode, which restricts SMS delivery to verified phone numbers.
To send messages to any number, you must move your account to production mode. follow this [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html#sandbox-sms-move-to-production)
5. Verify Destination Phone Numbers (for Sandbox Mode)
- if you are still in sandbox mode, you can only send SMS messages to verified phone numbers. To add a verified number, follow this [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/verify-destination-phone-number.html)
- Note: You do not need to create an Origination Identity or Origination Simulator—just use the AWS CLI to add verified phone numbers.
> The message template is fixed as follows: "Instance: {}, Priority: {}, Content: {}"
Now you can configure this information in your hertzbeat application.
### Twilio SMS Configuration
To activate and use the Twilio SMS service, refer to the official Twilio documentation: [SMS Getting Started Guide](https://www.twilio.com/docs/sms/quickstart)
You can configure the Twilio SMS service either through the graphical interface or in the `application.yml` file.
To use `application.yml`, add/fill in the following Twilio SMS configuration (replace parameters with your own SMS server configuration):
```yaml
alerter:
sms:
enable: true # Whether to enable
type: twilio # SMS provider type, supports "twilio"
twilio: # Twilio SMS configuration
account-sid: # Your Twilio Account SID
auth-token: # Your Twilio Auth Token
twilio-phone-number: # Your Twilio Phone Number
```
1. Create a Twilio account
- If you don't have a Twilio account, sign up at [Twilio Console](https://www.twilio.com/console)
- You'll get a free trial account that allows you to test the SMS service
2. Obtain Twilio credentials
- After signing in, locate your Account SID and Auth Token on the dashboard
- These credentials will be used to authenticate API requests
3. Get a Twilio Phone Number
- In the Twilio Console, navigate to "Phone Numbers" > "Manage" > "Active Numbers"
- Click "Buy a Number" or use the trial number provided by Twilio
- Make sure the number has SMS capabilities enabled
- This number will be used as the sender for your SMS alerts
- A phone number is required for the Twilio SMS service to work
4. Testing Your Configuration on Twilio
- Twilio provides a sandbox environment for testing
- If you are in the trial period, you will only be able to send SMS to verified phone numbers
- To verify a phone number, add it to your verified phone numbers list in the Twilio Console
> The message follows the format: "Instance: {}, Priority: {}, Content: {}"
This information can be configured in the HertzBeat application.
## Operation steps
1. **【Alarm notification】->【Add new recipient】 ->【Select SMS notification method】**
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.**
If you have any issues, please provide feedback through the communication group or ISSUE!
+65
View File
@@ -0,0 +1,65 @@
---
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`<TOKEN>`/getUpdates```, **`use the Bot Token from the previous step to replace the <TOKEN>`**, 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)
2. **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!
+198
View File
@@ -0,0 +1,198 @@
---
id: alert_threshold
title: Alarm Threshold Configuration
sidebar_label: Alarm Threshold
---
:::tip
Alarm Threshold are the core function of `HertzBeat`, users can configure the trigger conditions of the alarm through the threshold rules.
Threshold rules support real-time threshold and scheduled threshold, and can be applied to **monitoring metrics** and **log data** data types. Real-time thresholds can directly trigger alerts when monitoring data is collected, and scheduled thresholds support PromQL, SQL and other expressions to calculate trigger alerts within a specified time period.
Support visual page configuration or more flexible expression rule configuration, support configuring trigger times, alarm levels, notification templates, associated specified monitoring and so on. Notification templates support object nested access, which can display alarm information more flexibly.
:::
![threshold](/img/docs/help/alert-threshold-1.png)
## Real-time Threshold
> Real-time threshold means that the alarm is triggered directly when the monitoring data is collected, which is suitable for scenarios with high real-time requirements. Supports both monitoring metrics and log data types.
### Creating Real-time Threshold Rules
> System Page -> Alerting -> Alert Threshold -> New Threshold -> Select Real-time Threshold -> Select Data Type (Monitoring Metrics/Log Data)
#### Monitoring Metrics Real-time Threshold
> HertzBeat Page -> Alerting -> Threshold -> New Threshold -> ReadTime Threshold Rule
Configure the threshold, for example: Select the SSL certificate metric object, configure the alarm expression-triggered when the metric `expired` is `true`, that is, `equals(expired,"true")`, set the alarm level notification template information, etc.
![HertzBeat](/img/docs/start/ssl_5.png)
Configuration item details:
- **Threshold Name**: Unique name defining this threshold rule
- **Data Type**: Select monitoring metrics or log data
- **Metric Object**: Select the monitoring metric object for which we need to configure the threshold. For example: Under website monitoring type -> response time metric
- **Threshold Rule**: Configure the alarm trigger rules for specific indicators, support graphical interface and expression rules. For expression environment variables and operators, see the page prompts. For detailed help on threshold expressions, see [Threshold Expression Help](alert_threshold_expr)
- **Associated Monitors**: Apply this threshold rule to the specified monitoring object (support direct binding and label association). If not configured, it will be applied to all monitoring objects that meet this threshold type rule
- **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency
- **Trigger Count**: Set how many times the threshold must be triggered before the alert is actually triggered
- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page, supports object nested access. For example: `__instancename__`, metric value is `responseTime`, which is greater than 50 triggering the alert, also supports accessing object properties like `${log.attributes.hostname}`
- **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert
- **Additional Annotations**: Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm
- **Enable Alert**: Enable or disable this alert threshold configuration
#### Log Data Real-time Threshold
Configure real-time alert rules for log data, supporting condition judgment on log content, attributes, resource information, etc.
For example, trigger an alert when 60 error logs are received within 300 seconds.
![log_realtime](/img/docs/help/alert-threshold-3.png)
Configuration item details:
- **Threshold Name**: Unique name defining this threshold rule
- **Data Type**: Select log data
- **Threshold Rule**: Configure log alert trigger rules, support graphical interface and expression rules:
- **Graphical Interface**: Visual configuration of log field conditions, supports `log.level`, `log.message`, `log.attributes.*`, `log.resource.*` and other fields
- **Expression Rules**: Use custom expressions, supports object nested access, for example: `equals(log.level,"ERROR")` or `contains(log.attributes.hostname,"server-01")`
- **Time Window**: Set the time window for log aggregation, in seconds, minimum 60 seconds. Logs within this time window will be aggregated and processed
- **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency
- **Alert Mode**: Select alert sending method:
- **Window Group Mode (group)**: Send all logs that meet the conditions within the time window as one alert
- **Individual Mode (individual)**: Send each log that meets the conditions as a separate alert
- **Trigger Count**: Set how many logs that meet the conditions within the time window will trigger the alert
- **Notification Template**: The template for the notification message sent after the alert is triggered, supports object nested access:
- Basic variables: ``__instancename__``, ``__alertname__``, etc.
- Log fields: `${log.level}`, `${log.message}`, `${log.timestamp}`, etc.
- Nested attributes: `${log.attributes.hostname}`, `${log.resource.service.name}`, etc.
- **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert
- **Additional Annotations**: Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm
- **Enable Alert**: Enable or disable this alert threshold configuration
**The threshold alert configuration is complete, and alerts that have been successfully triggered can be viewed in the [Alarm Center].**
**If you need to send alert notifications via email, WeChat, DingTalk, or Feishu, you can configure it in [Notification].**
## Scheduled Threshold
> **Scheduled Threshold Rules** refer to rules where the system evaluates an expression (such as PromQL, SQL) at specified periodic intervals to determine whether monitoring data or log data within a given time range meets alert conditions. These rules are suitable for scenarios requiring trend analysis or aggregated data evaluation, rather than immediate reactions to single real-time data points. Supports both monitoring metrics and log data types.
### Syntax for Scheduled Threshold Expressions
Scheduled threshold rules use a dedicated expression language based on ANTLR syntax, supporting different query syntax based on data type:
#### Monitoring Metrics Expression Syntax (PromQL)
Supports PromQL-style queries. For specific syntax, please refer to the official documentation of your configured time-series database regarding PromQL. The syntax includes:
1. **Query Expressions**: Used to reference monitoring data
```text
cpu_usage
memory{__field__="field1"}
```
2. **Comparison Expressions**: Used to compare values against thresholds
```text
cpu_usage > 80
memory_usage >= 90.5
response_time < 1000
```
3. **Logical Expressions**: Used to combine multiple conditions
```text
cpu_usage > 80 and memory_usage > 70
disk_usage > 90 or inode_usage > 85
cpu_usage > 80 unless maintenance_mode == 1
```
4. **Parenthesis Expressions**: Used to control the order of evaluation
```text
(cpu_usage > 80 or memory_usage > 90) and service_status == 1
```
#### Log Data Expression Syntax (SQL)
Supports standard SQL syntax to query log data and filter data, allowing aggregated queries on log tables:
```sql
-- Query error log count
SELECT COUNT(*) as error_count
FROM hertzbeat_logs
WHERE level = 'ERROR'
AND timestamp >= NOW() - INTERVAL 5 MINUTE
-- Group by service to count errors
SELECT service_name, COUNT(*) as error_count
FROM hertzbeat_logs
WHERE level = 'ERROR'
GROUP BY service_name
HAVING COUNT(*) > 10
```
### Creating Scheduled Threshold Rules
> System Page -> Alerting -> Alert Threshold -> New Threshold -> Select Scheduled Threshold -> Select Data Type (Monitoring Metrics/Log Data)
#### Monitoring Metrics Scheduled Threshold
Configure scheduled thresholds for monitoring metrics. For example: define the expression `cpu_usage{instance="server1"}` > 80` for a group of CPU metrics, and trigger an alert when the expression is satisfied.
![threshold](/img/docs/help/alert-threshold-2.png)
Configuration Items Explained:
- **Rule Name**: A unique identifier for the threshold rule
- **Data Type**: Select monitoring metrics
- **Query Language**: Select PromQL as the query language
- **Threshold Expression**: The expression that defines the alert condition. It will be evaluated periodically according to the "Execution Interval". Supported elements include:
- **Query Identifiers**: References to monitoring metrics (e.g., `cpu_usage`, `memory{instance="server1"}`)
- **Comparison Operators**: `>`, `>=`, `<`, `<=`, `==`, `!=`
- **Logical Operators**: `and`, `or`, `unless`
- **Parentheses**: Used for grouping and controlling evaluation order
- **Numeric Literals**: Threshold values (e.g., `80`, `90.5`)
- **Execution Interval**: The time interval (in seconds) at which the expression is evaluated. For example, `300` means the rule is checked every 5 minutes
- **Alert Level**: The severity level triggered when the condition is met. Available levels: `warning`, `critical`, `emergency`
- **Trigger Count**: The number of consecutive times the expression must evaluate to true before an alert is actually triggered
- **Notification Template**: The message template sent when an alert is triggered. Template variables are available on the configuration page, supports object nested access
- **Additional Labels**: Custom labels that will be attached to the alert when it is generated
- **Additional Annotations**: Custom annotation information (supports environment variables) that will be rendered and attached to the alert
- **Enable Alerting**: Controls whether this threshold rule is active or not
#### Log Data Scheduled Threshold
Configure scheduled thresholds for log data, performing aggregated analysis and alert judgment on logs through SQL queries.
![threshold](/img/docs/help/alert-threshold-4.png)
Configuration Items Explained:
- **Rule Name**: A unique identifier for the threshold rule
- **Data Type**: Select log data
- **Query Language**: Select SQL as the query language
- **Log Query Expression**: Use standard SQL syntax to query log data, supporting aggregation functions, grouping, filtering and other operations. For example:
```sql
SELECT COUNT(*) as error_count FROM hertzbeat_logs
WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE
```
- **Execution Interval**: The time interval (in seconds) at which the SQL query is executed. For example, `300` means the query is executed every 5 minutes
- **Alert Level**: The severity level triggered when the condition is met. Available levels: `warning`, `critical`, `emergency`
- **Alert Mode**: Select alert sending method:
- **Window Group Mode (group)**: Send the query result as a single alert
- **Individual Mode (individual)**: Send each row in the query result as a separate alert
- **Trigger Count**: The number of consecutive times the query result meets the alert condition before an alert is actually triggered
- **Notification Template**: The message template sent when an alert is triggered, supports accessing fields in the query result, for example:
- Query result fields: ``error_count``, ``service_name``, etc.
- Basic variables: ``__alertname__``, ``__severity__``, etc.
- **Additional Labels**: Custom labels that will be attached to the alert when it is generated
- **Additional Annotations**: Custom annotation information (supports environment variables) that will be rendered and attached to the alert
- **Enable Alerting**: Controls whether this threshold rule is active or not
**Once the threshold rules are configured, successfully triggered alerts will be displayed in the [Alert Center].**
**To send alert notifications via Email, WeChat, DingTalk, or Feishu, please go to [Notification Configuration] to set up the appropriate channels.**
+66
View File
@@ -0,0 +1,66 @@
---
id: alert_threshold_expr
title: Threshold Trigger Expression
sidebar_label: Threshold Trigger Expression
---
> When configuring threshold alerts, it is necessary to set up threshold trigger expressions. The system calculates whether to trigger an alert based on the expression and the monitored metric values. Here, we provide a detailed explanation of expression usage.
## Supported Operators in Expressions
| Operator (Visual Configuration) | Operator (Expression Configuration) | Supported Types | Description |
|---------------------------------|-------------------------------------|-----------------------|--------------------------------------------|
| Equals | equals(str1,str2) | String | Check if strings are equal |
| Not Equals | !equals(str1,str2) | String | Check if strings are not equal |
| Contains | contains(str1,str2) | String | Check if string contains |
| Not Contains | !contains(str1,str2) | String | Check if string does not contain |
| Matches | matches(str1,str2) | String | Check if string matches regex |
| Not Matches | !matches(str1,str2) | String | Check if string does not match regex |
| Exists | exists(obj) | String, Numeric, Time | Check if value exists |
| Not Exists | !exists(obj) | String, Numeric, Time | Check if value does not exist |
| Greater than | obj1 > obj2 | Numeric, Time | Check if value is greater than |
| Less than | `obj1 < obj2` | Numeric, Time | Check if value is less than |
| Greater than or Equal to | obj1 >= obj2 | Numeric, Time | Check if value is greater than or equal to |
| Less than or Equal to | `obj1 <= obj2` | Numeric, Time | Check if value is less than or equal to |
| Not Equal to | obj1 != obj2 | Numeric, Time | Check if values are not equal |
| Equal to | obj1 == obj2 | Numeric, Time | Check if values are equal |
### Expression Function Library List
| Supported Function Library | Description |
|--------------------------------------------|------------------------------------------------------------------------------------------|
| condition ? trueExpression : falseExpression | Ternary operator |
| toDouble(str) | Convert string to Double type |
| toBoolean(str) | Convert string to Boolean type |
| toInteger(str) | Convert string to Integer type |
| array[n] | Retrieve the nth element of an array |
| * | Multiplication |
| / | Division |
| % | Modulo |
| ( and ) | Parentheses for controlling the order of operations in logical or mathematical expressions |
| + | Addition |
| - | Subtraction |
| && | Logical AND operator |
| \|\| | Logical OR operator |
#### Supported Environment Variables
> Environment variables refer to variables supported by metric values, used in expressions. During threshold calculation and judgment, these variables will be replaced with actual values.
Non-fixed Environment Variables: These variables change dynamically based on the selected monitoring metric. For example, if we choose **response time metric for website monitoring**, the environment variable would be `responseTime - this represents response time variable`. If we want to set an alert trigger for **response time greater than 400 for website monitoring**, the expression would be `responseTime>400`.
Fixed Environment Variables (Less commonly used): `instance: instance value`
This variable is mainly used for calculations involving multiple instances. For instance, if we collect usage metrics for C drive and D drive (`usage` being a non-fixed environment variable), and we only want to set an alert for **usage greater than 80 for the C drive**, the expression would be `equals(instance,"c")&&usage>80`.
#### Expression Configuration Examples
1. Website Monitoring -> Alert when response time is greater than or equal to 400ms
`responseTime>=400`
2. API Monitoring -> Alert when response time is greater than 3000ms
`responseTime>3000`
3. Overall Monitoring -> Alert when response time for URL (instance) path '[https://baidu.com](https://baidu.com)' is greater than 200ms
`equals(instance,"https://baidu.com")&&responseTime>200`
4. MYSQL Monitoring -> Alert when 'threads_running' metric under 'status' exceeds 7
`threads_running>7`
If you encounter any issues, feel free to discuss and provide feedback through our community group or ISSUE tracker!
+66
View File
@@ -0,0 +1,66 @@
---
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 formatJSON
```json
{
"alarmId": 76456,
"target": "`target`",
"thresholdId": 33455,
"priority": 0,
"content": "udp_port monitoring availability alert, code is FAIL",
"status": 0,
"times": 1,
"triggerTime": "2022-02-25T13:32:13",
"tags": {
"app": "windows",
"monitorId": "180427708350720",
"metrics": "availability",
"code": "UN_CONNECTABLE",
"thresholdId": "112",
"monitorName": "WINDOWS_192.168.124.12"
}
}
```
| | |
|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| alarmId | 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 |
| thresholdId | 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 告警阈值触发次数 |
| triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) |
| tags | example: `{key1:value1}` |
### 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!
+38
View File
@@ -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!
+114
View File
@@ -0,0 +1,114 @@
---
id: almalinux
title: Monitoring AlmaLinux Operating System
sidebar_label: AlmaLinux Operating System
keywords: [open-source monitoring system, open-source operating system monitoring, AlmaLinux operating system monitoring]
---
> Collect and monitor common performance metrics of the AlmaLinux operating system.
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+36
View File
@@ -0,0 +1,36 @@
---
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.io/console` website is `/console` |
| Request mode | Set the request mode of interface callGET, 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 |
| Headers | HTTP request headers |
| Params | HTTP query params, support [time expression](time_expression) |
| 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, support [time expression](time_expression) |
| 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 setsummary
| Metric name | Metric unit | Metric help description |
|--------------|-------------|-------------------------|
| responseTime | ms | Website response time |
+61
View File
@@ -0,0 +1,61 @@
---
id: apollo
title: Apollo Configuration Center
sidebar_label: Apollo Configuration Center
keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Apollo configuration center monitoring ]
---
> Monitoring of general metrics for the Apollo Configuration Center service is performed by calling the Prometheus
> interface of the Apollo Configuration Center.
## Prerequisites
1. Set up the Apollo configuration center according to
the [deployment documentation](https://www.apolloconfig.com/#/en/deployment/quick-start).
2. Visit ```http://${someIp:somePort}/prometheus``` to verify if you can access the metrics data.
For more details, please refer
to: [Apollo Monitoring Documentation](https://www.apolloconfig.com/#/en/design/apollo-design?id=v-monitoring-related)
3. Note⚠️: Starting from version 1.5.0, the Apollo server supports exposing Prometheus-formatted metrics
via `/prometheus`.
### Configuration parameters
| Parameter Name | Parameter Help Description |
|-------------------|-----------------------------------------------------------------------------------------------------------------------|
| Target Host | The monitored peer's IPv4, IPv6, or domain name. Note⚠️: Do not include protocol headers (e.g., https://, http://). |
| Port | Pulsar's webServicePort value, defaulting to 8080. |
| Task Name | The name identifying this monitoring task. The name must be unique. |
| Query Timeout | Set the connection timeout in milliseconds (ms). Default is 3000 ms. |
| Monitoring Cycle | The interval time for periodic data collection, measured in seconds. The minimum configurable interval is 30 seconds. |
| Binding Tags | Used for classifying and managing monitored resources |
| Description Notes | Additional identifiers and descriptive notes for this monitoring task. Users can add notes here. |
### Collection Metrics
#### Metric Set: Basic Information Metrics
| Metric Name | Unit | Metric Help Description |
|--------------------------------|---------|--------------------------------------------------------------------------|
| application_ready_time_seconds | Seconds | Time taken for the application to transition from startup to ready state |
| process_uptime_seconds | seconds | Total time the process has been running |
| process_cpu_usage | % | Current process CPU usage |
#### Metric Set: : JVM
| Metric Name | Unit | Metric Help Description |
|-----------------------------------|------|---------------------------------------------------------------|
| system_cpu_usage | % | System CPU Usage |
| system_load_average_1m | None | System load average over the past minute |
| jvm_memory_committed_bytes | MB | Size of memory requested by the JVM from the operating system |
| jvm_memory_used_bytes | MB | JVM's current actual memory usage |
| jvm_memory_max_bytes | MB | Maximum memory limit available to the JVM |
| jvm_gc_pause_seconds_count | None | Total number of JVM GC pause events |
| jvm_gc_pause_seconds_sum | None | Total time spent in JVM GC pauses |
| jvm_memory_usage_after_gc_percent | None | JVM memory usage after garbage collection |
#### Metric Set: System Resources
| Metric Name | Unit | Metric Help Description |
|--------------------------|------|--------------------------------------------------------------------|
| process_files_max_files | None | Limit on the maximum number of file descriptors a process may open |
| process_files_open_files | None | Number of file descriptors currently opened by the process |
+48
View File
@@ -0,0 +1,48 @@
---
id: bulletin
title: Customizable bulletins
sidebar_label: Customized bulletins
keywords: [bulletin, custom]
---
> Customize a bulletin to show a table of self-selected metrics for some kind of monitoring.
## Add Bulletin Item
1. Click the `New` button in the toolbar to open the bulletin creation dialog.
2. Enter the `Bulletin Name`, select the `Monitor Type`, and then select the associated `Monitor Task Name`.
- The `Monitor Task Name` is a multi-select field. Type in its search box to filter monitors by **name, label key, or label value**; each option also shows its labels as `key:value` tags.
3. In the `Monitor Metrics` tree, check the metrics you want to show. The tree is grouped by metric, and checking a parent node selects all of its fields at once.
4. Click the `OK` button to finish creating the customized bulletin.
![new-bulletin](/img/docs/help/bulletin-1.png)
## Edit Bulletin Item
1. Click a bulletin name in the tab bar to make it the current bulletin.
2. Click the `...` (more) button in the toolbar and choose `Edit`. The dialog opens pre-filled with the current bulletin's name, monitor tasks, and selected metrics.
- The `Monitor Type` cannot be changed while editing. To use a different monitor type, create a new bulletin instead.
3. Adjust the name, monitor tasks, or metrics as needed, then click `OK` to save.
![edit-bulletin](/img/docs/help/bulletin-2.png)
## Viewing Multiple Bulletins
1. Each bulletin appears as a tab. Click the name of a bulletin in the tab bar to view its details.
![dashboard-bulletin](/img/docs/help/bulletin-3.png)
## Deleting Bulletins
1. Select the bulletin you want to remove, click the `...` (more) button in the toolbar, and choose `Delete Bulletin` to delete the current bulletin.
2. Choose `Batch Delete Bulletin` from the same `...` menu to select and delete multiple bulletins at once.
![bulletin](/img/docs/help/bulletin-4.png)
+114
View File
@@ -0,0 +1,114 @@
---
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 |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+95
View File
@@ -0,0 +1,95 @@
---
id: clickhouse
title: Monitoring ClickHouse Database
sidebar_label: ClickHouse Database
keywords: [open source monitoring system, open source database monitoring, ClickHouse database monitoring]
---
> Collect and monitor general performance metrics for the ClickHouse database.
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------------|
| Monitor Host | IP address, IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ without protocol prefix (e.g., https://, http://). |
| Task Name | Name identifying this monitoring, ensuring uniqueness. |
| Port | Port number of the database exposed to the outside, default is 8123. |
| Query Timeout | Timeout for SQL queries to respond, in milliseconds (ms), default is 6000ms. |
| Database Name | Name of the database instance, optional. |
| Username | Username for database connection, optional. |
| Password | Password for database connection, optional. |
| Collection Interval | Interval for periodic data collection during monitoring, in seconds, with a minimum interval of 30 seconds. |
| Tag Binding | Used for categorizing and managing monitored resources. |
| Description | Additional information to identify and describe this monitoring, where users can add remarks. |
### Collected Metrics
#### Metric Set: ping Availability
| Metric Name | Metric Unit | Metric Description |
|--------------|-------------|--------------------|
| responseTime | N/A | Response time |
#### Metric Set: Data from system.metrics table
| Metric Name | Metric Unit | Metric Description |
|----------------------|-------------|----------------------------------------------------------|
| Query | N/A | Number of queries being executed |
| Merge | N/A | Number of background merges being executed |
| Move | N/A | Number of background moves being executed |
| PartMutation | N/A | Number of table mutations |
| ReplicatedFetch | N/A | Number of data blocks fetched from replicas |
| ReplicatedSend | N/A | Number of data blocks sent to replicas |
| ReplicatedChecks | N/A | Number of consistency checks on data blocks |
| QueryPreempted | N/A | Number of queries stopped or waiting |
| TCPConnection | N/A | Number of TCP connections |
| HTTPConnection | N/A | Number of HTTP connections |
| OpenFileForRead | N/A | Number of open readable files |
| OpenFileForWrite | N/A | Number of open writable files |
| QueryThread | N/A | Number of threads processing queries |
| ReadonlyReplica | N/A | Number of Replicated tables in read-only state |
| EphemeralNode | N/A | Number of ephemeral nodes in ZooKeeper |
| ZooKeeperWatch | N/A | Number of ZooKeeper event subscriptions |
| StorageBufferBytes | Bytes | Bytes in Buffer tables |
| VersionInteger | N/A | ClickHouse version number |
| RWLockWaitingReaders | N/A | Number of threads waiting for read-write lock on a table |
| RWLockWaitingWriters | N/A | Number of threads waiting for write lock on a table |
| RWLockActiveReaders | N/A | Number of threads holding read lock on a table |
| RWLockActiveWriters | N/A | Number of threads holding write lock on a table |
| GlobalThread | N/A | Number of threads in global thread pool |
| GlobalThreadActive | N/A | Number of active threads in global thread pool |
| LocalThread | N/A | Number of threads in local thread pool |
| LocalThreadActive | N/A | Number of active threads in local thread pool |
#### Metric Set: Data from system.events table
| Metric Name | Metric Unit | Metric Description |
|------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Query | N/A | Number of queries to parse and possibly execute. Excludes queries rejected due to AST size limits, quota limits, or simultaneous query limits. May include internal queries initiated by ClickHouse. Subqueries are not counted. |
| SelectQuery | N/A | Number of Select queries possibly executed |
| InsertQuery | N/A | Number of Insert queries possibly executed |
| InsertedRows | N/A | Number of rows inserted into all tables |
| InsertedBytes | Bytes | Number of bytes inserted into all tables |
| FailedQuery | N/A | Number of failed queries |
| FailedSelectQuery | N/A | Number of failed Select queries |
| FileOpen | N/A | Number of file openings |
| MergeTreeDataWriterRows | N/A | Number of data rows written to MergeTree tables |
| MergeTreeDataWriterCompressedBytes | Bytes | Number of compressed data bytes written to MergeTree tables |
#### Metric Set: Data from system.asynchronous_metrics table
| Metric Name | Metric Unit | Metric Description |
|------------------------------------------|-------------|-------------------------------------------------------|
| AsynchronousMetricsCalculationTimeSpent | N/A | Time spent calculating asynchronous metrics (seconds) |
| jemalloc.arenas.all.muzzy_purged | N/A | Number of purged muzzy pages |
| jemalloc.arenas.all.dirty_purged | N/A | Number of purged dirty pages |
| BlockReadBytes_ram1 | N/A | Number of bytes read from ram1 block |
| jemalloc.background_thread.run_intervals | N/A | Number of intervals jemalloc background thread ran |
| BlockQueueTime_nbd13 | N/A | Queue wait time for nbd13 block |
| jemalloc.background_thread.num_threads | N/A | Number of jemalloc background threads |
| jemalloc.resident | N/A | Physical memory size allocated by jemalloc (bytes) |
| InterserverThreads | N/A | Number of Interserver threads |
| BlockWriteMerges_nbd7 | N/A | Number of block write merges for nbd7 block |
| MarkCacheBytes | N/A | Size of marks cache in StorageMergeTree |
| MarkCacheFiles | N/A | Number of files in marks cache for StorageMergeTree |
| MaxPartCountForPartition | N/A | Maximum active data blocks in partitions |
+131
View File
@@ -0,0 +1,131 @@
---
id: collector
title: HertzBeat Collector
sidebar_label: Collector
keywords: [monitoring, observability, collector, metrics]
---
> HertzBeat Collector is a lightweight data collection module that enables metrics collection, high availability deployments, and cloud-edge collaboration in Apache HertzBeat.
## Introduction
HertzBeat Collector is a versatile and lightweight metrics collection module within the Apache HertzBeat™ monitoring system. It's designed to gather monitoring data from various targets and send the collected metrics to the main HertzBeat server for processing, alerting, and visualization.
With the collector module, you can implement:
- **High Availability**: Deploy multiple collectors to ensure continuous monitoring even if some collector instances fail
- **Load Balancing**: Distribute monitoring tasks across multiple collectors to improve performance
- **Cloud-Edge Collaboration**: Monitor resources in isolated networks while managing everything from a central HertzBeat server
## Collector Architecture
The collector module is built with a modular design to make it easily extensible for various monitoring scenarios. The architecture consists of:
1. **Collector Entry Point**: The main entry point for running the collector module, from which collection tasks are executed after startup.
2. **collector-basic**: Contains implementations for common protocols like HTTP, JDBC, SSH, SNMP, etc. These collectors typically don't require additional proprietary dependencies and can handle most basic monitoring needs.
3. **collector-common**: Provides general utility classes and methods, such as connection pools and caching mechanisms that other modules can reuse.
4. **collector-xxx**: Extension modules for specific services or protocols (MongoDB, RocketMQ, Kafka, NebulaGraph, etc.). These modules often require specific dependencies for their respective services.
## Supported Protocols
HertzBeat Collector supports an extensive list of monitoring protocols:
| Protocol Category | Protocols |
| ----------------- | ------------------------------------------------------------------------------------- |
| Web/API | `http`, `ssl_cert`, `websocket` |
| Databases | `jdbc`, `redis`, `mongodb`, `memcached` |
| Operating Systems | `ssh`, `ipmi` |
| Network | `icmp` (ping), `telnet`, `snmp`, `modbus` |
| Messaging | `mqtt`, `rocketmq`, `kafka` |
| Email | `pop3`, `smtp`, `imap` |
| Cloud Services | `prometheus`, `nebulagraph`, `ngql` |
| Others | `jmx`, `dns`, `ftp`, `ntp`, `udp`, `nginx`, `redfish`, `script`, `registry`, `httpsd` |
## Deployment Options
You can deploy HertzBeat Collector in several ways depending on your environment and needs, once you log in to the HertzBeat web interface and go to the collector, you can see the deployment options.
Parameters explanation:
- `-e IDENTITY=custom-collector-name`: (Optional) Set a unique identifier for this collector. Must be unique across all collectors.
- `-e MODE=public`: Set the running mode (public or private), for public cluster or private cloud-edge mode.
- `-e MANAGER_HOST=192.168.1.100`: Important! Set the IP address of the main HertzBeat server. Replace with your actual server IP.
- `-e MANAGER_PORT=1158`: (Optional) Set the port of the main HertzBeat server, default is 1158.
- `-v $(pwd)/logs:/opt/hertzbeat-collector/logs`: (Optional) Mount the log files to the local host.
## Operating Modes
HertzBeat Collector supports two operating modes:
### Public Mode (Cluster Mode)
In public mode, collectors form a cluster with the main HertzBeat server. Tasks are automatically distributed among collectors, providing high availability and load balancing.
- Set `MODE=public` when deploying the collector
- All collectors must have connectivity to the main HertzBeat server
- Great for horizontal scaling to handle large numbers of monitoring tasks
### Private Mode (Cloud-Edge Mode)
In private mode, collectors operate in isolated networks while still reporting to a central HertzBeat server. This allows monitoring of resources in multiple separate networks.
- Set `MODE=private` when deploying the collector
- Collectors need outbound connectivity to the HertzBeat server, but inbound connectivity is not required
- Ideal for monitoring resources across different data centers, cloud providers, or network segments
## Configuration Parameters
| Parameter | Description | Default |
| -------------- | ----------------------------------- | ------------------------- |
| `identity` | Unique identifier for the collector | Auto-generated if not set |
| `mode` | Operating mode (public/private) | public |
| `manager-host` | IP address of the HertzBeat server | IP |
| `manager-port` | Port of the HertzBeat server | 1158 |
## Collector Management
You can manage collectors through the HertzBeat web interface:
1. Navigate to the Overview page to see all registered collectors
2. Monitor collector status (online/offline), metrics tasks, and system information
3. Enable or disable collectors as needed
## High Availability Setup
To achieve high availability with HertzBeat collectors:
1. Deploy multiple collector instances across different servers or containers
2. Ensure all collectors have the same `mode` setting
3. Connect all collectors to the same HertzBeat server
4. HertzBeat will automatically distribute monitoring tasks and handle failover
If a collector goes offline, its tasks will be reassigned to other available collectors. When the collector comes back online, it will receive new tasks based on the current load distribution.
## Cloud-Edge Collaboration
For monitoring across isolated networks:
1. Deploy HertzBeat Server in your central management network
2. Deploy collectors in each isolated network you need to monitor
3. Configure collectors with:
- `MODE=private`
- `MANAGER_HOST=` pointing to your central HertzBeat server
4. Ensure outbound connectivity from each isolated network to the central server
5. Manage all monitoring tasks from the central HertzBeat dashboard
## Advanced Features
### Custom Protocol Support
HertzBeat's architecture allows for extending the collector with custom protocols. Developers can create new collector modules following the project's modular design.
### Task Scheduling
The collector automatically handles task scheduling based on task priority, available resources, and current system load. Tasks are processed with intelligent prioritization to ensure critical monitoring is performed first.
### Resource Utilization
Collectors are designed to be lightweight and efficient with system resources, making them suitable for deployment on various hardware, from small edge devices to powerful servers.
+108
View File
@@ -0,0 +1,108 @@
---
id: consul_sd
title: Monitoring Consul Service Discovery
sidebar_label: Consul Service Discovery
keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Consul service discovery]
---
> HertzBeat integrates with Consul registry to automatically discover service instances and create monitoring tasks for them.
## Overview
Consul Service Discovery allows HertzBeat to connect to your Consul server and automatically discover all registered service instances. When a new service instance is registered or an existing instance goes offline, HertzBeat will automatically create or delete corresponding monitoring tasks, achieving automated monitoring in microservice environments.
### PreRequisites
#### Deploy Consul Server
1. Deploy Consul server according to [Consul official documentation](https://developer.hashicorp.com/consul/docs/fundamentals/install).
2. Ensure Consul server is accessible from HertzBeat.
3. Verify that you can access Consul UI at `http://your-consul-server:8500/ui/`
4. Ensure the Consul HTTP API is accessible (default port: 8500)
### Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Target Name | Identify the name of this monitoring. The name needs to be unique. |
| Consul Host | Consul server IP address or domain name. Note⚠️Without protocol header (eg: https://, http://). Example: `consul-server` or `192.168.1.100` |
| Consul Port | Port provided by the Consul server. The default is 8500 |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Usage Steps
1. **Create Service Discovery Monitoring**
- In HertzBeat web UI, navigate to **Monitoring****New Monitoring**
- Select monitoring type: **Consul Service Discovery**
- Fill in the basic configuration parameters
2. **Configure Monitoring Template**
- After creating the service discovery monitoring, you need to specify a monitoring template
- The template defines what type of monitoring to create for discovered service instances
- For example: If discovered instances are HTTP services, you can select HTTP monitoring template
- Common template types: Port, HTTP, HTTPS, Ping, etc.
3. **Automatic Discovery**
- HertzBeat will periodically query Consul server based on the collection interval
- Automatically create monitoring tasks for newly registered service instances
- Automatically delete monitoring tasks for offline service instances
4. **View Discovered Instances**
- In the monitoring list, you can see all automatically created sub-monitoring tasks
- Each sub-monitoring task corresponds to a discovered service instance
### Example of usage
Suppose your Consul server is running at `192.168.1.100:8500`, and you want to automatically monitor all service instances registered in it.
Configuration example:
- **Target Name**: `Consul-Service-Discovery`
- **Consul Host**: `192.168.1.100`
- **Consul Port**: `8500`
- **Collection interval**: `60` seconds
- **Monitoring Template**: Select `Port` monitoring (to detect instance availability)
After configuration:
1. HertzBeat connects to Consul server via HTTP API
2. Retrieves all registered service instances
3. Automatically creates Port monitoring for each instance (e.g., `api-service-192.168.1.101:8080`)
4. Every 60 seconds, checks for newly registered or offline services and updates monitoring tasks accordingly
### Notes
- **Network Connectivity**: Ensure HertzBeat can access the Consul server address and port (default: 8500)
- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances
- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Consul server
- **ACL Token**: If Consul is configured with ACL (Access Control List), you may need to configure the appropriate token
- **Service Health**: Consul service discovery will discover both healthy and unhealthy instances
- **Datacenter**: By default, discovers services in the local datacenter. If you need to discover services in a specific datacenter, additional configuration may be required
- **Instance Naming**: Automatically created monitoring tasks are named in the format: `{ServiceName}-{Host}:{Port}`
### Collection Metric
#### Metric set: Monitor Target
| Metric name | Metric unit | Metric help description |
|-----------------|-------------|--------------------------------------------|
| target | none | Discovered service instance target |
| host | none | Service instance host address |
| port | none | Service instance port number |
### Use Cases
- **Microservice Architecture**: Automatically monitor all microservice instances registered in Consul
- **Service Mesh**: Monitor services using Consul Connect service mesh
- **Multi-Datacenter**: Monitor service instances across multiple Consul datacenters
- **Dynamic Scaling**: Automatically adapt to service instances added/removed due to autoscaling
- **Health Check**: Combine with Consul's health check mechanism to monitor service health status
- **Service Governance**: Centrally manage monitoring of all services in the Consul service ecosystem
### Integration with Consul Features
- **Service Health**: Consul service discovery can leverage Consul's health check information
- **Service Tags**: Service instances discovered from Consul may include tag information
- **KV Storage**: Can be used in conjunction with Consul KV storage to achieve more flexible service discovery
- **Service Mesh**: Supports service discovery in Consul Connect service mesh environment
+60
View File
@@ -0,0 +1,60 @@
---
id: dahua
title: Monitor Dahua Devices
sidebar_label: Dahua
keywords: [ monitor, dahua ]
---
> Monitor Dahua devices through HTTP interface to collect health data.
## Configuration
| Parameter | Description |
| ----------- | ----------- |
| Host | Target IP/Domain |
| Name | Unique monitor name |
| Port | Network port (default 80) |
| Timeout | Request timeout in ms |
| Username | Device username |
| Password | Device password |
| SSL | Enable HTTPS |
| Interval | Collection interval (≥30s) |
## Metrics
### Network Info
- Default Interface
- Domain Name
- Hostname
- eth0 IP Address
- eth0 Gateway
- eth0 MAC
- eth0 Subnet Mask
- eth0 MTU
- DNS Servers
### User Info
- Client Address
- Username
- Login Type
- Login Time
### NTP Info
- NTP Server
- NTP Port
- Sync Interval
## Implementation
Access device APIs via:
1. Network: `/cgi-bin/configManager.cgi?action=getConfig&name=Network`
2. Users: `/cgi-bin/userManager.cgi?action=getActiveUserInfoAll`
3. NTP: `/cgi-bin/configManager.cgi?action=getConfig&name=NTP`
Using Digest Auth and parsing config format responses.
+111
View File
@@ -0,0 +1,111 @@
---
id: darwin
title: darwin operating system monitoring
sidebar_label: darwin operating system
keywords: [open source monitoring tool, open source os monitoring tool, monitoring darwin operating system metrics]
---
> Collect and monitor the general performance Metrics of darwin operating system.
## Configuration parameter
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage (to be fixed) |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information - to be finished
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+87
View File
@@ -0,0 +1,87 @@
---
id: db2
title: MonitoringDB2 database monitoring
sidebar_label: DB2 Database
keywords: [ open source monitoring tool, open source database monitoring tool, monitoring DB2 database metrics ]
---
> Collect and monitor general performance metrics (tablespace, session status, process count, locks, slow queries, etc.)
> for DB2 databases.
## Note: DB2 JDBC Driver JAR Must be Added
- Download the DB2 JDBC driver JAR package, for
example, [jcc.jar](https://repo1.maven.org/maven2/com/ibm/db2/jcc/11.5.9.0/jcc-11.5.9.0.jar).
- Copy the JAR package to the `hertzbeat/ext-lib` directory.
- Restart the HertzBeat service.
:::important Collector package selection
DB2 monitoring requires external JDBC driver loading from `ext-lib`.
- Use HertzBeat server built-in collector or the JVM collector package for DB2 monitoring
- Do not use the native collector package for DB2 monitoring
:::
### Configuration Parameters
The following are the required configuration parameters for DB2 monitoring:
| Parameter Name | Parameter Description |
|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------|
| **Target Host** | The IPv4, IPv6, or domain name of the monitored DB2 database server. |
| **Port** | The port provided by the DB2 database, default is `50000`. |
| **Database Name** | The name of the DB2 database to connect to. |
| **Username** | The username for the database connection. |
| **Password** | The password for the database connection. |
| **Query Timeout** | Sets the timeout for when an SQL query does not return data, in milliseconds (ms), default is `6000`. |
| **Reuse Connection** | Whether to reuse the database connection, boolean value, default is `true`. |
| **URL** | The database connection URL, optional. If configured, it will override the database name, username, and password parameters set above. |
### Collected Metrics
#### Metric Set: Basic Info
| Metric Name | Metric Unit | Metric Description |
|:-------------------|:------------|:------------------------|
| `database_version` | None | Database Version. |
| `instance_name` | None | Database Instance Name. |
| `status` | None | Instance Status. |
| `num_db` | None | Number of Databases. |
#### Metric Set: Tablespace Usage
| Metric Name | Metric Unit | Metric Description |
|:------------------|:---------------|:-------------------|
| `tablespace_name` | None | Tablespace Name. |
| `status` | None | Type. |
| `total` | MB | Total Size. |
| `used` | MB | Used Size. |
| `free` | MB | Free Size. |
| `used_percentage` | Percentage (%) | Used Percentage. |
#### Metric Set: Session Status
| Metric Name | Metric Unit | Metric Description |
|:--------------|:------------|:----------------------------------|
| `status_type` | None | Session Status Type. |
| `count` | None | Count of sessions in that status. |
#### Metric Set: Application Process Count
| Metric Name | Metric Unit | Metric Description |
|:----------------|:------------|:-----------------------------------------------------------------------------------|
| `process_count` | None | Total number of application processes/sessions. |
#### Metric Set: Locks
| Metric Name | Metric Unit | Metric Description |
|:----------------|:------------|:-----------------------------------|
| `waiting_locks` | None | Number of currently waiting locks. |
#### Metric Set: Slow Query
| Metric Name | Metric Unit | Metric Description |
|:---------------|:------------|:----------------------------|
| `avg_exe_time` | ms | Average Execution Time. |
| `sql_text` | None | SQL Text of the slow query. |
+114
View File
@@ -0,0 +1,114 @@
---
id: debian
title: Monitoring Debian System
sidebar_label: Debian
keywords: [Open Source Monitoring System, Operating System Monitoring, Debian Monitoring]
---
> Collect and monitor general performance metrics of the Debian system.
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+35
View File
@@ -0,0 +1,35 @@
---
id: deepseek
title: Monitoring Deepseek Account Status
sidebar_label: Deepseek Account Status
keywords: [Open Source Monitoring System, Open Source Network Monitoring, Deepseek Account Monitoring]
---
## Preparation
### Obtain Session Key
Log in to the Deepseek backend and visit the `https://platform.deepseek.com/api_keys` page to obtain the session key.
### Configuration Parameters
| Parameter Name | Parameter Description |
| ------------- | --------------------- |
| Monitoring Host | Enter `api.deepseek.com` here. |
| Task Name | The name that identifies this monitoring task, which must be unique. |
| Session Key | The session key obtained in the preparation step. |
| Collector | Configure which collector is used to schedule data collection for this monitoring. |
| Monitoring Interval | The interval for periodically collecting data, in seconds. The minimum interval that can be set is 30 seconds. |
| Bound Tags | Tags for categorizing and managing monitoring resources. |
| Description/Remarks | Additional remarks to identify and describe this monitoring. Users can add notes here. |
### Collection Metrics
#### Metric Set: Billing
| Metric Name | Metric Unit | Metric Description |
| ---------- | ---------- | ----------------- |
| Currency | None | Currency, either RMB or USD. |
| Available Balance | RMB/USD | Total available balance, including bonus and recharge balance. |
| Unexpired Bonus Balance | RMB/USD | Unexpired bonus balance. |
| Recharge Balance | RMB/USD | Recharge balance. |
+48
View File
@@ -0,0 +1,48 @@
---
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 |
+71
View File
@@ -0,0 +1,71 @@
---
id: dns
title: Monitoring DNS
sidebar_label: DNS Monitor
keywords: [ open source monitoring tool, open source DNS monitoring tool, monitoring DNS metrics ]
---
> Collect and monitor the general performance Metrics of DNS.
**Protocol UseDNS**
## Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | Monitored IPV4, IPV6. Note⚠️Without protocol header (eg: https://, http://). |
| Monitoring name | Identify the name of this monitoring. The name needs to be unique. |
| Monitoring port | The port for DNS service provided to the outside,default is 53. |
| Address For DNS | The address for domain name resolution. |
| Connect Timeout | Set the timeout for connecting to the DNS server, default is 6000 milliseconds. |
| Record Type | The type of DNS record to query. Optional values include `A`, `AAAA`, `MX`, `NS`, `SRV`, and `ANY`. |
| Query Class | Resource class for DNS query. Optional values include `IN`, `CHAOS`, `HESIOD`, `NONE`, and `ANY`,default is IN. |
| Use TCP Protocol | DNS queries use the TCP protocol. |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Bind Tags | Used to classify and manage monitoring resources. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Collection Metrics
#### Metrics SetHeader
| Metric name | Metric unit | Metric help description |
|-------------------------|-------------|---------------------------------------------------|
| Response Time | ms | Time taken for DNS server to respond to requests. |
| Opcode | none | Type of the current message. |
| Response Status | none | Status code of the response. |
| Response Flags | none | Response flags. |
| Question Record Count | none | Number of question records. |
| Answer Record Count | none | Number of answer records. |
| Authority Record Count | none | Number of authoritative resource records. |
| Additional Record Count | none | Number of additional resource records. |
### Metrics Set: Question
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------|
| Section | none | Question record information, including the queried domain name, resource type, resource record class, and additional information. |
### Metrics Set: Answer
| Metric name | Metric unit | Metric help description |
|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------|
| Section0 | none | Answer record information, including the queried domain name, TTL, resource record class, resource type, and query result. |
> The metric set collects up to 10 records, with metric names from Section0 to Section9.
### Metrics Set: Authority
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| Section0 | none | SOA (Start of Authority) record for the domain name, including queried domain name, TTL, resource type, resource record class, and other information. |
> The metric set collects up to 10 records, with metric names from Section0 to Section9.
### Metrics Set: Additional
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-----------------------------------------|
| Section0 | none | Additional information for DNS queries. |
> The metric set collects up to 10 records, with metric names from Section0 to Section9.
+223
View File
@@ -0,0 +1,223 @@
---
id: dns_sd
title: Monitoring DNS Service Discovery
sidebar_label: DNS Service Discovery
keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring DNS service discovery]
---
> HertzBeat integrates with DNS service to automatically discover service instances through DNS records and create monitoring tasks for them.
## Overview
DNS Service Discovery allows HertzBeat to discover service instances by querying DNS records. This is a simple and reliable service discovery method that utilizes standard DNS infrastructure to find service instances. It is particularly suitable for environments using DNS SRV records or environments that need to discover services through DNS.
### PreRequisites
#### Configure DNS Records
Ensure your DNS server has properly configured service discovery records. Different record types have different formats:
1. **SRV Records**: Used for service discovery, containing service host and port information
2. **A Records**: Return IPv4 addresses
3. **AAAA Records**: Return IPv6 addresses
4. **MX Records**: Mail server records
5. **NS Records**: Name server records
### Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Target Name | Identify the name of this monitoring. The name needs to be unique. |
| DNS Host | DNS server address. Example: `8.8.8.8` or `192.168.1.1` |
| DNS Port | DNS server port. The default is 53 |
| Record Type | Type of DNS record to query. Options: `SRV`, `A`, `AAAA`, `MX`, `NS` |
| Record Name | Name of the DNS record to query. Example: `_http._tcp.example.com` for SRV records |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Usage Steps
1. **Create Service Discovery Monitoring**
- In HertzBeat web UI, navigate to **Monitoring****New Monitoring**
- Select monitoring type: **DNS Service Discovery**
- Fill in the basic configuration parameters
2. **Configure Monitoring Template**
- After creating the service discovery monitoring, you need to specify a monitoring template
- The template defines what type of monitoring to create for discovered service instances
- For SRV records, commonly used templates include Port, HTTP, etc.
- For A/AAAA records, Ping or Port monitoring can be used
3. **Automatic Discovery**
- HertzBeat will periodically query the DNS server based on the collection interval
- Automatically create monitoring tasks for newly discovered service instances
- Automatically delete monitoring tasks for disappeared service instances
4. **View Discovered Instances**
- In the monitoring list, you can see all automatically created sub-monitoring tasks
- Each sub-monitoring task corresponds to a discovered service instance
### Example of usage
#### Example 1: SRV Record Discovery
Suppose you have an SRV record for your web service:
- **SRV Record**: `_http._tcp.example.com`
- **DNS Server**: `8.8.8.8`
- **Expected discovery**: Automatically discover all HTTP service instances
Configuration example:
- **Target Name**: `DNS-SRV-Discovery`
- **DNS Host**: `8.8.8.8`
- **DNS Port**: `53`
- **Record Type**: Select `SRV`
- **Record Name**: `_http._tcp.example.com`
- **Collection interval**: `60` seconds
- **Monitoring Template**: Select `Port` monitoring (using the port from SRV record)
After configuration:
1. HertzBeat queries the SRV record for `_http._tcp.example.com`
2. Extracts host and port information from the SRV record response
3. Automatically creates Port monitoring for each service instance
#### Example 2: A Record Discovery
Discover service instances through A records:
- **A Record**: `services.example.com`
- This domain may resolve to multiple IP addresses
Configuration example:
- **DNS Host**: `192.168.1.1` (Internal DNS server)
- **DNS Port**: `53`
- **Record Type**: Select `A`
- **Record Name**: `services.example.com`
- **Monitoring Template**: Select `Ping` or `Port` monitoring
#### Example 3: MX Record Discovery
Discover mail servers through MX records:
- **DNS Host**: `8.8.8.8`
- **Record Type**: Select `MX`
- **Record Name**: `example.com`
- **Monitoring Template**: Select `Port` monitoring (port 25)
### DNS Record Types
#### SRV Records (Recommended)
SRV records are the most commonly used record type for service discovery, containing service name, port number, and priority information.
Format: `_service._protocol.example.com`
Example: `_http._tcp.example.com`
Typical SRV record response contains:
- Target domain name
- Port number
- Priority and weight
#### A Records
A records map domain names to IPv4 addresses. If a domain name resolves to multiple IPs, all IPs can be discovered.
Example: `services.example.com``192.168.1.10`, `192.168.1.11`, `192.168.1.12`
#### AAAA Records
AAAA records map domain names to IPv6 addresses.
Example: `services.example.com``2001:db8::1`
#### MX Records
MX records specify mail servers for a domain and include priority information.
Example: `example.com``mail.example.com`
#### NS Records
NS records specify name servers for a domain.
Example: `example.com``ns1.example.com`
### Notes
- **DNS Server**: Ensure the specified DNS server is accessible and contains the service discovery records
- **Record Name**: Record name must be accurate, including the service and protocol prefix for SRV records
- **Port Information**:
- SRV records contain port information
- A/AAAA records do not contain port information; a default port needs to be specified in the monitoring template
- **Monitoring Templates**: Service discovery only discovers service instance addresses; you need to configure appropriate monitoring templates to actually monitor the instances
- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive DNS queries
- **DNS Caching**: DNS responses may be cached; the actual update frequency depends on the DNS record's TTL value
- **Network Connectivity**: Ensure HertzBeat can access the specified DNS server and port (default: 53)
- **Firewall**: Ensure firewalls allow DNS query traffic (UDP/TCP 53)
### Collection Metric
#### Metric set: Monitor Target
| Metric name | Metric unit | Metric help description |
|-----------------|-------------|--------------------------------------------|
| target | none | Discovered service instance target |
| host | none | Service instance host address |
| port | none | Service instance port number |
### Use Cases
- **Kubernetes Headless Services**: Discover Kubernetes pod instances through DNS
- **Cloud Services**: Discover cloud service instances (AWS Route53, Azure DNS, GCP Cloud DNS)
- **Traditional DNS**: Use existing DNS infrastructure for service discovery
- **Load Balancing**: Discover all backend server instances
- **Mail Servers**: Discover mail server instances through MX records
- **Multi-Environment**: Use different DNS records for service discovery across different environments
### Common SRV Record Formats
Different services use different SRV record formats:
- **HTTP**: `_http._tcp.example.com`
- **HTTPS**: `_https._tcp.example.com`
- **LDAP**: `_ldap._tcp.example.com`
- **FTP**: `_ftp._tcp.example.com`
- **MySQL**: `_mysql._tcp.example.com`
- **PostgreSQL**: `_postgresql._tcp.example.com`
### Kubernetes Integration
In Kubernetes clusters, DNS service discovery can be used to discover pod instances:
1. **Headless Services**: Kubernetes creates DNS A records for each pod of headless services
2. **Service Discovery**: Use DNS service discovery to monitor all pods of a specific service
Example:
- **DNS Host**: Kubernetes cluster DNS service IP (usually `10.96.0.10`)
- **Record Type**: `A`
- **Record Name**: `my-service.default.svc.cluster.local`
- **Monitoring Template**: `Port` monitoring
### DNS Server Examples
Commonly used DNS servers:
- **Google Public DNS**: `8.8.8.8`, `8.8.4.4`
- **Cloudflare DNS**: `1.1.1.1`, `1.0.0.1`
- **Quad9 DNS**: `9.9.9.9`
- **OpenDNS**: `208.67.222.222`, `208.67.220.220`
- **Internal DNS**: Usually the enterprise's internal DNS server address
### Best Practices
1. **Use SRV Records**: SRV records are the recommended method for service discovery as they contain complete host and port information
2. **Set Proper TTL**: Set an appropriate DNS record TTL to balance real-time performance and DNS server load
3. **Redundancy**: Configure multiple DNS servers to ensure high availability
4. **Monitoring**: Regularly check DNS record validity and availability
5. **Security**: Ensure DNS queries are secure, consider using DNS over HTTPS (DoH) or DNS over TLS (DoT)
+101
View File
@@ -0,0 +1,101 @@
---
id: docker
title: MonitorDocker 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 |
+106
View File
@@ -0,0 +1,106 @@
---
id: dolphinscheduler
title: Monitoring Apache DolphinScheduler
sidebar_label: Apache DolphinScheduler
keywords: [ Open Source Monitoring System, Monitor Apache DolphinScheduler ]
---
> Collect monitoring metrics for Apache DolphinScheduler.
## Pre-monitoring operations
> Support Apache DolphinScheduler version 3.3.0 or later
You need to create a token in Apache DolphinScheduler.
<!-- markdown-link-check-disable -->
Please refer to [Open API](https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/api/open-api) to create a new token.The main steps are as follows
1. Log in to the Apache DolphinScheduler system, click "Security", then click "Token manage" on the left, and click "Create token" to create a token.
2. Select the "Expiration time" (Token validity time), select "User" (choose the specified user to perform the API operation), click "Generate token", copy the Token string, and click "Submit".
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|---------------------|-----------------------------------------------------------------------------------------------------------------|
| Target Host | The monitored endpoint's IPV4, IPV6, or domain name. Note ⚠️ no protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring task, which needs to be unique. |
| Port | The monitoring port opened by DolphinScheduler, default value: 12345. |
| SSL | Whether SSL is enabled for connecting to DolphinScheduler. |
| Token | Apache DolphinScheduler token string. |
| Query Timeout | Set the timeout for unresponsive queries, in milliseconds (ms), default 6000 ms. |
| Collection Interval | The interval time for periodic data collection, in seconds; the minimum interval that can be set is 30 seconds. |
| Binding Tags | Used for categorizing and managing monitoring resources. |
| Description Notes | Additional identification and description notes for this monitoring; users can add notes here. |
## Collected Metrics
### Metric Set: Master
| Metric Name | Metric Unit | Metric Help Description |
|----------------|---------------|-------------------------|
| host | None | Host |
| port | None | Port |
| serverStatus | None | Server Status |
| processId | None | Process Id |
| runningTime | Day | Running Time |
| cpuUsage | Percentage(%) | CPU Usage |
| memoryUsage | Percentage(%) | Memory Usage |
| diskUsage | Percentage(%) | Disk Usage |
| jvmCpuUsage | Percentage(%) | JVM CPU Usage |
| jvmMemoryUsage | Percentage(%) | JVM Memory Usage |
| jvmHeapUsed | None | JVM Heap Used |
| jvmNonHeapUsed | None | JVM NonHeap Used |
| jvmHeapMax | None | JVM Heap Max |
| jvmNonHeapMax | None | JVM NonHeap Max |
### Metric Set: Worker
| Metric Name | Metric Unit | Metric Help Description |
|------------------|---------------|-------------------------|
| host | None | Host |
| port | None | Port |
| serverStatus | None | Server Status |
| processId | None | Process Id |
| runningTime | Day | Running Time |
| cpuUsage | Percentage(%) | CPU Usage |
| memoryUsage | Percentage(%) | Memory Usage |
| diskUsage | Percentage(%) | Disk Usage |
| jvmCpuUsage | Percentage(%) | JVM CPU Usage |
| jvmMemoryUsage | Percentage(%) | JVM Memory Usage |
| jvmHeapUsed | None | JVM Heap Used |
| jvmNonHeapUsed | None | JVM NonHeap Used |
| jvmHeapMax | None | JVM Heap Max |
| jvmNonHeapMax | None | JVM NonHeap Max |
| workerHostWeight | None | Weight |
| threadPoolUsage | None | Thread Pool Usage |
| workerGroup | None | Worker Group |
### Metric Set: Alert Server
| Metric Name | Metric Unit | Metric Help Description |
|----------------|---------------|-------------------------|
| host | None | Host |
| port | None | Port |
| serverStatus | None | Server Status |
| processId | None | Process Id |
| runningTime | Day | Running Time |
| cpuUsage | Percentage(%) | CPU Usage |
| memoryUsage | Percentage(%) | Memory Usage |
| diskUsage | Percentage(%) | Disk Usage |
| jvmCpuUsage | Percentage(%) | JVM CPU Usage |
| jvmMemoryUsage | Percentage(%) | JVM Memory Usage |
| jvmHeapUsed | None | JVM Heap Used |
| jvmNonHeapUsed | None | JVM NonHeap Used |
| jvmHeapMax | None | JVM Heap Max |
| jvmNonHeapMax | None | JVM NonHeap Max |
### Metric Set: Database
| Metric Name | Metric Unit | Metric Help Description |
|---------------------------|-------------|-----------------------------|
| dbType | None | Database Type |
| state | None | State |
| maxConnections | None | Max Connections |
| threadsConnections | None | Threads Connections |
| threadsRunningConnections | Day | Threads Running Connections |
+170
View File
@@ -0,0 +1,170 @@
---
id: doris_be
title: Monitoring DORIS Database BE
sidebar_label: DORIS Database BE
keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS Database BE Monitoring]
---
> Collect and monitor general performance metrics for DORIS database BE. Supports DORIS 2.0.0.
## Pre-monitoring operations
| Parameter Name | Parameter Description |
|--------|-----------------------------------------------------|
| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) |
| Task Name | A unique name identifying this monitoring task |
| Port | The port provided by the database to the outside, default is 8040 ,get the value of the`http_port` configuration item |
| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 3000 milliseconds |
| Database Name | Optional database instance name |
| Collection Interval | The interval between periodic data collections for monitoring, in seconds, with a minimum interval of 30 seconds |
| Probe Required | Whether to probe and check the availability of monitoring before adding new monitoring, continue with the addition or modification operation only if the probe is successful |
| Description | Additional notes and descriptions for this monitoring task |
### Collection Indicators
#### Metric Set:doris_be_load_channel_count
| Metric Name | Metric Unit | Metric help description |
|-------|------|-----------------------|
| value | None | The current number of load channels |
#### Metric Set:doris_be_memtable_flush_total
| Metric Name | Metric Unit | Metric help description |
|-------|------|--------------------|
| value | None | Cumulative number of memtable writes to disk |
#### Metric Set:doris_be_plan_fragment_count
| Metric Name | Metric Unit | Metric help description |
|-------|------|------------------------------|
| value | None | Number of fragment instances currently received |
#### Metric Set:doris_be_process_thread_num
| Metric Name | Metric Unit | Metric help description |
|-------|------|---------------------------------|
| value | None | Number of BE process threads, collected through /proc/pid/task |
#### Metric Set:doris_be_query_scan_rows
| Metric Name | Metric Unit | Metric help description |
|-------|------|------------------------------------------------------------------------------|
| value | None | Cumulative number of rows read. This only counts the data volume read from OLAP tables, and it represents RawRowsRead (some data rows may be skipped by the index and not actually read, but they are still recorded in this value). |
#### Metric Set:doris_be_result_buffer_block_count
| Metric Name | Metric Unit | Metric help description |
|-------|------|---------------------|
| value | None | Number of queries in the current query result cache |
#### Metric Set:doris_be_send_batch_thread_pool_queue_size
| Metric Name | Metric Unit | Metric help description |
|-------|------|---------------------|
| value | None | Number of tasks in the queue of the thread pool used for sending data packets during import |
#### Metric Set:doris_be_tablet_base_max_compaction_score
| Metric Name | Metric Unit | Metric help description |
|-------|------|-----------------------------|
| value | None | Current maximum Base Compaction Score |
#### Metric Set:doris_be_timeout_canceled_fragment_count
| Metric Name | Metric Unit | Metric help description |
|-------|------|----------------------------------|
| value | None | Cumulative number of fragment instances cancelled due to timeout |
#### Metric Set:doris_be_load_rows
| Metric Name | Metric Unit | Metric help description |
|-------|------|------------------------|
| value | None | Cumulative number of rows sent through tablet sink |
#### Metric Set:doris_be_all_rowsets_num
| Metric Name | Metric Unit | Metric help description |
|-------|------|-----------------|
| value | None | Current number of rowsets |
#### Metric Set:doris_be_all_segments_num
| Metric Name | Metric Unit | Metric help description |
|-------|------|------------------|
| value | None | Current number of segments |
#### Metric Set:doris_be_heavy_work_max_threads
| Metric Name | Metric Unit | Metric help description |
|-------|------|-------------------|
| value | None | Number of threads in the brpc heavy thread pool |
#### Metric Set:doris_be_light_work_max_threads
| Metric Name | Metric Unit | Metric help description |
|-------|------|-------------------|
| value | None | Number of threads in the brpc light thread pool|
#### Metric Set:doris_be_heavy_work_pool_queue_size
| Metric Name | Metric Unit | Metric help description |
|-------|------|---------------------------------|
| value | None | Maximum queue length of the brpc heavy thread pool; if exceeded, work submissions will be blocked |
#### Metric Set:doris_be_light_work_pool_queue_size
| Metric Name | Metric Unit | Metric help description |
|-------|------|---------------------------------|
| value | None | Maximum queue length of the brpc light thread pool; if exceeded, work submissions will be blocked |
#### Metric Set:doris_be_heavy_work_active_threads
| Metric Name | Metric Unit | Metric help description |
|-------|------|--------------------|
| value | None | Number of active threads in the brpc heavy thread pool |
#### Metric Set:doris_be_light_work_active_threads
| Metric Name | Metric Unit | Metric help description |
|-------|------|--------------------|
| value | None | Number of active threads in the brpc light thread pool |
#### Metric Set:doris_be_compaction_bytes_total
| Metric Name | Metric Unit | Metric help description |
|------------|------|------------------------------|
| base | Bytes | Cumulative data volume of Base Compaction |
| cumulative | Bytes | Cumulative data volume of Cumulative Compaction |
#### Metric Set:doris_be_disks_avail_capacity
| Metric Name | Metric Unit | Metric help description |
|-------|------|--------------------------------------------|
| path | None | Specify data directory |
| value | Bytes | `{path="/path1/"}` represents the remaining disk space of the /path1 directory's disk. |
#### Metric Set:doris_be_disks_total_capacity
| Metric Name | Metric Unit | Metric help description |
|-------|------|--------------------------------------------|
| path | None | Specify data directory |
| value | Bytes | `{path="/path1/"}` represents the total disk space of the disk where the /path1 directory is located. |
#### Metric Set:doris_be_local_bytes_read_total
| Metric Name | Metric Unit | Metric help description |
|-------|------|----------------------------|
| value | Bytes | Number of bytes read by LocalFileReader |
#### Metric Set:doris_be_local_bytes_written_total
| Metric Name | Metric Unit | Metric help description |
|-------|------|----------------------------|
| value | Bytes | Number of bytes written by LocalFileWriter |
#### Metric Set:doris_be_memory_allocated_bytes
| Metric Name | Metric Unit | Metric help description |
|-------|------|------------------------------------------|
| value | Bytes | Physical memory size of the BE process, retrieved from /proc/self/status/VmRSS |
+132
View File
@@ -0,0 +1,132 @@
---
id: doris_fe
title: Monitoring DORIS Database FE
sidebar_label: DORIS Database FE
keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS Database FE Monitoring]
---
> Collect and monitor general performance metrics for DORIS database FE. Supports DORIS 2.0.0.
**Protocol: HTTP**
## Pre-monitoring operations
Check the `fe/conf/fe.conf` file to obtain the value of the `http_port` configuration item, which is used for monitoring.
### Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) |
| Task Name | A unique name identifying this monitoring task |
| Port | The port provided by the database to the outside, default is 8030 ,get the value of the`http_port` configuration item |
| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 3000 milliseconds |
| Database Name | Optional database instance name |
| Collection Interval | The interval between periodic data collections for monitoring, in seconds, with a minimum interval of 30 seconds |
| Probe Required | Whether to probe and check the availability of monitoring before adding new monitoring, continue with the addition or modification operation only if the probe is successful |
| Description | Additional notes and descriptions for this monitoring task |
### Collection Indicators
#### Metric Set: doris_fe_connection_total
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|----------------------------------------------------|
| value | None | The current number of MySQL port connections on FE |
#### Metric Set: doris_fe_edit_log_clean
Should not fail; if it does, manual intervention is required.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|---------------------------------------------------------------|
| success | None | The number of successful cleanups of historical metadata logs |
| failed | None | The number of failed cleanups of historical metadata logs |
#### Metric Set: doris_fe_edit_log
| Metric Name | Metric Unit | Metric help description |
|-------------------|-------------|---------------------------------------------|
| write | None | The count of metadata log write operations |
| read | None | The count of metadata log read operations |
| current | None | The current number of metadata logs |
| accumulated_bytes | Bytes | The cumulative value of metadata log writes |
| current_bytes | Bytes | The current value of metadata logs |
#### Metric Set: doris_fe_image_clean
Should not fail; if it does, manual intervention is required.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|----------------------------------------------------------------------|
| success | None | The number of successful cleanups of historical metadata image files |
| failed | None | The number of failed cleanups of historical metadata image files |
#### Metric Set: doris_fe_image_write
Should not fail; if it does, manual intervention is required.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------------------------------|
| success | None | The number of successful generations of metadata image files |
| failed | None | The number of failed generations of metadata image files |
#### Metric Set: doris_fe_query_err
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------------------------|
| value | None | The cumulative value of erroneous queries |
#### Metric Set: doris_fe_max_journal_id
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| value | None | The current maximum metadata log ID on the FE node. If it is a Master FE, it is the maximum ID currently written; if it is a non-Master FE, it represents the maximum metadata log ID currently being replayed. Used to observe if there is a large gap between the IDs of multiple FEs. A large gap indicates issues with metadata synchronization |
#### Metric Set: doris_fe_max_tablet_compaction_score
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| value | None | The largest compaction score value among all BE nodes. This value can observe the current cluster's maximum compaction score to judge if it is too high. If too high, there may be delays in queries or writes |
#### Metric Set: doris_fe_qps
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|---------------------------------------------------------------------------------|
| value | None | The number of queries per second on the current FE (only counts query requests) |
#### Metric Set: doris_fe_query_err_rate
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------------|
| value | None | The number of erroneous queries per second |
#### Metric Set: doris_fe_report_queue_size
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| value | None | The length of the queue for various regular reporting tasks on the BE side at the FE end. This value reflects the degree of blocking of reporting tasks on the Master FE node. A larger value indicates insufficient processing capacity on the FE |
#### Metric Set: doris_fe_rps
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|------------------------------------------------------------------------------------------------------|
| value | None | The number of requests per second on the current FE (includes queries and other types of statements) |
#### Metric Set: doris_fe_scheduled_tablet_num
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| value | None | The number of tablets currently being scheduled by the Master FE node. This includes tablets that are being repaired and tablets that are being balanced. This value can reflect the number of tablets currently migrating in the cluster. If there is a value for a long time, it indicates that the cluster is unstable |
#### Metric Set: doris_fe_txn_status
Can observe the number of import transactions in various states to determine if there is a backlog.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------|
| unknown | None | Unknown state |
| prepare | None | In preparation |
| committed | None | Committed |
| visible | None | Visible |
| aborted | None | Aborted / Revoked |
+101
View File
@@ -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 |
+63
View File
@@ -0,0 +1,63 @@
---
id: elasticsearch
title: MonitoringElasticSearch
sidebar_label: ElasticSearch
keywords: [ open source monitoring tool, monitoring ElasticSearch metrics ]
---
> Collect and monitor the general performance Metrics of ElasticSearch
## Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | Monitored IPV4, IPV6. Note⚠️Without protocol header (eg: https://, http://). |
| Monitoring name | Identify the name of this monitoring. The name needs to be unique. |
| Monitoring port | The HTTP API port opened by Elasticsearch,default is 9200. |
| SSL | Whether SSL is enabled for connecting to Elasticsearch. |
| Auth Type | Authentication type,Optional. |
| Username | Username,Optional. |
| Password | Password,Optional. |
| Connect Timeout | Set the timeout for elasticsearch query, default is 6000 milliseconds. |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Bind Tags | Used to classify and manage monitoring resources. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Collection Metrics
#### Metrics Sethealth
| Metric name | Metric unit | Metric help description |
|-----------------------|-------------|-------------------------------------------|
| cluster_name | none | Cluster Name |
| status | none | status |
| nodes | none | Number of nodes in the cluster. |
| data_nodes | none | Number of data nodes in the cluster. |
| active_primary_shards | none | Number of active shards on primary nodes. |
| active_shards | none | Number of active shards. |
| active_percentage | % | Active Percentage |
| initializing_shards | none | Number of initialized shards. |
| unassigned_shards | none | Number of unassigned shards. |
#### Metrics Setnodes
| Metric name | Metric unit | Metric help description |
|-------------|-------------|--------------------------|
| total | none | Number of nodes. |
| successful | none | Number of online nodes. |
| failed | none | Number of offline nodes. |
#### Metrics Setnodes_detail
| Metric name | Metric unit | Metric help description |
|-------------------|-------------|-------------------------|
| node_name | none | Node Name |
| ip | none | IP Address |
| cpu_load_average | none | Cpu Load Average |
| cpu_percent | % | Cpu Percent |
| heap_used | MB | Heap Used |
| heap_used_percent | % | Heap Used Percent |
| heap_total | MB | Heap Total |
| disk_free | GB | Disk Free |
| disk_total | GB | Disk Total |
| disk_used_percent | % | Disk Used Percent |
+114
View File
@@ -0,0 +1,114 @@
---
id: euleros
title: Monitoring EulerOS
sidebar_label: EulerOS
keywords: [ Open Source Monitoring System, Open Source OS Monitoring, EulerOS Monitoring ]
---
> Collect and monitor general performance metrics for EulerOS (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.).
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+94
View File
@@ -0,0 +1,94 @@
---
id: eureka_sd
title: Monitoring Eureka Service Discovery
sidebar_label: Eureka Service Discovery
keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Eureka service discovery]
---
> HertzBeat integrates with Eureka registry to automatically discover service instances and create monitoring tasks for them.
## Overview
Eureka Service Discovery allows HertzBeat to connect to your Eureka server and automatically discover all registered service instances. When a new service instance is registered or an existing instance goes offline, HertzBeat will automatically create or delete corresponding monitoring tasks, achieving automated monitoring in microservice environments.
### PreRequisites
#### Deploy Eureka Server
1. Deploy Eureka server according to [Eureka official documentation](https://spring.io/guides/gs/service-registration-and-discovery/).
2. Ensure Eureka server is accessible from HertzBeat.
3. Verify that you can access Eureka dashboard at `http://your-eureka-server:port/`
### Configuration parameter
| Parameter name | Parameter help description |
|---------------------|-------------------------------------------------------------------------------------------------------------------------|
| Target Name | Identify the name of this monitoring. The name needs to be unique |
| Eureka Service Discovery Url | Eureka server address. Example: `http://eureka-server:8761/eureka` |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here |
### Usage Steps
1. **Create Service Discovery Monitoring**
- In HertzBeat web UI, navigate to **Monitoring****New Monitoring**
- Select monitoring type: **Eureka Service Discovery**
- Fill in the basic configuration parameters
2. **Configure Monitoring Template**
- After creating the service discovery monitoring, you need to specify a monitoring template
- The template defines what type of monitoring to create for discovered service instances
- For example: If discovered instances are HTTP services, you can select HTTP monitoring template
- Common template types: Port, HTTP, HTTPS, etc.
3. **Automatic Discovery**
- HertzBeat will periodically query Eureka server based on the collection interval
- Automatically create monitoring tasks for newly registered service instances
- Automatically delete monitoring tasks for offline service instances
4. **View Discovered Instances**
- In the monitoring list, you can see all automatically created sub-monitoring tasks
- Each sub-monitoring task corresponds to a discovered service instance
### Example of usage
Suppose your Eureka server is running at `http://192.168.1.100:8761/eureka`, and you want to automatically monitor all service instances registered in it.
Configuration example:
- **Target Name**: `Eureka-Service-Discovery`
- **Eureka Service Discovery Url**: `http://192.168.1.100:8761/eureka`
- **Collection interval**: `60` seconds
- **Monitoring Template**: Select `Port` monitoring (to detect instance availability)
After configuration:
1. HertzBeat connects to Eureka server
2. Retrieves all registered application instances
3. Automatically creates Port monitoring for each instance (e.g., `USER-SERVICE-192.168.1.101:8080`)
4. Every 60 seconds, checks for newly registered or offline services and updates monitoring tasks accordingly
### Notes
- **Network Connectivity**: Ensure HertzBeat can access the Eureka server address
- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances
- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Eureka server
- **Permission Requirements**: Eureka server does not require authentication by default, but if authentication is configured, the URL needs to include username and password
- **Instance Naming**: Automatically created monitoring tasks are named in the format: `{ApplicationName}-{Host}:{Port}`
### Collection Metric
#### Metric set: Monitor Target
| Metric name | Metric unit | Metric help description |
|-----------------|-------------|--------------------------------------------|
| target | none | Discovered service instance target |
| host | none | Service instance host address |
| port | none | Service instance port number |
### Use Cases
- **Microservice Architecture**: Automatically monitor all microservice instances registered in Eureka
- **Dynamic Scaling**: Automatically adapt to service instances added/removed due to autoscaling
- **Unified Monitoring**: Centrally manage monitoring of all services in the microservice environment
- **Operation and Maintenance**: Reduce manual configuration work and improve operation efficiency
+114
View File
@@ -0,0 +1,114 @@
---
id: fedora
title: Monitoring Fedora Operating System
sidebar_label: Fedora OS Operating System
keywords: [ Open Source Monitoring System, Open Source OS Monitoring, Fedora OS Monitoring ]
---
> Collect and monitor general performance metrics for Fedora operating systems (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.).
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+35
View File
@@ -0,0 +1,35 @@
---
id: flink
title: Monitoring Flink
sidebar_label: Flink
keywords: [open source monitoring tool, open source flink monitoring tool]
---
> Collect and monitor the general performance Metrics of Flink.
## Configuration parameter
| Parameter Name | Parameter Help Description |
|---------------------|-----------------------------------------------------------------------------------------------------------------------------|
| Monitor Host | The monitored peer IPV4, IPV6, or domain name. Note: Do not include protocol headers (e.g., https://, http://). |
| Task Name | Identifier for this monitoring task, name must be unique. |
| Port | Monitoring port. |
| Query Timeout | Sets the timeout for JVM connection in milliseconds, default is 3000 milliseconds. |
| SSL | Whether to enable SSL (default is off). |
| Username | Connection username. |
| Password | Connection password. |
| Collection Interval | Interval for periodic data collection during monitoring, in seconds. The minimum settable interval is 30 seconds. |
| Whether to detect | Whether to perform a probe check for monitoring availability before adding a new monitor; operations proceed if successful. |
| Description Remarks | Additional identifiers and descriptions for this monitoring, where users can note information. |
### Collection Metrics
#### Metrics SetOverview
| Metric Name | Metric Unit | Metric Help Description |
|--------------|-------------|-------------------------|
| slots_total | Units | Total number of slots. |
| slots_used | Units | Number of slots used. |
| task_total | Units | Total number of tasks. |
| jobs_running | Units | Number of jobs running. |
| jobs_failed | Units | Number of jobs failed. |
+137
View File
@@ -0,0 +1,137 @@
# Flink On Yarn Monitoring
> Measurement and monitoring of general metrics for Flink stream engine in Yarn running mode.
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|---------------------|---------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | The monitored peer's IPV4, IPV6, or domain name. Note ⚠️ do not include protocol headers (e.g., https://, http://). |
| Task Name | The name identifying this monitoring task. The name must be unique. |
| Yarn Port | The Yarn port, corresponding to the port in `yarn.resourcemanager.webapp.address`. |
| Query Timeout | The timeout for JVM connections, in milliseconds, default is 3000 ms. |
| Enable SSL | Whether to enable SSL |
| Username | Connection username |
| Password | Connection password |
| Monitoring Interval | Interval for periodic data collection, in seconds, minimum interval is 30 seconds. |
| Tags | Used for categorizing and managing monitoring resources. |
| Description | Additional notes and descriptions for this monitoring task. Users can add notes here. |
### Collected Metrics
#### Metrics Set: JobManager Metrics
| Metric Name | Metric Unit | Metric Help Description |
|-------------------------------------------------------|-------------|----------------------------------------------------|
| Status.JVM.Memory.NonHeap.Committed | Bytes | Non-heap memory committed |
| Status.JVM.Memory.Mapped.TotalCapacity | Bytes | Total capacity of mapped memory |
| Status.JVM.Memory.NonHeap.Used | Bytes | Non-heap memory used |
| Status.JVM.Memory.Metaspace.Max | Bytes | Maximum capacity of metaspace |
| Status.JVM.GarbageCollector.G1_Old_Generation.Count | Count | Count of old generation garbage collections |
| Status.JVM.Memory.Direct.MemoryUsed | Bytes | Direct memory used |
| Status.JVM.Memory.Mapped.MemoryUsed | Bytes | Mapped memory used |
| Status.JVM.GarbageCollector.G1_Young_Generation.Count | Count | Count of young generation garbage collections |
| Status.JVM.Memory.Direct.TotalCapacity | Bytes | Total capacity of direct memory |
| Status.JVM.GarbageCollector.G1_Old_Generation.Time | ms | Time spent on old generation garbage collections |
| Status.JVM.Memory.Heap.Committed | Bytes | Heap memory committed |
| Status.JVM.Memory.Mapped.Count | Count | Count of mapped memory |
| Status.JVM.Memory.Metaspace.Used | Bytes | Metaspace memory used |
| Status.JVM.Memory.Direct.Count | Count | Count of direct memory |
| Status.JVM.Memory.Heap.Used | Bytes | Heap memory used |
| Status.JVM.Memory.Heap.Max | Bytes | Maximum capacity of heap memory |
| Status.JVM.GarbageCollector.G1_Young_Generation.Time | ms | Time spent on young generation garbage collections |
| Status.JVM.Memory.NonHeap.Max | Bytes | Maximum capacity of non-heap memory |
#### Metrics Set: JobManager Config
| Metric Name | Metric Unit | Metric Help Description |
|--------------------------------------------|-------------|----------------------------------------------------|
| internal.jobgraph-path | - | Internal job graph path |
| env.java.home | - | Java environment path |
| classloader.check-leaked-classloader | - | Whether to check for leaked class loaders |
| env.java.opts | - | Java options |
| high-availability.cluster-id | - | High availability cluster ID |
| jobmanager.rpc.address | - | JobManager's RPC address |
| jobmanager.memory.jvm-overhead.min | Bytes | Minimum JVM overhead for JobManager |
| jobmanager.web.port | Port | JobManager's Web port |
| webclient.port | Port | Web client port |
| execution.savepoint.ignore-unclaimed-state | - | Whether to ignore unclaimed state |
| io.tmp.dirs | Path | Temporary file directories |
| parallelism.default | - | Default parallelism |
| taskmanager.memory.fraction | - | TaskManager memory fraction |
| taskmanager.numberOfTaskSlots | - | Number of task slots for TaskManager |
| yarn.application.name | - | Yarn application name |
| taskmanager.heap.mb | MB | Heap memory size for TaskManager |
| taskmanager.memory.process.size | GB | Process memory size for TaskManager |
| web.port | Port | Web port |
| classloader.resolve-order | - | Class loader resolve order |
| jobmanager.heap.mb | MB | Heap memory size for JobManager |
| jobmanager.memory.off-heap.size | Bytes | Off-heap memory size for JobManager |
| state.backend.incremental | - | Whether the state backend is incremental |
| execution.target | - | Execution target |
| jobmanager.memory.process.size | GB | Process memory size for JobManager |
| web.tmpdir | Path | Web temporary directory |
| yarn.ship-files | Path | Yarn shipped files |
| jobmanager.rpc.port | Port | JobManager's RPC port |
| internal.io.tmpdirs.use-local-default | - | Whether to use local default temporary directories |
| execution.checkpointing.interval | ms | Checkpointing interval |
| execution.attached | - | Whether to execute attached |
| internal.cluster.execution-mode | - | Internal cluster execution mode |
| execution.shutdown-on-attached-exit | - | Whether to shutdown on attached exit |
| pipeline.jars | Path | Pipeline JAR files |
| rest.address | - | REST address |
| state.backend | - | State backend type |
| jobmanager.memory.jvm-metaspace.size | Bytes | JVM metaspace size for JobManager |
| $internal.deployment.config-dir | Path | Internal deployment configuration directory |
| $internal.yarn.log-config-file | Path | Internal Yarn log configuration file path |
| jobmanager.memory.heap.size | Bytes | Heap memory size for JobManager |
| state.checkpoints.dir | Path | State checkpoints directory |
| jobmanager.memory.jvm-overhead.max | Bytes | Maximum JVM overhead for JobManager |
#### TaskManager Metrics
| Metric Name | Metric Unit | Metric Help Description |
|---------------------------------------|-------------|---------------------------------------------------|
| Container ID | - | Container ID for uniquely identifying a container |
| Path | - | Container path |
| Data Port | Port | Data transmission port |
| JMX Port | Port | JMX (Java Management Extensions) port |
| Last Heartbeat | Timestamp | Last heartbeat time |
| All Slots | Count | Total number of task slots in the container |
| Free Slots | Count | Number of free task slots in the container |
| totalResourceCpuCores | Cores | Total number of CPU cores in the container |
| totalResourceTaskHeapMemory | MB | Total task heap memory size in the container |
| totalResourceManagedMemory | MB | Total managed memory size in the container |
| totalResourceNetworkMemory | MB | Total network memory size in the container |
| freeResourceCpuCores | Cores | Number of free CPU cores in the container |
| freeResourceTaskHeapMemory | MB | Free task heap memory size in the container |
| freeResourceTaskOffHeapMemory | MB | Free task off-heap memory size in the container |
| freeResourceManagedMemory | MB | Free managed memory size in the container |
| freeResourceNetworkMemory | MB | Free network memory size in the container |
| CPU Cores | Cores | Number of CPU cores |
| Physical MEM | MB | Size of physical memory |
| JVM Heap Size | MB | Size of JVM heap memory |
| Flink Managed MEM | MB | Size of Flink managed memory |
| Framework Heap | MB | Size of framework heap memory |
| Task Heap | MB | Size of task heap memory |
| Framework Off-Heap | MB | Size of framework off-heap memory |
| memoryConfigurationTaskOffHeap | Bytes | Task off-heap memory configuration |
| Network | MB | Network memory configuration |
| Managed Memory | MB | Managed memory configuration |
| JVM Metaspace | MB | Size of JVM metaspace |
| JVM Overhead | MB | JVM overhead |
| memoryConfigurationTotalFlinkMemory | Bytes | Total Flink memory configuration |
| memoryConfigurationTotalProcessMemory | Bytes | Total process memory configuration |
#### TaskManager Status Metrics
| Metric Name | Metric Unit | Metric Help Description |
|-----------------------------------|-------------|------------------------------------|
| Status.Shuffle.Netty.TotalMemory | MB | Total memory used by Netty Shuffle |
| Status.Flink.Memory.Managed.Used | MB | Managed memory used by Flink |
| Status.JVM.Memory.Metaspace.Used | MB | Used JVM metaspace memory |
| Status.JVM.Memory.Metaspace.Max | MB | Maximum JVM metaspace memory |
| Status.JVM.Memory.Heap.Used | MB | Used JVM heap memory |
| Status.JVM.Memory.Heap.Max | MB | Maximum JVM heap memory |
| Status.Flink.Memory.Managed.Total | MB | Total managed memory by Flink |
| Status.Shuffle.Netty.UsedMemory | MB | Used memory by Netty Shuffle |
+94
View File
@@ -0,0 +1,94 @@
---
id: freebsd
title: Monitoring FreeBSD Operating System
sidebar_label: FreeBSD Operating System
keywords: [ Open Source Monitoring System, Open Source Operating System Monitoring, FreeBSD Operating System Monitoring ]
---
> Collect and monitor general performance metrics (system information, CPU, memory, disk, network cards, file systems, top resource processes, etc.) of the FreeBSD operating system.
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Collection Metrics
#### Metric Set: Basic Info
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Info
| Metric Name | Metric Unit | Metric help description |
|----------------|-------------|----------------------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load for the last 1/5/15 minutes |
| context_switch | None | Current context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Info
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------|
| physmem | Mb | Physical memory |
| usermem | Mb | User program memory |
| realmem | Mb | Actual memory |
| availmem | Mb | Available memory |
#### Metric Set: Disk Free
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------|
| filesystem | None | File system name |
| used | Mb | Used disk space |
| available | Mb | Available disk space |
| usage | % | Usage percentage |
| mounted | None | Mount point directory |
#### Metric Set: Top10 CPU Process
Statistics of the top 10 processes using CPU. Statistics include: Process ID, CPU usage, memory usage, executed command.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top10 Memory Process
Statistics of the top 10 processes using memory. Statistics include: Process ID, memory usage, CPU usage, executed command.
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+34
View File
@@ -0,0 +1,34 @@
---
id: ftp
title: Monitoring FTP
sidebar_label: FTP Monitor
keywords: [ open source monitoring tool, open source ftp server monitoring tool, monitoring ftp metrics ]
---
> Collect and monitor the general performance Metrics of FTP server.
**Protocol UseFTP**
## Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: ftp://). |
| Monitoring name | Identify the name of this monitoring, The name needs to be unique. |
| Port | Port provided by FTP server ,default is 21. |
| Direction | Directory on the FTP server. |
| Timeout | Timeout for connecting to FTP server. |
| Username | Username for connecting to the FTP server, optional. |
| Password | Password for connecting to the FTP server, optional. |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Bind Tags | Used to classify and manage monitoring resources. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Collection Metrics
#### Metrics SetBasic
| Metric name | Metric unit | Metric help description |
|---------------|-------------|----------------------------------------------------------|
| Is Active | none | Check if the directory exists and has access permission. |
| Response Time | ms | Response Time |
+34
View File
@@ -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 setsummary
| 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 |
+78
View File
@@ -0,0 +1,78 @@
---
id: grafana_dashboard
title: Grafana Dashboard
sidebar_label: Grafana Historical Charts
keywords: [Grafana, Historical Dashboard]
---
> `Grafana` is an open source visualization and analytics platform that helps you easily create, share and monitor dashboards. In this article, we will cover how to use `Grafana` to display historical data in `HertzBeat`.
## Prerequisites
- We recommend using the latest version of Grafana. Earlier versions may not support the exposed API.
- The `Grafana` service is started and the account password is configured.
- The `HertzBeat` service is started and the `VictoriaMetrics` time-series database is configured (note: the `VictoriaMetrics` data source is required).
:::caution Caution.
`Grafana` can only show historical data for `Prometheus` type of monitoring, currently it does not support monitoring data defined by `yml` in `HertzBeat`.
:::
### Enable Grafana embedded features and configure anonymous authentication with role-based permissions
ref: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/).
In the `Grafana` configuration file `grafana.ini`, set the configuration parameters.
Or run `Grafana` via `Docker`.
Modify the following configuration parameters in the `Grafana` configuration file `grafana.ini`:
```ini
[auth.proxy]
enabled = true
[auth.anonymous]
enabled = true
org_role = Admin
[users]
viewers_can_edit = true
[security]
allow_embedding = true
```
Or run `Grafana` via `Docker` using the following command:
```bash
docker run -d -p 3000:3000 --name=grafana \
-v "$PWD/data:/var/lib/grafana" \
-e "GF_AUTH_PROXY_ENABLED=true" \
-e "GF_AUTH_ANONYMOUS_ENABLED=true" \
-e "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" \
-e "GF_USERS_VIEWERS_CAN_EDIT=true" \
-e "GF_SECURITY_ALLOW_EMBEDDING=true" \
grafana/grafana:latest
```
### Configuring Grafana in HertzBeat
In the configuration file `application.yml` in `HertzBeat`, configure the `Grafana` data source.
```yaml
grafana:
enabled: true
url: http://127.0.0.1:3000
username: admin
password: admin
```
### Upload Grafana monitor template json file in HertzBeat monitor
In `HertzBeat`, when creating or editing a `Prometheus` type monitor, click Enable Grafana Templates and select the Grafana template json file to upload.
The monitor template json file can be downloaded at [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/).
For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/), click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it.
![grafana-1.png](/img/docs/help/grafana-1.png)
### View Grafana historical charts
On the `HertzBeat` monitoring page, click the `Grafana` button, select `Grafana` Historical Charts, select a monitoring template, and click the `Query` button to view the `Grafana` historical charts.
![grafana-2.png](/img/docs/help/grafana-2.png)
+55
View File
@@ -0,0 +1,55 @@
---
id: greenplum
title: MonitoringGreenPlum database monitoring
sidebar_label: GreenPlum database
keywords: [open source monitoring tool, open source database monitoring tool, monitoring greenplum database metrics]
---
> Collect and monitor the general performance Metrics of GreenPlum database. Support GreenPlum 6.23.0+.
## Configuration parameter
| Parameter name | Parameter help description |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | Monitored Host address. 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 URLoptionalIf 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 setbasic
| 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 setstate
| 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 GreenPlum 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 setactivity
| Metric name | Metric unit | Metric help description |
|-------------|-------------|--------------------------------------|
| running | connections | Number of current client connections |
+144
View File
@@ -0,0 +1,144 @@
---
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 typeapplication service, database, operating system, cloud native, open source middleware.
### Application service monitoring
&emsp;&#x1F449;&emsp;[Website monitoring](website) <br />
&emsp;&#x1F449;&emsp;[HTTP API](api) <br />
&emsp;&#x1F449;&emsp;[PING Connectivity](ping) <br />
&emsp;&#x1F449;&emsp;[Port availability](port) <br />
&emsp;&#x1F449;&emsp;[Full site monitoring](fullsite) <br />
&emsp;&#x1F449;&emsp;[SSL Cert monitoring](ssl_cert) <br />
&emsp;&#x1F449;&emsp;[DNS monitoring](dns) <br />
&emsp;&#x1F449;&emsp;[FTP monitoring](ftp) <br />
&emsp;&#x1F449;&emsp;[Websocket monitoring](websocket) <br />
&emsp;&#x1F449;&emsp;[MQTT connection monitoring](mqtt) <br />
### Program monitoring
&emsp;&#x1F449;&emsp;[Process](process) <br />
&emsp;&#x1F449;&emsp;[JVM monitoring](jvm) <br />
&emsp;&#x1F449;&emsp;[SpringBoot2.0](springboot2) <br />
&emsp;&#x1F449;&emsp;[SpringBoot3.0](springboot3) <br />
&emsp;&#x1F449;&emsp;[DynamicTp](dynamic_tp) <br />
### Database monitoring
&emsp;&#x1F449;&emsp;[MYSQL database monitoring](mysql) <br />
&emsp;&#x1F449;&emsp;[MariaDB database monitoring](mariadb) <br />
&emsp;&#x1F449;&emsp;[PostgreSQL database monitoring](postgresql) <br />
&emsp;&#x1F449;&emsp;[SqlServer database monitoring](sqlserver) <br />
&emsp;&#x1F449;&emsp;[Oracle database monitoring](oracle) <br />
&emsp;&#x1F449;&emsp;[DM database monitoring](dm) <br />
&emsp;&#x1F449;&emsp;[OpenGauss database monitoring](opengauss) <br />
&emsp;&#x1F449;&emsp;[IoTDB database monitoring](iotdb) <br />
&emsp;&#x1F449;&emsp;[TiDB database monitoring](tidb) <br />
&emsp;&#x1F449;&emsp;[MongoDB database monitoring](mongodb) <br />
&emsp;&#x1F449;&emsp;[NebulaGraph cluster monitoring](nebulagraph_cluster) <br />
### Cache monitoring
&emsp;&#x1F449;&emsp;[Redis monitoring](redis) <br />
&emsp;&#x1F449;&emsp;[Memcached monitoring](memcached) <br />
### Operating system monitoring
&emsp;&#x1F449;&emsp;[Linux operating system monitoring](linux) <br />
&emsp;&#x1F449;&emsp;[Windows operating system monitoring](windows) <br />
&emsp;&#x1F449;&emsp;[Ubuntu operating system monitoring](ubuntu) <br />
&emsp;&#x1F449;&emsp;[Centos operating system monitoring](centos) <br />
&emsp;&#x1F449;&emsp;[FreeBSD operating system monitoring](freebsd) <br />
&emsp;&#x1F449;&emsp;[RedHat operating system monitoring](redhat) <br />
&emsp;&#x1F449;&emsp;[Rocky Linux operating system monitoring](rockylinux) <br />
&emsp;&#x1F449;&emsp;[EulerOS monitoring](euleros) <br />
### Middleware monitoring
&emsp;&#x1F449;&emsp;[Zookeeper](zookeeper) <br />
&emsp;&#x1F449;&emsp;[Kafka](kafka) <br />
&emsp;&#x1F449;&emsp;[Tomcat](tomcat) <br />
&emsp;&#x1F449;&emsp;[ShenYu](shenyu) <br />
&emsp;&#x1F449;&emsp;[DynamicTp](dynamic_tp) <br />
&emsp;&#x1F449;&emsp;[RabbitMQ](rabbitmq) <br />
&emsp;&#x1F449;&emsp;[ActiveMQ](activemq) <br />
&emsp;&#x1F449;&emsp;[Jetty](jetty) <br />
&emsp;&#x1F449;&emsp;[Nacos](nacos) <br />
### CloudNative monitoring
&emsp;&#x1F449;&emsp;[Docker](docker) <br />
&emsp;&#x1F449;&emsp;[Kubernetes](kubernetes) <br />
### Bigdata monitoring
&emsp;&#x1F449;&emsp;[Clickhouse](clickhouse) <br />
&emsp;&#x1F449;&emsp;[ElasticSearch](elasticsearch) <br />
&emsp;&#x1F449;&emsp;[Flink](flink) <br />
### Ai LLM monitoring
&emsp;&#x1F449;&emsp;[openai](openai) <br />
### Network monitoring
&emsp;&#x1F449;&emsp;[Huawei-switch](huawei_switch) <br />
### Server monitoring
***
## 💡 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.
More details see&emsp;&#x1F449;&emsp;[Alarm center](alarm_center)
### 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&emsp;&#x1F449;&emsp;[Threshold alarm](alert_threshold) <br />
&emsp;&emsp;&emsp;&#x1F449;&emsp;[Threshold expression](alert_threshold_expr)
### Alarm reduce
> Combine related alarms through alarm grouping, alarm suppression and other functions to reduce the alarm storm caused by one event, reduce alarm noise and improve alarm response efficiency.
More details see&emsp;&#x1F449;&emsp;[Alarm grouping](alarm_group) <br />
&emsp;&emsp;&emsp;&#x1F449;&emsp;[Alarm inhibit](alarm_inhibit)
### 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.
&emsp;&#x1F449;&emsp;[Configure Email Notification](alert_email) <br />
&emsp;&#x1F449;&emsp;[Configure Discord Notification](alert_webhook) <br />
&emsp;&#x1F449;&emsp;[Configure Slack Notification](alert_webhook) <br />
&emsp;&#x1F449;&emsp;[Configure Telegram Notification](alert_webhook) <br />
&emsp;&#x1F449;&emsp;[Configure WebHook Notification](alert_webhook) <br />
&emsp;&#x1F449;&emsp;[Configure enterprise WeChat Robot Notification](alert_wework) <br />
&emsp;&#x1F449;&emsp;[Configure DingDing Robot Notification](alert_dingtalk) <br />
&emsp;&#x1F449;&emsp;[Configure FeiShu Robot Notification](alert_feishu) <br />
&emsp;&#x1F449;&emsp;[Configure Huawei Cloud SMN Notification](alert_smn) <br />
### Plugins
&emsp;&#x1F449;&emsp;[Plugin](plugin) <br />
+200
View File
@@ -0,0 +1,200 @@
---
id: h2
title: H2 Database - TESTING ONLY, NOT FOR PRODUCTION
sidebar_label: H2 Database (Testing Only)
keywords: [open source monitoring tool, H2 database, testing, not for production, security warning]
---
> ⚠️ **CRITICAL SECURITY WARNING**: H2 Database is **NOT suitable for production environments**. It is provided for local testing and development purposes only. Using H2 in production exposes your server to serious security vulnerabilities. Please read this page carefully before using H2 with HertzBeat.
## 🔴 Security Risks - READ BEFORE USING
### What is H2 Database?
H2 is an open-source Java SQL database. HertzBeat ships with H2 as its **default embedded database** to enable quick testing and evaluation without requiring a separate database installation.
### Why H2 Is Dangerous in Production
H2 has a built-in feature called `CREATE ALIAS` that allows arbitrary Java code execution within database queries. This means:
```sql
-- Example of EXTREMELY dangerous H2 capability:
CREATE ALIAS EXEC AS $$
String exec(String cmd) throws Exception {
Runtime.getRuntime().exec(cmd);
return null;
}
$$;
-- This can execute shell commands on the server:
CALL EXEC('rm -rf /important-data');
```
If your HertzBeat H2 database is accessible to malicious actors (or even unauthorized internal users), they can:
- **Execute arbitrary shell commands** on the HertzBeat server
- **Read any file** accessible to the HertzBeat process
- **Compromise the entire server** running HertzBeat
- **Access all monitoring data** including sensitive credentials
📖 For complete details, read the official [H2 Security Documentation](https://h2database.com/html/security.html).
### Network Exposure Risk
H2 can run in server mode, potentially exposing a database management interface on the network. By default, H2 uses ports **8082** (web console) and **9092** (TCP server). If these are accessible externally, any user can connect directly to your database.
---
## ✅ H2 is Appropriate For
- **Local Development**: Quick setup for evaluating HertzBeat features
- **Automated Testing**: CI/CD pipelines in isolated environments
- **Demos**: Showcasing HertzBeat to stakeholders
- **Learning**: Understanding HertzBeat before production deployment
---
## 🚫 H2 is NOT Appropriate For
- Production deployments
- Multi-user environments
- Systems with sensitive monitoring data
- Internet-accessible HertzBeat instances
- Environments requiring data persistence across restarts
- High-availability setups
---
## 🔒 Migrating to a Production Database
For production use, migrate to one of these supported databases:
### MySQL / MariaDB (Recommended for most deployments)
1. Install MySQL 5.7+ or MariaDB 10.5+
2. Create a dedicated database and user:
```sql
CREATE DATABASE hertzbeat;
CREATE USER 'hertzbeat'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON hertzbeat.* TO 'hertzbeat'@'localhost';
FLUSH PRIVILEGES;
```
3. Update `application.yml`:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8
username: hertzbeat
password: strong_password_here
driver-class-name: com.mysql.cj.jdbc.Driver
```
4. Download MySQL JDBC driver and place in `ext-lib/`
5. Restart HertzBeat
📖 See the full [MySQL monitoring guide](./mysql.md) for setup details.
### PostgreSQL (Recommended for enterprise deployments)
1. Install PostgreSQL 12+
2. Create database and user:
```sql
CREATE USER hertzbeat WITH PASSWORD 'strong_password_here';
CREATE DATABASE hertzbeat OWNER hertzbeat;
GRANT ALL PRIVILEGES ON DATABASE hertzbeat TO hertzbeat;
```
3. Update `application.yml`:
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/hertzbeat
username: hertzbeat
password: strong_password_here
driver-class-name: org.postgresql.Driver
```
4. Download PostgreSQL JDBC driver and place in `ext-lib/`
5. Restart HertzBeat
📖 See the full [PostgreSQL monitoring guide](./postgresql.md) for setup details.
---
## ⚙️ H2 Configuration (Testing Only)
If you are using H2 for **testing purposes** in a **sandboxed environment**, the default HertzBeat configuration uses H2 with these settings:
| Configuration | Default Value | Description |
|--------------|---------------|-------------|
| Database type | H2 | Embedded Java database |
| Database file | `./data/hertzbeat` | Local file storage |
| Web console | Port 8082 | H2 web management UI |
| Auto-create | Enabled | Creates schema automatically |
### Checking Your Current Configuration
View your current database configuration in `application.yml`:
```yaml
spring:
datasource:
# H2 configuration (testing only)
url: jdbc:h2:./data/hertzbeat
driver-class-name: org.h2.Driver
```
---
## 🛡️ If You Must Use H2 Temporarily
If you absolutely must use H2 while transitioning to a production database, take these precautions:
1. **Restrict Network Access**: Ensure HertzBeat is not accessible from the internet
2. **Disable H2 Console**: Comment out or remove H2 console configuration
3. **Firewall Rules**: Block ports 8082 and 9092 externally
4. **Limit User Access**: Only trusted administrators should access HertzBeat
5. **Monitor Access Logs**: Watch for unusual SQL queries
6. **Plan Migration**: Set a deadline to migrate to MySQL or PostgreSQL
```yaml
# Disable H2 web console in application.yml:
spring:
h2:
console:
enabled: false # IMPORTANT: Disable in any non-local environment
```
---
## 📋 Security Checklist Before Going to Production
Before deploying HertzBeat in any non-testing environment, verify:
- [ ] H2 database has been replaced with MySQL or PostgreSQL
- [ ] H2 web console is disabled
- [ ] Database credentials are strong and unique
- [ ] Database is not directly accessible from the internet
- [ ] HertzBeat is running behind a reverse proxy with SSL
- [ ] Monitoring credentials are encrypted and access-controlled
- [ ] Regular database backups are configured
---
## 🆘 Help and Support
If you need help migrating from H2 to a production database:
- 📖 [HertzBeat Documentation](https://hertzbeat.apache.org/docs/)
- 💬 [Apache HertzBeat Mailing List](https://lists.apache.org/list.html?dev@hertzbeat.apache.org)
- 🐛 [GitHub Issues](https://github.com/apache/hertzbeat/issues)
- 💡 [GitHub Discussions](https://github.com/apache/hertzbeat/discussions)
---
> **Remember**: The convenience of H2 for testing comes at the cost of security. Always plan to migrate to a production-grade database before deploying HertzBeat in any real environment.
+89
View File
@@ -0,0 +1,89 @@
---
id: hadoop
title: Monitoring Hadoop
sidebar_label: Apache 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=external-ip-address
-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 Setmemory_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 Setcode_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 Setclass_loading
| Metric name | Metric unit | Metric help description |
|-----------------------|-------------|--------------------------|
| LoadedClassCount | | Loaded Class Count |
| TotalLoadedClassCount | | Total Loaded Class Count |
| UnloadedClassCount | | Unloaded Class Count |
#### Metrics Setthread
| 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 |
+59
View File
@@ -0,0 +1,59 @@
---
id: hbase_master
title: Monitoring Hbase Master
sidebar_label: HbaseMaster Monitoring
keywords: [Open Source Monitoring System, Open Source Database Monitoring, HbaseMaster Monitoring]
---
> Collect monitoring data for general performance metrics of Hbase Master.
**Protocol: HTTP**
## Pre-monitoring steps
Check the `hbase-site.xml` file to obtain the value of the `hbase.master.info.port` configuration item, which is used for monitoring.
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). |
| Port | The port number of the Hbase master, default is 16010. That is, the value of the`hbase.master.info.port` parameter. |
| Task Name | The name identifying this monitoring, which needs to be unique. |
| Query Timeout | Set the connection timeout in ms, the default is 3000 milliseconds. |
| Collection Interval | The periodic collection interval for monitoring data, in seconds, with the minimum allowable interval being 30 seconds. |
| Probe | Whether to probe and check the availability of monitoring before adding new monitoring, and proceed with the addition or modification operation only if the probe is successful. |
| Description | Additional notes and descriptions for this monitoring, users can add notes here. |
### Collected Metrics
#### Metric Set: server
| Metric Name | Unit | Metric Description |
|----------------------|------|-----------------------------------------|
| numRegionServers | none | Number of currently alive RegionServers |
| numDeadRegionServers | none | Number of currently dead RegionServers |
| averageLoad | none | Cluster average load |
| clusterRequests | none | Total number of cluster requests |
#### Metric Set: Rit
| Metric Name | Unit | Metric Description |
|----------------------|------|----------------------------------|
| ritnone | none | Current number of RIT |
| ritnoneOverThreshold | none | Number of RIT over the threshold |
| ritOldestAge | ms | Duration of the oldest RIT |
#### Metric Set: basic
| Metric Name | Unit | Metric Description |
|-------------------------|------|---------------------------------------------|
| liveRegionServers | none | List of currently active RegionServers |
| deadRegionServers | none | List of currently offline RegionServers |
| zookeeperQuorum | none | Zookeeper list |
| masterHostName | none | Master node |
| BalancerCluster_num_ops | none | Number of cluster load balancing operations |
| numActiveHandler | none | Number of RPC handlers |
| receivedBytes | MB | Cluster received data volume |
| sentBytes | MB | Cluster sent data volume (MB) |
| clusterRequests | none | Total number of cluster requests |
+93
View File
@@ -0,0 +1,93 @@
---
id: hbase_regionserver
title: Monitoring HBase RegionServer
sidebar_label: HBase RegionServer Monitoring
keywords: [Open-source monitoring system, Open-source database monitoring, RegionServer monitoring]
---
> Collect and monitor common performance metrics for HBase RegionServer.
**Protocol:** HTTP
## Pre-Monitoring Operations
Review the `hbase-site.xml` file to obtain the value of the `hbase.regionserver.info.port` configuration item, which is used for monitoring.
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| Target Host | The IPV4, IPV6, or domain name of the monitored entity. Note ⚠️ Do not include the protocol header (e.g., https://, http://). |
| Port | The port number of the HBase regionserver, default is 16030, i.e., the value of the`hbase.regionserver.info.port` parameter |
| Task Name | A unique name to identify this monitoring task. |
| Query Timeout | Set the connection timeout in ms, the default is 3000 milliseconds. |
| Collection Interval | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Probe Before Adding | Whether to probe and check the availability of monitoring before adding new monitoring, only proceed with the addition if the probe is successful. |
| Description Note | Additional notes to identify and describe this monitoring, users can add notes here. |
### Collection Metrics
> All metric names are directly referenced from the official fields, hence there may be non-standard naming.
#### Metric Set: server
| Metric Name | Unit | Metric Description |
|-----------------------------------|-------|---------------------------------------------------------------------------|
| regionCount | None | Number of Regions |
| readRequestCount | None | Number of read requests since cluster restart |
| writeRequestCount | None | Number of write requests since cluster restart |
| averageRegionSize | MB | Average size of a Region |
| totalRequestCount | None | Total number of requests |
| ScanTime_num_ops | None | Total number of Scan requests |
| Append_num_ops | None | Total number of Append requests |
| Increment_num_ops | None | Total number of Increment requests |
| Get_num_ops | None | Total number of Get requests |
| Delete_num_ops | None | Total number of Delete requests |
| Put_num_ops | None | Total number of Put requests |
| ScanTime_mean | None | Average time of a Scan request |
| ScanTime_min | None | Minimum time of a Scan request |
| ScanTime_max | None | Maximum time of a Scan request |
| ScanSize_mean | bytes | Average size of a Scan request |
| ScanSize_min | None | Minimum size of a Scan request |
| ScanSize_max | None | Maximum size of a Scan request |
| slowPutCount | None | Number of slow Put operations |
| slowGetCount | None | Number of slow Get operations |
| slowAppendCount | None | Number of slow Append operations |
| slowIncrementCount | None | Number of slow Increment operations |
| slowDeleteCount | None | Number of slow Delete operations |
| blockCacheSize | None | Size of memory used by block cache |
| blockCacheCount | None | Number of blocks in Block Cache |
| blockCacheExpressHitPercent | None | Block cache hit ratio |
| memStoreSize | None | Size of Memstore |
| FlushTime_num_ops | None | Number of RS writes to disk/Memstore flushes |
| flushQueueLength | None | Length of Region Flush queue |
| flushedCellsSize | None | Size flushed to disk |
| storeFileCount | None | Number of Storefiles |
| storeCount | None | Number of Stores |
| storeFileSize | None | Size of Storefiles |
| compactionQueueLength | None | Length of Compaction queue |
| percentFilesLocal | None | Percentage of HFile in local HDFS Data Node |
| percentFilesLocalSecondaryRegions | None | Percentage of HFile for secondary region replicas in local HDFS Data Node |
| hlogFileCount | None | Number of WAL files |
| hlogFileSize | None | Size of WAL files |
#### Metric Set: IPC
| Metric Name | Unit | Metric Description |
|---------------------------|------|----------------------------------------|
| numActiveHandler | None | Current number of RITs |
| NotServingRegionException | None | Number of RITs exceeding the threshold |
| RegionMovedException | ms | Duration of the oldest RIT |
| RegionTooBusyException | ms | Duration of the oldest RIT |
#### Metric Set: JVM
| Metric Name | Unit | Metric Description |
|----------------------|------|-----------------------------------|
| MemNonHeapUsedM | None | Current active RegionServer list |
| MemNonHeapCommittedM | None | Current offline RegionServer list |
| MemHeapUsedM | None | Zookeeper list |
| MemHeapCommittedM | None | Master node |
| MemHeapMaxM | None | Cluster balance load times |
| MemMaxM | None | RPC handle count |
| GcCount | MB | Cluster data reception volume |
+56
View File
@@ -0,0 +1,56 @@
---
id: hdfs_datanode
title: Monitoring Apache HDFS DataNode
sidebar_label: Apache HDFS DataNode
keywords: [big data monitoring system, distributed file system monitoring, Apache HDFS DataNode monitoring]
---
> HertzBeat monitors metrics for Apache HDFS DataNode nodes.
**Protocol Used: HTTP**
## Pre-monitoring Operations
Retrieve the HTTP monitoring port for the Apache HDFS DataNode. Value: `dfs.datanode.http.address`
## Configuration Parameters
| Parameter Name | Parameter Description |
|-----------------------------|-------------------------------------------------------------------------------------------|
| Target Host | IP(v4 or v6) or domain name of the target to be monitored. Exclude protocol. |
| Port | Monitoring port number for Apache HDFS DataNode, default is 50075. |
| Query Timeout | Timeout for querying Apache HDFS DataNode, in milliseconds, default is 6000 milliseconds. |
| Metrics Collection Interval | Time interval for monitoring data collection, in seconds, minimum interval is 30 seconds. |
| Probe Before Monitoring | Whether to probe and check monitoring availability before adding. |
| Description/Remarks | Additional description and remarks for this monitoring. |
### Metrics Collected
#### Metric Set: FSDatasetState
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|----------------------------------|
| DfsUsed | GB | DataNode HDFS usage |
| Remaining | GB | Remaining space on DataNode HDFS |
| Capacity | GB | Total capacity of DataNode HDFS |
#### Metric Set: JvmMetrics
| Metric Name | Metric Unit | Metric Description |
|----------------------|-------------|---------------------------------------------------|
| MemNonHeapUsedM | MB | Current usage of NonHeapMemory by JVM |
| MemNonHeapCommittedM | MB | Committed size of NonHeapMemory configured in JVM |
| MemHeapUsedM | MB | Current usage of HeapMemory by JVM |
| MemHeapCommittedM | MB | Committed size of HeapMemory by JVM |
| MemHeapMaxM | MB | Maximum size of HeapMemory configured in JVM |
| MemMaxM | MB | Maximum memory available for JVM at runtime |
| ThreadsRunnable | Count | Number of threads in RUNNABLE state |
| ThreadsBlocked | Count | Number of threads in BLOCKED state |
| ThreadsWaiting | Count | Number of threads in WAITING state |
| ThreadsTimedWaiting | Count | Number of threads in TIMED WAITING state |
#### Metric Set: runtime
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|--------------------|
| StartTime | | Startup time |
+92
View File
@@ -0,0 +1,92 @@
---
id: hdfs_namenode
title: Monitoring HDFS NameNode
sidebar_label: Apache HDFS NameNode
keywords: [big data monitoring system, distributed file system monitoring, HDFS NameNode monitoring]
---
> HertzBeat monitors metrics for HDFS NameNode nodes.
**Protocol Used: HTTP**
## Pre-Monitoring Actions
Ensure that you have obtained the JMX monitoring port for the HDFS NameNode.
## Configuration Parameters
| Parameter Name | Parameter Description |
|-----------------------------|-------------------------------------------------------------------------------------------|
| Target Host | The IPv4, IPv6, or domain name of the target being monitored. Exclude protocol headers. |
| Port | The monitoring port number of the HDFS NameNode, default is 50070. |
| Query Timeout | Timeout for querying the HDFS NameNode, in milliseconds, default is 6000 milliseconds. |
| Metrics Collection Interval | Time interval for collecting monitoring data, in seconds, minimum interval is 30 seconds. |
| Probe Before Monitoring | Whether to probe and check the availability of monitoring before adding it. |
| Description/Remarks | Additional description and remarks for this monitoring. |
### Collected Metrics
#### Metric Set: FSNamesystem
| Metric Name | Metric Unit | Metric Description |
|---------------------------------|-------------|------------------------------------------------------------|
| CapacityTotal | | Total cluster storage capacity |
| CapacityTotalGB | GB | Total cluster storage capacity |
| CapacityUsed | | Used cluster storage capacity |
| CapacityUsedGB | GB | Used cluster storage capacity |
| CapacityRemaining | | Remaining cluster storage capacity |
| CapacityRemainingGB | GB | Remaining cluster storage capacity |
| CapacityUsedNonDFS | | Non-HDFS usage of cluster capacity |
| TotalLoad | | Total client connections in the cluster |
| FilesTotal | | Total number of files in the cluster |
| BlocksTotal | | Total number of BLOCKs |
| PendingReplicationBlocks | | Number of blocks awaiting replication |
| UnderReplicatedBlocks | | Number of blocks with insufficient replicas |
| CorruptBlocks | | Number of corrupt blocks |
| ScheduledReplicationBlocks | | Number of blocks scheduled for replication |
| PendingDeletionBlocks | | Number of blocks awaiting deletion |
| ExcessBlocks | | Number of excess blocks |
| PostponedMisreplicatedBlocks | | Number of misreplicated blocks postponed for processing |
| NumLiveDataNodes | | Number of live data nodes in the cluster |
| NumDeadDataNodes | | Number of data nodes marked as dead |
| NumDecomLiveDataNodes | | Number of decommissioned live nodes |
| NumDecomDeadDataNodes | | Number of decommissioned dead nodes |
| NumDecommissioningDataNodes | | Number of nodes currently being decommissioned |
| TransactionsSinceLastCheckpoint | | Number of transactions since the last checkpoint |
| LastCheckpointTime | | Time of the last checkpoint |
| PendingDataNodeMessageCount | | Number of DATANODE requests queued in the standby namenode |
#### Metric Set: RPC
| Metric Name | Metric Unit | Metric Description |
|--------------------|-------------|---------------------|
| ReceivedBytes | | Data receiving rate |
| SentBytes | | Data sending rate |
| RpcQueueTimeNumOps | | RPC call rate |
#### Metric Set: runtime
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|--------------------|
| StartTime | | Start time |
#### Metric Set: JvmMetrics
| Metric Name | Metric Unit | Metric Description |
|---------------------------------|--------------|------------------------------------------|
| MemNonHeapUsedM | MB | Current usage of NonHeapMemory by JVM |
| MemNonHeapCommittedM | MB | Committed NonHeapMemory by JVM |
| MemHeapUsedM | MB | Current usage of HeapMemory by JVM |
| MemHeapCommittedM | MB | Committed HeapMemory by JVM |
| MemHeapMaxM | MB | Maximum HeapMemory configured for JVM |
| MemMaxM | MB | Maximum memory that can be used by JVM |
| GcCountParNew | Count | Number of ParNew GC events |
| GcTimeMillisParNew | Milliseconds | Time spent in ParNew GC |
| GcCountConcurrentMarkSweep | Count | Number of ConcurrentMarkSweep GC events |
| GcTimeMillisConcurrentMarkSweep | Milliseconds | Time spent in ConcurrentMarkSweep GC |
| GcCount | Count | Total number of GC events |
| GcTimeMillis | Milliseconds | Total time spent in GC events |
| ThreadsRunnable | Count | Number of threads in RUNNABLE state |
| ThreadsBlocked | Count | Number of threads in BLOCKED state |
| ThreadsWaiting | Count | Number of threads in WAITING state |
| ThreadsTimedWaiting | Count | Number of threads in TIMED WAITING state |
+60
View File
@@ -0,0 +1,60 @@
---
id: hikvision_isapi
title: Monitor Hikvision ISAPI
sidebar_label: Hikvision ISAPI
keywords: [ monitor, hikvision_isapi ]
---
> Monitor Hikvision devices through ISAPI interface to collect health data.
## Monitor Configuration
| Parameter | Description |
| ----------- | ----------- |
| Host | The IP or domain name of the monitored device. Note⚠️ Do not include protocol prefix (eg: https://, http://). |
| Name | The unique name that identifies this monitor. |
| Port | Network request port, default is 80. |
| Timeout | Timeout period, in milliseconds, default is 5000ms. |
| Username | Login username for Hikvision device. |
| Password | Login password for Hikvision device. |
| SSL | Whether to enable HTTPS, disabled by default. |
| Collection Interval | The interval time for periodic data collection, in seconds. The minimum interval is 30 seconds. |
## Metrics
### System Info
- Device Name
- Device ID
- Firmware Version
- Device Model
- Mac Address
### Status
- CPU Utilization (%)
- Memory Usage (MB)
- Memory Available (MB)
- Cache Size (MB)
- Net Port 1 Speed (Mbps)
- Net Port 2 Speed (Mbps)
- Boot Time
- Device Uptime
- Last Calibration Time
- Last Calibration Time Diff (s)
- Avg Upload Time (ms)
- Max Upload Time (ms)
- Min Upload Time (ms)
- Last Calibration Mode
- Last Calibration Address
- Response Time (ms)
## Implementation Principle
The monitoring is implemented by accessing the Hikvision device's ISAPI interface:
1. Collect system information through: `/ISAPI/System/deviceInfo`
2. Collect device status through: `/ISAPI/System/status`
It uses HTTP protocol with Digest Authentication to access the interfaces and parses XML response data to extract monitoring metrics.
+76
View File
@@ -0,0 +1,76 @@
---
id: hive
title: Monitoring Apache Hive
sidebar_label: Apache Hive
keywords: [open source monitoring tool, open source apache hive monitoring tool, monitoring apache hive metrics]
---
> Collect and monitor the general performance metrics exposed by the Apache Hive.
## Pre-monitoring operations
If you want to monitor information in `Apache Hive` with this monitoring type, you need to open your `Hive Server2` in remoting mode.
**1、Enable metastore:**
```shell
hive --service metastore &
```
**2. Enable hive server2:**
```shell
hive --service hiveserver2 &
```
### 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 10002. |
| 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 |
| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds |
| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation |
| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here |
### Collect metrics
#### metric Collection: basic
| Metric Name | metric unit | Metrics help describe |
|-------------|-------------|-----------------------------------------------------------|
| vm_name | None | The name of the virtual machine (VM) running HiveServer2. |
| vm_vendor | None | The vendor or provider of the virtual machine. |
| vm_version | None | The version of the virtual machine. |
| up_time | None | The duration for which HiveServer2 has been running. |
#### metric Collection: environment
| Metric Name | metric unit | Metrics help describe |
|----------------------|-------------|-------------------------------------------------------------------|
| https_proxyPort | None | The port number used for HTTPS proxy communication. |
| os_name | None | The name of the operating system on which HiveServer2 is running. |
| os_version | None | The version of the operating system. |
| os_arch | None | The architecture of the operating system. |
| java_runtime_name | None | The name of the Java runtime environment used by HiveServer2. |
| java_runtime_version | None | The version of the Java runtime environment. |
#### metric Collection: thread
| Metric Name | metric unit | Metrics help describe |
|----------------------|-------------|----------------------------------------------------------------------|
| thread_count | None | The current number of threads being used by HiveServer2. |
| total_started_thread | None | The total count of threads started by HiveServer2 since its launch. |
| peak_thread_count | None | The highest number of threads used by HiveServer2 at any given time. |
| daemon_thread_count | None | The number of daemon threads currently active in HiveServer2. |
#### metric Collection: code_cache
| Metric Name | metric unit | Metrics help describe |
|-------------|-------------|-------------------------------------------------------------------------|
| committed | MB | The amount of memory currently allocated for the memory pool. |
| init | MB | The initial amount of memory requested for the memory pool. |
| max | MB | The maximum amount of memory that can be allocated for the memory pool. |
| used | MB | The amount of memory currently being used by the memory pool. |
+234
View File
@@ -0,0 +1,234 @@
---
id: http_sd
title: Monitoring HTTP Service Discovery
sidebar_label: HTTP Service Discovery
keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring HTTP service discovery]
---
> HertzBeat integrates with custom HTTP APIs to automatically discover service instances and create monitoring tasks for them.
## Overview
HTTP Service Discovery allows HertzBeat to discover service instances by calling your custom HTTP API. This is the most flexible service discovery method, suitable for any system that can expose service instance information via HTTP API. You only need to provide an HTTP endpoint that returns a list of target addresses in the specified format.
### PreRequisites
#### Prepare HTTP API
You need to provide or develop an HTTP API that meets the following requirements:
1. **HTTP Method**: Support GET requests
2. **Response Format**: Return JSON array format
3. **Response Structure**: Must be an array format, each element contains a `target` field (note: singular), which is a string array. Each string is a service instance address in the format `host:port`
4. **Accessibility**: The API must be accessible from HertzBeat
#### API Response Example
```json
[
{
"target": [
"192.168.1.101:8080",
"192.168.1.102:8080",
"192.168.1.103:8080",
"api.example.com:443"
]
}
]
```
### Configuration parameter
| Parameter name | Parameter help description |
|---------------------|--------------------------------------------------------------------------------------------------------------------------|
| Target Name | Identify the name of this monitoring. The name needs to be unique. |
| Service Discovery Url | HTTP API address for service discovery. Must start with http:// or https://. Example: `http://api.example.com/services` |
| Auth Type | Authentication method, optional values: `Bearer Token`, `Basic Auth`, `Digest Auth`. Default: None |
| Access Token | Token for authentication when Auth Type is Bearer Token. |
| Username | Username for authentication when Auth Type is Basic Auth or Digest Auth. |
| Password | Password for authentication when Auth Type is Basic Auth or Digest Auth. |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Usage Steps
1. **Prepare HTTP API**
- Develop or configure an API endpoint that returns service instance list
- Ensure the API returns JSON data in the correct format
- Test the API accessibility and response format
2. **Create Service Discovery Monitoring**
- In HertzBeat web UI, navigate to **Monitoring****New Monitoring**
- Select monitoring type: **HTTP Service Discovery**
- Fill in the basic configuration parameters
- Configure authentication information if needed
3. **Configure Monitoring Template**
- After creating the service discovery monitoring, you need to specify a monitoring template
- The template defines what type of monitoring to create for discovered service instances
- Common template types: Port, HTTP, HTTPS, Ping, etc.
4. **Automatic Discovery**
- HertzBeat will periodically call your HTTP API based on the collection interval
- Automatically create monitoring tasks for newly discovered service instances
- Automatically delete monitoring tasks for disappeared service instances
### Example of usage
#### Example 1: API Without Authentication
Suppose you have a service management API:
- **API URL**: `http://service-manager.example.com/api/v1/services`
- **Response**:
```json
[
{
"target": [
"10.0.1.10:8080",
"10.0.1.11:8080",
"10.0.1.12:8080"
]
}
]
```
Configuration example:
- **Target Name**: `HTTP-Service-Discovery`
- **Service Discovery Url**: `http://service-manager.example.com/api/v1/services`
- **Auth Type**: Leave empty (no authentication)
- **Collection interval**: `60` seconds
- **Monitoring Template**: Select `Port` monitoring
#### Example 2: API With Bearer Token Authentication
If your API requires Bearer Token authentication:
- **API URL**: `https://api.example.com/services`
- **Auth Type**: `Bearer Token`
- **Access Token**: `your-bearer-token-here`
Configuration example:
- **Target Name**: `Secure-API-Discovery`
- **Service Discovery Url**: `https://api.example.com/services`
- **Auth Type**: Select `Bearer Token`
- **Access Token**: Enter your token
- **Monitoring Template**: Select `HTTP` monitoring
#### Example 3: API With Basic Authentication
If your API requires Basic authentication:
- **API URL**: `http://api.internal.com/discover`
- **Auth Type**: `Basic Auth`
- **Username**: `admin`
- **Password**: `password123`
Configuration example:
- **Target Name**: `Basic-Auth-Discovery`
- **Service Discovery Url**: `http://api.internal.com/discover`
- **Auth Type**: Select `Basic Auth`
- **Username**: `admin`
- **Password**: `password123`
- **Monitoring Template**: Select appropriate template
### Notes
- **Response Format**: The API response must be in JSON array format, each element contains a `target` field (note: singular, string array)
- **Address Format**: Each target address should be in the format `host:port`, for example:
- `192.168.1.100:8080`
- `api.example.com:443`
- `localhost:3000`
- **Network Connectivity**: Ensure HertzBeat can access the HTTP API address
- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances
- **Collection Interval**: Set a reasonable collection interval based on API performance and service change frequency
- **Authentication**: Choose the appropriate authentication method according to your API security requirements
- **HTTPS**: If using HTTPS, ensure SSL certificates are properly configured
- **API Performance**: Ensure the API can respond quickly to avoid affecting HertzBeat performance
- **Error Handling**: If the API returns an error or invalid format, HertzBeat will keep the current monitoring tasks unchanged
### Collection Metric
#### Metric set: Monitor Target
| Metric name | Metric unit | Metric help description |
|-----------------|-------------|--------------------------------------------|
| target | none | Discovered service instance target |
| host | none | Service instance host address |
| port | none | Service instance port number |
### Use Cases
- **Custom Registry**: Integrate with your own service registry system
- **Cloud Platform**: Discover services from cloud platforms (AWS, GCP, Azure)
- **CMDB**: Integrate with CMDB systems to obtain service information
- **Service Gateway**: Discover service instances through API gateway
- **Container Platforms**: Obtain service lists from Kubernetes API or container orchestration platforms
- **Service Management Systems**: Integrate with existing service management platforms
- **Multi-Cloud Environments**: Unify service discovery across different cloud platforms
### Advanced Usage
#### Response with Additional Metadata
While the basic requirement is just the `target` field, your API can include additional metadata for future extensions:
```json
[
{
"target": [
"192.168.1.10:8080"
],
"labels": {
"env": "production",
"version": "1.0.0"
}
}
]
```
Note: Currently, only the `target` field is used for service discovery, but future versions may support using label information.
### API Implementation Examples
#### Spring Boot Example
```java
@RestController
@RequestMapping("/api/v1")
public class ServiceDiscoveryController {
@GetMapping("/services")
public List<Map<String, Object>> getServices() {
List<String> targets = Arrays.asList(
"192.168.1.10:8080",
"192.168.1.11:8080",
"192.168.1.12:8080"
);
Map<String, Object> response = new HashMap<>();
response.put("target", targets);
return Collections.singletonList(response);
}
}
```
#### Node.js Express Example
```javascript
app.get('/api/services', (req, res) => {
const targets = [
'192.168.1.10:8080',
'192.168.1.11:8080',
'192.168.1.12:8080'
];
res.json([{
target: targets
}]);
});
```
+53
View File
@@ -0,0 +1,53 @@
---
id: huawei_switch
title: MonitoringHuawei switch
sidebar_label: Huawei switch
keywords: [ open source monitoring tool, network monitoring, Huawei switch ]
---
> Collect and monitor the general indicators (availability, system information, port traffic, etc.) of Huawei switches.
**Protocol Use: SNMP**
## Configuration parameter
| Parameter name | Parameter help description |
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) |
| Task Name | Identify the name of this monitoring. The name needs to be unique |
| Port | Port of SNMP. The default is 161 |
| SNMP Version | SNMP version to use |
| SNMP Community | Used in SNMP v1 and SNMP v2c, used to complete authentication in SNMP Agent, in string form. Group name includes "read" and "write", when performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. When performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. |
| SNMP username | For SNMP v3, MSG username |
| SNMP contextName | For SNMP v3, used to determine the MIB view of the Context EngineID to the managed device |
| SNMP authPassword | For SNMP v3, SNMP authentication passwords |
| authPassword Encryption | For SNMP v3, SNMP authentication algorithm |
| SNMP privPassphrase | For SNMP v3, SNMP encrypted passwords |
| privPassword Encryption | For SNMP v3, SNMP encrypted algorithm |
| Timeout | Set the timeout time when querying unresponsive data, in milliseconds, the default is 6000 milliseconds |
| Intervals | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds |
| Description | For more information about identifying and describing this monitoring, users can note information here |
### Collection Metric
Since there are too many metrics that can be queried on Huawei switches, detailed metrics can be queried
on [Huawei MIB Query Platform](https://info.support.huawei.com/info-finder/tool/en/enterprise/mib).
This document only introduces the monitoring indicators queried in the monitor template.
#### Metric set: huawei_core
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ifIndex | none | Interface index. This value is greater than zero and globally unique. |
| ifDescr | none | A textual string containing information about the interface. This string should include the name of the manufacturer, the product name and the version of the interface hardware/software. |
| ifMtu | octets | The size of the largest packet which can be sent/received on the interface. For interfaces that are used for transmitting network datagrams, this is the size of the largest network datagram that can be sent on the interface. |
| ifSpeed | bit/s | An estimate of the interface's current bandwidth. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. If the bandwidth of the interface is greater than the maximum value reportable by this object then this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed. For a sub-layer which has no concept of bandwidth, this object should be zero. |
| ifInOctets | octets | The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifInDiscards | none | The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifInErrors | none | For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifOutOctets | octets | The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifOutDiscards | none | The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifOutErrors | none | For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
| ifAdminStatus | none | The desired state of the interface. The testing(3) state indicates that no operational packets can be passed. When a managed system initializes, all interfaces start with ifAdminStatus in the down(2) state. As a result of either explicit management action or per configuration information retained by the managed system, ifAdminStatus is then changed to either the up(1) or testing(3) states (or remains in the down(2) state). |
| ifOperStatus | none | The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed. If ifAdminStatus is down(2) then ifOperStatus should be down(2). If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic; it should change to dormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection); it should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state; it should remain in the notPresent(6) state if the interface has missing (typically, hardware) components. |
+140
View File
@@ -0,0 +1,140 @@
---
id: hugegraph
title: Monitoring HugeGraph
sidebar_label: Apache HugeGraph
keywords: [Open Source Monitoring System, Open Source Database Monitoring, HugeGraph Monitoring]
---
> Collect and monitor the general performance metrics of HugeGraph
**Protocol used: HTTP**
## Pre-monitoring Operations
Check the `rest-server.properties` file to obtain the value of the `restserver_port` configuration item, which is used for monitoring.
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|----------------------------------------------------------------------------------------------------------------------------|
| Target Host | The IPv4, IPv6, or domain name of the monitored endpoint. Note ⚠️ Do not include protocol headers (eg: https://, http://). |
| Port | Port number of the HugeGraph restserver, default is 8080. i.e., the value of the `restserver_port` parameter |
| Enable SSL | Enable SSL usage |
| Base Path | Base path, default is: /metrics, usually does not need to be modified |
| Task Name | Identifies the name of this monitoring, ensuring uniqueness. |
| Collection Interval | Interval for periodically collecting data for monitoring, in seconds, with a minimum interval of 30 seconds |
| Probe Enabled | Whether to probe before adding new monitoring, only continue with add/modify operations if the probe is successful |
| Description | Additional identification and description of this monitoring, users can add information here |
### Metrics Collection
#### Metric Set: gauges
| Metric Name | Metric Unit | Metric Description |
|--------------------------------|-------------|----------------------------------------------------------------|
| edge-hugegraph-capacity | NONE | Indicates the capacity limit of edges in the current graph |
| edge-hugegraph-expire | NONE | Indicates the expiration time of edge data |
| edge-hugegraph-hits | NONE | Indicates the number of hits in the edge data cache |
| edge-hugegraph-miss | NONE | Indicates the number of misses in the edge data cache |
| edge-hugegraph-size | NONE | Indicates the number of edges in the current graph |
| instances | NONE | Indicates the number of currently running HugeGraph instances |
| schema-id-hugegraph-capacity | NONE | Indicates the capacity limit of schema IDs in the graph |
| schema-id-hugegraph-expire | NONE | Indicates the expiration time of schema ID data |
| schema-id-hugegraph-hits | NONE | Indicates the number of hits in the schema ID data cache |
| schema-id-hugegraph-miss | NONE | Indicates the number of misses in the schema ID data cache |
| schema-id-hugegraph-size | NONE | Indicates the number of schema IDs in the current graph |
| schema-name-hugegraph-capacity | NONE | Indicates the capacity limit of schema names in the graph |
| schema-name-hugegraph-expire | NONE | Indicates the expiration time of schema name data |
| schema-name-hugegraph-hits | NONE | Indicates the number of hits in the schema name data cache |
| schema-name-hugegraph-miss | NONE | Indicates the number of misses in the schema name data cache |
| schema-name-hugegraph-size | NONE | Indicates the number of schema names in the current graph |
| token-hugegraph-capacity | NONE | Indicates the capacity limit of tokens in the graph |
| token-hugegraph-expire | NONE | Indicates the expiration time of token data |
| token-hugegraph-hits | NONE | Indicates the number of hits in the token data cache |
| token-hugegraph-miss | NONE | Indicates the number of misses in the token data cache |
| token-hugegraph-size | NONE | Indicates the number of tokens in the current graph |
| users-hugegraph-capacity | NONE | Indicates the capacity limit of users in the graph |
| users-hugegraph-expire | NONE | Indicates the expiration time of user data |
| users-hugegraph-hits | NONE | Indicates the number of hits in the user data cache |
| users-hugegraph-miss | NONE | Indicates the number of misses in the user data cache |
| users-hugegraph-size | NONE | Indicates the number of users in the current graph |
| users_pwd-hugegraph-capacity | NONE | Indicates the capacity limit of user passwords |
| users_pwd-hugegraph-expire | NONE | Indicates the expiration time of user password data |
| users_pwd-hugegraph-hits | NONE | Indicates the number of hits in the user password data cache |
| users_pwd-hugegraph-miss | NONE | Indicates the number of misses in the user password data cache |
| users_pwd-hugegraph-size | NONE | Indicates the number of user passwords in the current graph |
| vertex-hugegraph-capacity | NONE | Indicates the capacity limit of vertices in the graph |
| vertex-hugegraph-expire | NONE | Indicates the expiration time of vertex data |
| vertex-hugegraph-hits | NONE | Indicates the number of hits in the vertex data cache |
| vertex-hugegraph-miss | NONE | Indicates the number of misses in the vertex data cache |
| vertex-hugegraph-size | NONE | Indicates the number of vertices in the current graph |
| batch-write-threads | NONE | Indicates the number of threads for batch write operations |
| max-write-threads | NONE | Indicates the maximum number of threads for write operations |
| pending-tasks | NONE | Indicates the number of pending tasks |
| workers | NONE | Indicates the current number of worker threads |
| average-load-penalty | NONE | Indicates the average load penalty |
| estimated-size | NONE | Indicates the estimated data size |
| eviction-count | NONE | Indicates the number of evicted data entries |
| eviction-weight | NONE | Indicates the weight of evicted data |
| hit-count | NONE | Indicates the total cache hits |
| hit-rate | NONE | Indicates the cache hit rate |
| load-count | NONE | Indicates the number of data loads |
| load-failure-count | NONE | Indicates the number of data load failures |
| load-failure-rate | NONE | Indicates the data load failure rate |
| load-success-count | NONE | Indicates the number of successful data loads |
| long-run-compilation-count | NONE | Indicates the number of long-running compilations |
| miss-count | NONE | Indicates the total cache misses |
| miss-rate | NONE | Indicates the cache miss rate |
| request-count | NONE | Indicates the total request count |
| total-load-time | NONE | Indicates the total data load time |
| sessions | NONE | Indicates the current number of active sessions |
#### Metric Set: counters
| Metric Name | Metric Unit | Metric Description |
|-----------------------------------------------------|-------------|--------------------------------------------------------------------------------|
| GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests |
| GET-TOTAL_COUNTER | NONE | Records the total number of GET requests |
| favicon-ico-GET-FAILED_COUNTER | NONE | Records the number of failed GET requests to retrieve favicon.ico |
| favicon-ico-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve favicon.ico |
| graphs-HEAD-FAILED_COUNTER | NONE | Records the number of failed HEAD requests for graphs resources |
| graphs-HEAD-SUCCESS_COUNTER | NONE | Records the number of successful HEAD requests for graphs resources |
| graphs-HEAD-TOTAL_COUNTER | NONE | Records the total number of HEAD requests for graphs resources |
| graphs-hugegraph-graph-vertices-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests for vertices in HugeGraph graphs |
| graphs-hugegraph-graph-vertices-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests for vertices in HugeGraph graphs |
| metrics-GET-FAILED_COUNTER | NONE | Records the number of failed GET requests to retrieve metrics |
| metrics-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics |
| metrics-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests to retrieve metrics |
| metrics-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics |
| metrics-gauges-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests to retrieve metrics gauges |
| metrics-gauges-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics gauges |
#### Metric Set: system
| Metric Name | Metric Unit | Metric Description |
|---------------------------------------------|-------------|---------------------------------------------------------------------------------------------------------|
| mem | NONE | Indicates the total memory of the system |
| mem_total | NONE | Indicates the total memory of the system (same as mem) |
| mem_used | NONE | Indicates the currently used memory of the system |
| mem_free | NONE | Indicates the free memory of the system |
| mem_unit | NONE | Indicates the unit of memory (such as bytes, kilobytes, megabytes, etc.) |
| processors | NONE | Indicates the number of processors in the system |
| uptime | NONE | Indicates the system uptime, i.e., the time since booting |
| systemload_average | NONE | Indicates the average system load, reflecting the system's busyness |
| heap_committed | NONE | Indicates the committed size of JVM heap memory, i.e., the guaranteed heap memory size available to JVM |
| heap_init | NONE | Indicates the initial size of JVM heap memory |
| heap_used | NONE | Indicates the currently used JVM heap memory size |
| heap_max | NONE | Indicates the maximum available size of JVM heap memory |
| nonheap_committed | NONE | Indicates the committed size of JVM non-heap memory |
| nonheap_init | NONE | Indicates the initial size of JVM non-heap memory |
| nonheap_used | NONE | Indicates the currently used JVM non-heap memory size |
| nonheap_max | NONE | Indicates the maximum available size of JVM non-heap memory |
| thread_peak | NONE | Indicates the peak number of threads since JVM startup |
| thread_daemon | NONE | Indicates the current number of active daemon threads |
| thread_total_started | NONE | Indicates the total number of threads started since JVM startup |
| thread_count | NONE | Indicates the current number of active threads |
| garbage_collector_g1_young_generation_count | NONE | Indicates the number of young generation garbage collections by G1 garbage collector |
| garbage_collector_g1_young_generation_time | NONE | Indicates the total time spent in young generation garbage collections by G1 garbage collector |
| garbage_collector_g1_old_generation_count | NONE | Indicates the number of old generation garbage collections by G1 garbage collector |
| garbage_collector_g1_old_generation_time | NONE | Indicates the total time spent in old generation garbage collections by G1 garbage collector |
| garbage_collector_time_unit | NONE | Indicates the unit of garbage collection time (such as milliseconds, seconds, etc.) |
+76
View File
@@ -0,0 +1,76 @@
---
id: iceberg
title: Monitoring Apache Iceberg
sidebar_label: Apache Iceberg
keywords: [open source monitoring tool, open source apache hive monitoring tool, monitoring apache iceberg metrics]
---
> Collect and monitor the general performance metrics exposed by the Apache Iceberg.
## Pre-monitoring operations
If you want to monitor information in `Apache Iceberg` with this monitoring type, you need to open your `Hive Server2` in remoting mode.
**1、Enable metastore:**
```shell
hive --service metastore &
```
**2. Enable hive server2:**
```shell
hive --service hiveserver2 &
```
### 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 10002. |
| 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 |
| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds |
| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation |
| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here |
### Collect metrics
#### metric Collection: basic
| Metric Name | metric unit | Metrics help describe |
|-------------|-------------|-----------------------------------------------------------|
| vm_name | None | The name of the virtual machine (VM) running HiveServer2. |
| vm_vendor | None | The vendor or provider of the virtual machine. |
| vm_version | None | The version of the virtual machine. |
| up_time | None | The duration for which HiveServer2 has been running. |
#### metric Collection: environment
| Metric Name | metric unit | Metrics help describe |
|----------------------|-------------|-------------------------------------------------------------------|
| https_proxyPort | None | The port number used for HTTPS proxy communication. |
| os_name | None | The name of the operating system on which HiveServer2 is running. |
| os_version | None | The version of the operating system. |
| os_arch | None | The architecture of the operating system. |
| java_runtime_name | None | The name of the Java runtime environment used by HiveServer2. |
| java_runtime_version | None | The version of the Java runtime environment. |
#### metric Collection: thread
| Metric Name | metric unit | Metrics help describe |
|----------------------|-------------|----------------------------------------------------------------------|
| thread_count | None | The current number of threads being used by HiveServer2. |
| total_started_thread | None | The total count of threads started by HiveServer2 since its launch. |
| peak_thread_count | None | The highest number of threads used by HiveServer2 at any given time. |
| daemon_thread_count | None | The number of daemon threads currently active in HiveServer2. |
#### metric Collection: code_cache
| Metric Name | metric unit | Metrics help describe |
|-------------|-------------|-------------------------------------------------------------------------|
| committed | MB | The amount of memory currently allocated for the memory pool. |
| init | MB | The initial amount of memory requested for the memory pool. |
| max | MB | The maximum amount of memory that can be allocated for the memory pool. |
| used | MB | The amount of memory currently being used by the memory pool. |
+104
View File
@@ -0,0 +1,104 @@
---
id: idrac
title: Dell iDRAC Monitoring
sidebar_label: Server Monitor
keywords: [open source monitoring tool, open source server Monitoring, Dell iDRAC Monitoring]
---
> Collect and monitor the general performance Metrics of Dell Server using SNMP Protocol.
**Protocol: SNMP**
## Pre-monitoring steps
1. The target Dell server supports the **SNMP protocol**.
2. The **iDRAC** (Integrated Dell Remote Access Controller) has been configured with a network interface, allowing access to the **SNMP port**.
3. **SNMP community string** or **user credentials** have been configured with appropriate **permissions**.
These are basic checks you can follow, and for further details on enabling and configuring SNMP on Dell iDRAC, you can consult the specific user manual of the Dell server.
## Configuration Parameters
| Parameter Name | Parameter Description |
| -------------- |----------------------------------------------------------------------------------------------------------------|
| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). |
| Port | The port number of the server SNMP, default is 161. |
| SNMP Version | Choose between SNMPv1, SNMPv2c, or SNMPv3 |
| SNMP Community | SNMP community for v1 v2c |
| Username | SNMP username for v3 |
| Context Name | SNMP contextName for v3 |
| Auth Password | SNMP authPassword for v3 |
| Auth Encryption| Authentication encryption method for v3 (MD5 or SHA1) |
| Priv Password | SNMP privPassphrase for v3 |
| Priv Encryption| Privacy encryption method for v3 (DES or AES128) |
### Collected Metrics
#### Metric Set: System Status
| Metric Name | Unit | Metric Description |
| ----------------------- | ---- | ------------------------------------------------------------ |
| Global System Status | none | Overall status of the system |
| System LCD Status | none | Status of the system LCD |
| Global Storage Status | none | Overall status of the storage subsystem |
| System Power State | none | Current power state of the system |
| System Power Up Time | day | Time since the system was last powered on |
#### Metric Set: Power Supply
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the power supply |
| Name | none | Name/Location of the power supply |
| Wattage | W | Output wattage of the power supply |
| Type | none | Type of the power supply (Linear, Switching, Battery, etc.) |
| Status | none | Current status of the power supply |
#### Metric Set: Cooling Devices
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the cooling device |
| Name | none | Name/Location of the cooling device |
| Type | none | Type of the cooling device (Fan, Blower, Heat Pipe, etc.) |
| Reading | RPM | Current rotation per minute reading |
| Status | none | Current status of the cooling device |
#### Metric Set: Temperature Sensors
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the temperature sensor |
| Name | none | Name/Location of the temperature sensor |
| Reading | °C | Current temperature reading |
| Status | none | Current status of the temperature sensor |
#### Metric Set: Voltage Sensors
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the voltage sensor |
| Name | none | Name/Location of the voltage sensor |
| Reading | V | Current voltage reading |
| Type | none | Type of voltage (3.3V, 5V, 12V, etc.) |
| Status | none | Current status of the voltage sensor |
#### Metric Set: Memory Devices
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the memory device |
| Name | none | Name/Location of the memory device |
| Type | none | Type of memory (DDR, DDR2, DDR3, DDR4, etc.) |
| Size | G | Size of the memory device |
| Status | none | Current status of the memory device |
#### Metric Set: Processors
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Index | none | Index of the processor |
| Name | none | Name/Location of the processor |
| Speed | MHz | Current speed of the processor |
| Family | none | Family of the processor (Pentium, Xeon, Core i7, etc.) |
| Status | none | Current status of the processor |
+47
View File
@@ -0,0 +1,47 @@
---
id: imap
title: Monitoring detailed mailbox info
sidebar_label: mailbox Monitor
keywords: [Open Source Monitoring System, Open Source Network Monitoring, mailbox Monitor]
---
> IMAP, or Internet Message Access Protocol, allows you to retrieve detailed information from your email server.
> You can click on `Create New QQ Email Monitoring` or `Create New Netease Email Monitoring` to configure, or select `More Actions` to import existing configurations.
## Enable IMAP Service
If you want to use this monitoring type to monitor your email information, please first enable the IMAP service in your email:
For example, in QQ Mail (other emails are similar):
1. Go to `Mail Settings`
2. Find and enable the `IMAP/SMTP option` in `General`
3. Obtain the IMAP server domain, port number, whether to use SSL, and authorization code from the help section
4. Use the above information to configure in HertzBeat and collect monitoring metrics
### Configuration Parameters
| Parameter Name | Parameter Help Description |
|:--------------------|------------------------------------------------------------------------------------------------------------|
| Monitoring Host | IMAP mail server domain. Note ⚠️ do not include protocol headers (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring task, which needs to be unique. |
| Enable SSL | Whether to enable SSL. |
| Port | The port provided by the website. |
| Connection Timeout | The wait timeout for the port connection, in milliseconds, default is 6000 ms. |
| IMAP Email Address | The email address to be monitored. |
| Authorization Code | The authorization code provided by the email server. |
| Monitoring Interval | The interval time for periodic data collection, in seconds, the minimum interval can be set to 30 seconds. |
| Binding Tags | Classification management tags for monitoring resources. |
| Description Notes | Additional identification and description notes for this monitoring task, users can leave notes here. |
### Collection Metrics
Collect information on each folder in the email (custom folders can be configured), as the metrics collected for each folder are the same, only a common set of metrics is listed below
#### Metrics Collection: (Folder Name in Email)
| Metric Name | Metric Unit | Metric Help Description |
|----------------------|-------------|-------------------------------------------------------|
| Total message count | None | The total number of emails in this folder |
| Recent message count | None | The number of recently received emails in this folder |
| Unseen message count | None | The number of unread emails in this folder |
+65
View File
@@ -0,0 +1,65 @@
---
id: influxdb
title: Monitoring InfluxDB Database
sidebar_label: InfluxDB Database
keywords: [open source monitoring system, open source database monitoring, InfluxDB database monitoring]
---
## Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Monitor Host | The IPv4, IPv6, or domain name of the target being monitored. Note⚠️: Do not include the protocol header (e.g., https://, http://). |
| Task Name | A unique identifier for this monitoring task. |
| Port | The port on which the database is exposed. Default is 8086. |
| URL | The database connection URL, usually constructed from the host. No need to add it separately. |
| Collection Interval | The interval at which data is collected during monitoring, in seconds. The minimum interval that can be set is 30 seconds. |
| Probe Enabled | Whether to perform a probe check for monitoring availability before adding or modifying the monitoring task. |
| Description | Additional notes and remarks about this monitoring task. Users can provide information and descriptions here. |
### Collected Metrics
#### Metric Set: influxdb_info
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|--------------------|
| build_date | N/A | Creation date |
| os | N/A | Operating system |
| cpus | N/A | CPUs |
| version | N/A | Version number |
#### Metric Set: http_api_request_duration_seconds
| Metric Name | Metric Unit | Metric Description |
|---------------|-------------|--------------------|
| handler | N/A | Handler |
| path | N/A | Path |
| response_code | N/A | Response code |
| method | N/A | Request method |
| user_agent | N/A | User agent |
| status | N/A | Status |
#### Metric Set: storage_compactions_queued
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|--------------------|
| bucket | N/A | Storage bucket |
| engine | N/A | Engine type |
| id | N/A | Identifier |
| level | N/A | Level |
| path | N/A | Data file path |
#### Metric Set: http_write_request_bytes
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|-------------------------|
| endpoint | N/A | Endpoint |
| org_id | N/A | Organization identifier |
| status | N/A | Status |
#### Metric Set: qc_requests_total
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|-------------------------|
| result | N/A | Result |
| org | N/A | Organization identifier |
+61
View File
@@ -0,0 +1,61 @@
---
id: influxdb_promql
title: Monitoring InfluxDB-PromQL
sidebar_label: InfluxDB-PromQL
keywords: [ Open Source Monitoring System, InfluxDB Monitoring, InfluxDB-PromQL Monitoring ]
---
> Monitor InfluxDB by querying generic metrics data from Prometheus server using Prometheus PromQL. This approach is suitable when Prometheus is already monitoring InfluxDB and you need to fetch InfluxDB's monitoring data from Prometheus server.
## Configuration Parameters
| Parameter Name | Parameter help description |
|---------------------|----------------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | IP, IPv6, or domain name of the target being monitored. Note ⚠️: Do not include protocol header (e.g., https://, http://). |
| Monitoring name | Name to identify this monitoring, ensuring uniqueness of names. |
| Port | Prometheus API port, default: 9090. |
| Relative path | Relative path of Prometheus to query PromQL, default: /api/v1/query |
| Request mode | Set the request method for API calls: GET, POST, PUT, DELETE, default: GET |
| Enable HTTPS | Whether to access the website via HTTPS, note ⚠️: enabling HTTPS generally requires changing the corresponding port to 443 |
| Username | Username for Basic or Digest authentication when accessing the API. |
| Password | Password for Basic or Digest authentication when accessing the API. |
| Content-Type | Resource type when carrying BODY request data. |
| Request BODY | Set the BODY request data, effective for PUT and POST request methods. |
| Collection interval | Interval for periodic data collection in seconds, the minimum interval that can be set is 30 seconds |
| Description remarks | Additional remarks and descriptions for this monitoring. Users can add notes here. |
### Metrics Collection
#### Metric Set: basic_influxdb_memstats_alloc
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
#### Metric Set: influxdb_database_numMeasurements
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| job | None | Metric name |
| instance | None | Instance to which the metric belongs |
| database | None | Name of the database |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
#### Metric Set: influxdb_query_rate_seconds
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
#### Metric Set: influxdb_queryExecutor_queriesFinished_10s
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
+120
View File
@@ -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
```yaml
# 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 |
+53
View File
@@ -0,0 +1,53 @@
---
id: ipmi
title: IPMI2 Monitoring
sidebar_label: Server Monitor
keywords: [open source monitoring tool, open source server Monitoring, IPMI Monitoring]
---
> Collect and monitor the general performance Metrics of Server using IPMI2.
**Protocol: IPMI**
## Pre-monitoring steps
1. The target server supports the **IPMI2 protocol**.
2. The **BMC** (Baseboard Management Controller) has been configured with a network interface, allowing access to the **IPMI port**.
3. **User accounts** have been configured, and appropriate **permissions** have been assigned to the accounts.
These are basic checks you can follow, and for further details on enabling and configuring IPMI over LAN, you can consult the specific user manual of the server manufacturer.
## Configuration Parameters
| Parameter Name | Parameter Description |
| -------------- |----------------------------------------------------------------------------------------------------------------|
| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). |
| Port | The port number of the server IPMI over LAN, default is 623. |
| Username | IPMI user name |
| Password | IPMI password |
### Collected Metrics
#### Metric Set: Chassis
| Metric Name | Unit | Metric Description |
| -------------------- | ---- | ------------------------------------------------------------ |
| System Power | none | Current Power State. Power is on. |
| Power Overload | none | Power overload. System shutdown because of power overload condition. |
| Power Interlock | none | Power Interlock. |
| Main Power Fault | none | Power fault. Fault detected in main power subsystem. |
| Power Control Fault | none | Power control fault. Controller attempted to turn system power on or off, but systemdid not enter desired state. |
| Power Restore Policy | none | Power restore policy. |
| Last Power Event | none | Last Power Event. |
| Cooling/Fan Fault | none | Cooling/fan fault detected. |
| Drive Fault | none | Drive Fault. |
| Front-Panel Lockout | none | Front Panel Lockout active (power off and reset via chassispush-buttons disabled.) |
#### Metric Set: Sensor
| Metric Name | Unit | Metric Description |
| -------------- | ---- | ------------------------------------------------------------ |
| Sensor ID | none | Sensor ID. |
| Entity ID | none | Indicates the physical entity that the sensor is monitoring or is otherwiseassociated with the sensor. |
| Sensor Type | none | Sensor Type. |
| Sensor Reading | none | Current Sensor Reading. |
+73
View File
@@ -0,0 +1,73 @@
---
id: issue
title: Common issues
sidebar_label: Common issues
---
## Monitoring common issues
1. **Page feedbackmonitor.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.
> See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address)
4. Configured Kubernetes monitoring, but the actual monitoring is not executing at the correct interval
Please troubleshoot the issue by following these steps:
> 1. First, check HertzBeat's error logs. If you see the message 'desc: SQL statement too long, check maxSQLLength config',
> 2. You need to adjust the TDengine configuration file. Create a taos.cfg file on the server and modify # max length of an SQL : maxSQLLength 654800, then restart TDengine. Ensure the configuration file is properly mounted.
> 3. If TDengine fails to restart, adjust the configuration in the mounted data file. Refer to .../taosdata/dnode/dnodeEps.json and change dnodeFqdn to the Docker ID of the failed startup instance, then run docker restart tdengine.
5. Configured HTTP API monitoring for business interface probing to ensure service availability. The API has token authentication, e.g., "Authorization: Bearer eyJhbGciOiJIUzI1....". After configuration, testing returns "StatusCode 401". The server receives the token as "Authorization: Bearer%20eyJhbGciOiJIUzI1....". HertzBeat escapes spaces to %20, but the server does not unescape it, causing authentication failure. It is recommended to make the escaping feature optional.
6. What is the task limit for a single collector?
> In current versions, the default collector concurrency limit is `512` concurrent collection tasks when virtual threads are enabled.
> This default is intentionally higher than the legacy CPU-based pool size so a single HertzBeat node can carry more blocking collection work before you need extra collectors.
> If the runtime exceeds the configured collector limit, an error will appear: "the worker pool is full, reject this metrics task, put in queue again".
> You can tune this limit through `hertzbeat.vthreads.collector.max-concurrent-jobs` in `application.yml`.
> If a single node still cannot absorb the workload, configure additional collectors in public mode so HertzBeat can distribute tasks across them.
### 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. Because the docker default network mode is Bridge mode which can't access local machine through localhost.
> Solution AConfigure application.yml. Change database connection address from localhost to external IP of the host machine.
> Solution BUse 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 deployvisit [http://ip:1157/](http://ip:1157/) no interface**
Please refer to the following points to troubleshoot issues
> oneWhether 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.
> twoCheck 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**
> oneCheck whether database account and password configured is correct, the database is created.
> twoIf 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 deployvisit [http://ip:1157/](http://ip:1157/) no interface**
Please refer to the following points to troubleshoot issues:
> oneWhether 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.
> twoCheck 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**
> oneCheck whether database account and password configured is correct, the database is created.
> twoIf you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server.
+80
View File
@@ -0,0 +1,80 @@
---
id: jenkins
title: Monitoring Jenkins
sidebar_label: Jenkins
keywords: [ open-source, monitoring system, CI/CD, DevOps, Jenkins monitoring ]
---
> Monitoring of Jenkins' general metrics is performed by invoking the Jenkins Prometheus Plugin.
## Prerequisites
1. Set up Jenkins-related services according to
the [deployment documentation](https://www.jenkins.io/doc/book/installing/).
2. Requires installation of the [plugin](https://www.jenkins.io/doc/book/managing/plugins/) Exposed metric information
has been accessed; refer to the [prometheus-plugin](https://plugins.jenkins.io/prometheus/) for details.
3. The externally exposed metrics endpoint is ```<jenkin_url>/prometheus```. Verify whether you can access the metrics
data.
### Configuration parameters
| Parameter Name | Parameter Help Description |
|-------------------|-----------------------------------------------------------------------------------------------------------------------|
| Target Host | The monitored peer's IPv4, IPv6, or domain name. Note⚠️: Do not include protocol headers (e.g., https://, http://). |
| Port | Jenkins port value, default is 8080. |
| Task Name | The name identifying this monitoring task. The name must be unique. |
| Query Timeout | Set the connection timeout in milliseconds (ms). Default is 3000 ms. |
| Monitoring Cycle | The interval time for periodic data collection, measured in seconds. The minimum configurable interval is 30 seconds. |
| Binding Tags | Used for classifying and managing monitored resources |
| Description Notes | Additional identifiers and descriptive notes for this monitoring task. Users can add notes here. |
### Collection indicators
#### Indicator Set: System Information Indicators
| Indicator name | Unit | Metric Help Description |
|------------------------------|-------------|-----------------------------|
| default_jenkins_uptime | millisecond | Jenkins runtime |
| default_jenkins_up | None | Jenkins still running |
| default_jenkins_version_info | None | Jenkins Version Information |
| jenkins_health_check_score | None | Jenkins Health Check Score |
#### Metric Set: jvm
| Indicator name | Unit | Metric Help Description |
|------------------------|-------------|-------------------------------------------|
| vm_uptime_milliseconds | millisecond | JVM runtime |
| system_cpu_load | None | System Load |
| vm_count | None | Total Number of JVM Threads |
| vm_memory_heap_max | MB | Maximum memory limit available to the JVM |
| vm_memory_heap_used | MB | Current memory usage of the JVM |
#### Indicator set: Basic information indicators
| Indicator name | Unit | Metric Help Description |
|-------------------------------------|------|----------------------------------------|
| jenkins_project_count_value | None | Number of projects |
| jenkins_project_enabled_count_value | None | Number of enabled items |
| jenkins_queue_size_value | None | Number of tasks in the build queue |
| jenkins_node_online_value | None | Number of currently online build nodes |
#### Indicator Set: Actuator Information Indicators
| Indicator name | Unit | Metric Help Description |
|--------------------------------------|------|-----------------------------------------|
| default_jenkins_executors_available | None | Number of available actuators |
| default_jenkins_executors_busy | None | Number of active actuators |
| default_jenkins_executors_connecting | None | Number of actuators currently connected |
#### Indicator Set: Task Information Indicators
| Indicator name | Unit | Metric Help Description |
|----------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------|
| jenkins_job_count_value | None | Number of assignments |
| default_jenkins_builds_duration_milliseconds_summary_sum | millisecond | Task Construction Duration Summary |
| default_jenkins_builds_last_build_duration_milliseconds | millisecond | Time of the most recent build |
| default_jenkins_builds_success_build_count_total | None | Number of successful builds |
| default_jenkins_builds_failed_build_count_total | None | Number of build failures |
| default_jenkins_builds_unstable_build_count_total | None | Number of unstable builds |
| default_jenkins_builds_total_build_count_total | None | Total number of builds (excluding unbuilt states) |
| default_jenkins_builds_last_build_result_ordinal | 0=Success, 1=Unstable, 2=Failure, 3=Not Built, 4=Aborted | Task Build Status (Last Build) |
+94
View File
@@ -0,0 +1,94 @@
---
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 Setmemory_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 Setclass_loading
| Metric name | Metric unit | Metric help description |
|-----------------------|-------------|--------------------------|
| LoadedClassCount | | Loaded Class Count |
| TotalLoadedClassCount | | Total Loaded Class Count |
| UnloadedClassCount | | Unloaded Class Count |
#### Metrics Setthread
| 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 |
+76
View File
@@ -0,0 +1,76 @@
---
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 UseJMX**
## 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](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 Setmemory_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 Setcode_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 Setclass_loading
| Metric name | Metric unit | Metric help description |
|-----------------------|-------------|--------------------------|
| LoadedClassCount | | Loaded Class Count |
| TotalLoadedClassCount | | Total Loaded Class Count |
| UnloadedClassCount | | Unloaded Class Count |
#### Metrics Setthread
| 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 |
+89
View File
@@ -0,0 +1,89 @@
---
id: kafka
title: MonitorApache 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 UseJMX**
## 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 Setserver_info
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-------------------------|
| Version | | Kafka Version |
| StartTimeMs | ms | Start Time |
| CommitId | | Version Commit ID |
#### Metrics Setmemory_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 Setactive_controller_count
| Metric name | Metric unit | Metric help description |
|-------------|-------------|--------------------------------|
| Value | | server active controller count |
#### Metrics Setbroker_partition_count
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-------------------------|
| Value | | broker partition count |
#### Metrics Setbroker_leader_count
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-------------------------|
| Value | | broker leader count |
#### Metrics Setbroker_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 |
+57
View File
@@ -0,0 +1,57 @@
---
id: kafka_client
title: Monitoring Kafka Monitoring (Client-based)
sidebar_label: Kafka Monitoring (Client-based)
keywords: [open-source monitoring system, open-source message middleware monitoring, Kafka monitoring]
---
> Collect and monitor general metrics for Kafka.
## Configuration Parameters
| Parameter Name | Help Description |
|------------------|---------------------------------------------------------------|
| Monitoring Host | The monitored peer's IPv4, IPv6, or domain name. Note: ⚠️ Do not include protocol headers (e.g., https://, http://). |
| Monitoring Port | The monitored service port. |
| Task Name | The identifier for this monitoring task, which must be unique. |
| Collection Interval | The interval for periodic data collection, in seconds. The minimum allowable interval is 30 seconds. |
| Description/Remarks | Additional information to describe and identify this monitoring task. Users can add remarks here. |
### Collected Metrics
#### Metric Set: topic_list
| Metric Name | Unit | Help Description |
|--------------|------|------------------|
| TopicName | None | Topic Name |
#### Metric Set: topic_detail
| Metric Name | Unit | Help Description |
|----------------------|------|------------------|
| TopicName | None | Topic Name |
| PartitionNum | None | Number of Partitions |
| PartitionLeader | None | Partition Leader |
| BrokerHost | None | Broker Host |
| BrokerPort | None | Broker Port |
| ReplicationFactorSize| None | Replication Factor Size |
| ReplicationFactor | None | Replication Factor |
#### Metric Set: topic_offset
| Metric Name | Unit | Help Description |
|---------------|------|------------------|
| TopicName | None | Topic Name |
| PartitionNum | None | Number of Partitions |
| earliest | None | Earliest Offset |
| latest | None | Latest Offset |
#### Metric Setconsumer_detail
| Metric Name | Unit | Help Description |
|-----------|--|------------------------------------|
| GroupId | None | Consumer Group Id |
| group_member_num | None | Number of Consumer Instances |
| Subscribed Topic Name | None | Topic Name Subscribed by the Group |
| offset_of_each_partition | None | Offsets for Each Partition |
| Lag | None | Lag of Consumer |
+66
View File
@@ -0,0 +1,66 @@
---
id: kafka_promql
title: Monitoring Kafka-PromQL
sidebar_label: Kafka-PromQL
keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Kafka Monitoring, Kafka-PromQL Monitoring ]
---
> Monitor Kafka by querying generic metrics data from Prometheus server using Prometheus PromQL. This approach is suitable when Prometheus is already monitoring Kafka and you need to fetch Kafka's
> monitoring data from Prometheus server.
## Prerequisites
1. Deploy Kafka.
2. Deploy kafka_exporter.
3. Collect monitoring metrics exposed by kafka_exporter through Prometheus.
### Configuration Parameters
| Parameter Name | Parameter Description |
|---------------------|----------------------------------------------------------------------------------------------------------------------------|
| Monitoring Host | IP, IPv6, or domain name of the target being monitored. Note ⚠️: Do not include protocol header (e.g., https://, http://). |
| Monitoring name | Name to identify this monitoring, ensuring uniqueness of names. |
| Port | Prometheus API port, default: 9090. |
| Relative path | Relative path of Prometheus to query PromQL, default: /api/v1/query |
| Request mode | Set the request method for API calls: GET, POST, PUT, DELETE, default: GET |
| Enable HTTPS | Whether to access the website via HTTPS, note ⚠️: enabling HTTPS generally requires changing the corresponding port to 443 |
| Username | Username for Basic or Digest authentication when accessing the API. |
| Password | Password for Basic or Digest authentication when accessing the API. |
| Content-Type | Resource type when carrying BODY request data. |
| Request BODY | Set the BODY request data, effective for PUT and POST request methods. |
| Collection interval | Interval for periodic data collection in seconds, the minimum interval that can be set is 30 seconds |
| Description remarks | Additional remarks and descriptions for this monitoring. Users can add notes here. |
### Metrics Collection
#### Metric Set: kafka_brokers
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| __name__ | None | Metric name |
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
#### Metric Set: kafka_topic_partitions
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| __name__ | None | Metric name |
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
#### Metric Set: kafka_server_brokertopicmetrics_bytesinpersec
| Metric Name | Metric Unit | Metric help description |
|-------------|-------------|--------------------------------------|
| __name__ | None | Metric name |
| instance | None | Instance to which the metric belongs |
| timestamp | None | Timestamp of metric collection |
| value | None | Metric value |
### Other Kafka Monitoring Methods Supported by HertzBeat
1. If Kafka is enabled with JMX monitoring, you can use [Kafka](kafka) Monitoring.
2. If Kafka cluster deploys kafka_exporter to expose monitoring metrics, you can refer to [Prometheus task](prometheus) to configure the Prometheus collection task to monitor kafka.
+55
View File
@@ -0,0 +1,55 @@
---
id: kingbase
title: MonitoringKingbase database monitoring
sidebar_label: Kingbase database
keywords: [open source monitoring tool, open source database monitoring tool, monitoring kingbase database metrics]
---
> Collect and monitor the general performance Metrics of Kingbase database. Support Kingbase V8R6+.
## 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 URLoptionalIf 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 setbasic
| 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 setstate
| 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 Kingbase 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 setactivity
| Metric name | Metric unit | Metric help description |
|-------------|-------------|--------------------------------------|
| running | connections | Number of current client connections |
+99
View File
@@ -0,0 +1,99 @@
---
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 |
| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds |
| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation |
| 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 |
| uid | None | UUID unique identifier|
#### metric Collection: namespaces
| Metric Name | metric unit | Metrics help describe |
|---------------|-------------|-----------------------|
| namespace | None | namespace name |
| status | None | Status |
| creation_time | None | Created |
| uid | None | UUID unique identifier|
#### 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 |
| uid | None | UUID unique identifier |
#### 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 |
| uid | None | UUID unique identifier |
+114
View File
@@ -0,0 +1,114 @@
---
id: linux
title: MonitoringLinux 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 |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by Linux SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
### Data Collection Metrics
#### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
#### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| interrupt | None | Number of CPU interrupts |
| load | None | Average CPU load (1/5/15 minutes) |
| context_switch | None | Number of context switches |
| usage | % | CPU usage |
#### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
#### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
#### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
#### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+101
View File
@@ -0,0 +1,101 @@
---
id: linux_script
title: MonitoringUsing Scripts to Monitor Linux Operating System
sidebar_label: Using Scripts to Monitor Linux OS
keywords: [open source monitoring system, open source network monitoring, using scripts to monitor Linux OS]
---
## Preparation
>
> To monitor the local machine, simply deploy HertzBeat. To monitor other hosts, you need to deploy a collector on the target host. Refer to [this link](https://github.com/apache/hertzbeat?tab=readme-ov-file#2install-via-package) for step 5 of the installation process.
If the collector is installed using Docker, it will cause the collector to be unable to monitor the process information on the host machine, because Docker containers run in an isolated environment, with each container having its own process space.
> When creating a monitoring task and selecting a collector, choose the corresponding collector deployed on the target host.
### Configuration Parameters
| Parameter Name | Parameter Description |
|:---------------|-----------------------------------------------------|
| Monitor Host | The IPv4, IPv6, or domain of the monitored endpoint. Note ⚠️ Do not include protocol headers (e.g., https://, http://). |
| Task Name | The name identifying this monitoring task, which needs to be unique. |
| Collector | Specifies which collector will be used for data collection in this monitoring task. |
| Monitoring Interval | The time interval for periodic data collection, in seconds. |
| Binding Tag | Classification management tags for monitoring resources. |
| Description Notes | Additional notes to describe this monitoring task. Users can add remarks here. |
### Metrics Collection
#### Metric Set: basic
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|--------------------------|
| hostname | None | Name of the host |
| version | None | Operating system version |
| uptime | None | System uptime |
#### Metric Set: cpu
| Metric Name | Metric Unit | Metric Description |
|----------------|-------------|-----------------------------------------------|
| info | None | CPU model |
| cores | Number | Number of CPU cores |
| interrupt | Count | Number of CPU interrupts |
| load | None | Average CPU load over the last 1/5/15 minutes |
| context_switch | Count | Current number of context switches |
| usage | % | CPU usage percentage |
#### Metric Set: memory
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used by cache |
| available | Mb | Available memory capacity |
| usage | % | Memory usage percentage |
#### Metric Set: disk
| Metric Name | Metric Unit | Metric Description |
|---------------|-------------|-------------------------------------------|
| disk_num | Count | Total number of disks |
| partition_num | Count | Total number of partitions |
| block_write | Count | Total number of blocks written to disk |
| block_read | Count | Total number of blocks read from disk |
| write_rate | iops | Rate of blocks written to disk per second |
#### Metric Set: interface
| Metric Name | Metric Unit | Metric Description |
|----------------|-------------|-------------------------------|
| interface_name | None | Network interface name |
| receive_bytes | byte | Inbound data traffic (bytes) |
| transmit_bytes | byte | Outbound data traffic (bytes) |
#### Metric Set: disk_free
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|------------------------|
| filesystem | None | Name of the filesystem |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Disk usage percentage |
| mounted | None | Mount point directory |
#### Metric Set: Top 10 Programs by CPU Usage
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|-------------------------|
| id | None | Process ID |
| cpu | % | CPU usage percentage |
| ws | % | Memory usage percentage |
| command | None | Executed command |
#### Metric Set: Top 10 Programs by Memory Usage
| Metric Name | Metric Unit | Metric Description |
|-------------|-------------|-------------------------|
| id | None | Process ID |
| cpu | % | CPU usage percentage |
| ws | % | Memory usage percentage |
| command | None | Executed command |
+49
View File
@@ -0,0 +1,49 @@
---
id: lmstudio
title: Monitoring LM Studio
sidebar_label: LM Studio
keywords: [ open source monitoring system, open source network monitoring, LM Studio monitoring, local LLM monitoring ]
---
## Prerequisites
>
> Ensure that the LM Studio server is running and the REST API is enabled.
> By default, LM Studio listens on `localhost:1234`.
### Notes
> 1. HertzBeat needs network access to the LM Studio server. Ensure the target host and port are reachable.
> 2. By default, LM Studio does not require authentication for API requests. To enable authentication so that only
requests with a valid API Token are accepted, toggle the switch in the Developers Page > Server Settings.
### Configuration Parameters
| Parameter Name | Parameter Description |
|:------------------|:-----------------------------------------------------------------------------------------------|
| Target Host | The IP address or domain of the LM Studio server. Default: `localhost`. |
| Port | The port of the LM Studio REST API. Default: `1234`. |
| HTTPS | Whether to enable HTTPS. |
| API Token | The API token for authentication (optional, required if API auth is enabled in LM Studio). |
| Task Name | Identify the name of this monitoring, ensuring uniqueness. |
| Collector | Configure which collector to use for scheduling collection for this monitoring. |
| Monitoring Period | Interval time for periodic data collection, in seconds, with a minimum interval of 30 seconds. |
| Bound Tags | Tags for managing classification of monitoring resources. |
| Description | Additional identification and description for this monitoring, users can leave remarks here. |
### Collection Metrics
#### Metric Set: Models
| Metric Name | Metric Unit | Metric Description |
|--------------------|-------------|------------------------------------------|
| Model Key | None | Unique model identifier |
| Display Name | None | Human-readable model name |
| Model Type | None | Model category: llm or embedding |
| Publisher | None | Model creator identifier |
| Architecture | None | Model architecture (e.g., gemma3, llama) |
| Quantization | None | Quantization method (e.g., Q4_0, F16) |
| Quantization Bits | None | Bits per weight for quantization |
| Model Size | MB | Model file size |
| Parameters | None | Parameter count (e.g., 7B, 270M) |
| Max Context Length | None | Maximum token context window |
| Format | None | Model file format (gguf, mlx) |
+177
View File
@@ -0,0 +1,177 @@
---
id: log_integration
title: Log Integration (Beta)
sidebar_label: Log Integration (Beta)
keywords: [open source monitoring, log integration, log management, multi-source logs]
---
> HertzBeat's log integration module aims to achieve unified reception, standardized processing of log data from different third-party log systems and observability platforms. As a centralized "log center", HertzBeat can efficiently integrate log information from external systems and provide real-time log monitoring and analysis capabilities.
:::warning
The log integration feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration.
:::
## Core Capabilities
- **Multi-source Log Integration**: Support receiving log data from mainstream platforms such as OpenTelemetry, Filebeat, Vector, Loki
- **Log Format Standardization**: Convert log data from different platforms to HertzBeat's internal unified format for subsequent processing and analysis
- **Real-time Log Processing**: Provide real-time log stream processing capabilities, supporting instant storage and distribution of log data
- **Intelligent Log Analysis**: Provide log search, filtering and other analysis functions
### Supported Log Sources
HertzBeat currently supports data integration from the following third-party log platforms:
- **OTLP**: Support standard OpenTelemetry Log Protocol (OTLP) HTTP format, can directly receive log data from OpenTelemetry Collector and various applications that support OTLP.
- **More Protocol Support**: HertzBeat is actively expanding its log integration support, including Filebeat, Vector, Loki, etc. If you can't find the integration you need temporarily, the active community can also help you add it.
You can view specific integration methods and configuration examples through HertzBeat's "Log Integration" interface.
![log_integration](/img/docs/help/log_integration_en.png)
## OpenTelemetry OTLP Protocol Integration
### API Endpoint
HertzBeat provides the following interface for receiving OTLP log data:
```text
POST /api/logs/otlp/v1/logs
```
### Request Configuration
#### Request Headers
- `Content-Type`: `application/json` or `application/x-protobuf`
- `Authorization`: `Bearer {token}`
#### Request Body Format
Supports standard OTLP JSON-Protobuf format or Binary Protobuf format log data:
```json
{
"resourceLogs": [
{
"resource": {
"attributes": [
{
"key": "service.name",
"value": {
"stringValue": "my-service"
}
},
{
"key": "service.version",
"value": {
"stringValue": "1.0.0"
}
}
]
},
"scopeLogs": [
{
"scope": {
"name": "my-logger",
"version": "1.0.0"
},
"logRecords": [
{
"timeUnixNano": "1640995200000000000",
"severityNumber": 9,
"severityText": "INFO",
"body": {
"stringValue": "This is a log message"
},
"attributes": [
{
"key": "user.id",
"value": {
"stringValue": "12345"
}
}
],
"traceId": "12345678901234567890123456789012",
"spanId": "1234567890123456"
}
]
}
]
}
]
}
```
### Configuration Examples
#### OpenTelemetry Collector Configuration
Add HertzBeat as a log export target in the OpenTelemetry Collector configuration file:
```yaml
exporters:
otlphttp:
logs_endpoint: http://{hertzbeat_host}:1157/api/logs/otlp/v1/logs
compression: none
encoding: json
headers:
Authorization: "Bearer {token}"
service:
pipelines:
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
```
### Log Data Format Description
#### Core Fields
- **timeUnixNano**: Log timestamp (nanosecond precision)
- **severityNumber**: Log level numeric value (1-24, corresponding to TRACE to FATAL)
- **severityText**: Log level text (such as "INFO", "ERROR", etc.)
- **body**: Log message content
- **attributes**: Log attribute key-value pairs
- **traceId**: Trace ID (optional)
- **spanId**: Span ID (optional)
#### Resource Attributes
Application and environment information can be set through `resource.attributes`:
- `service.name`: Service name
- `service.version`: Service version
- `deployment.environment`: Deployment environment (dev/test/prod)
- `host.name`: Host name
### Configuration Verification
1. **Configure Log Sender**: Configure external systems to send OTLP logs to HertzBeat specified interface
2. **View Received Logs**: View received log data in HertzBeat real-time log module
3. **Verify Data Integrity**: Verify whether log data format, timestamp, attributes and other information are correct
![log_stream](/img/docs/help/log_stream_en.png)
### Common Issues
#### Log Sending Failed
- **Network Connection Issues**: Ensure HertzBeat service address can be accessed by external systems
- **Request Header Error**: Verify that request header Content-Type is set to `application/json`
#### Log Format Error
- **OTLP Format**: Ensure standard OTLP JSON-Protobuf or Binary Protobuf format is sent
- **Timestamp Format**: Check if timestamp format is Unix timestamp with nanosecond precision
- **Log Level**: Verify severityNumber value range (1-24)
- **Data Type**: Ensure data types of each field comply with OTLP specification
### Related Resources
- [OpenTelemetry Log Specification](https://opentelemetry.io/docs/specs/otel/logs/)
- [OpenTelemetry Collector Configuration Guide](https://opentelemetry.io/docs/collector/configuration/)
For more log integration methods or technical issues, feel free to communicate with the community through [GitHub Issues](https://github.com/apache/hertzbeat/issues).
+117
View File
@@ -0,0 +1,117 @@
---
id: log_manage
title: Log Management (Beta)
sidebar_label: Log Management (Beta)
keywords: [open source monitoring, log management, log query, log statistics, log deletion]
---
> HertzBeat's log management feature provides comprehensive log data management capabilities, including log querying, statistical analysis, and batch deletion operations. Users can precisely search logs through various filter conditions, view detailed statistical charts, and clean up unnecessary log data.
:::warning
The log management feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration.
:::
## Prerequisites
**Before using the log management feature, you must first configure a database that supports log storage.**
## Feature Overview
In the HertzBeat interface, navigate to "Logs" -> "Log Management" page, where you'll see a comprehensive log management interface.
![log_manage](/img/docs/help/log_manage_en.png)
## Log Query Features
### Filter Conditions
Log management supports the following filter conditions for precise querying:
| Filter Condition | Field Name | Data Type | Purpose | Example Value | Use Case |
|------------------|------------|-----------|---------|---------------|----------|
| **Time Range** | `timestamp` | DateTime | Specify query time window | `2024-01-01 00:00:00` to `2024-01-02 00:00:00` | Issue time period location, performance analysis |
| **Trace ID** | `traceId` | String | Request tracing in distributed systems | `1234567890abcdef` | Link tracing, request flow analysis |
| **Span ID** | `spanId` | String | Identifier for specific operations in traces | `abcdef1234567890` | Microservice call analysis |
| **Severity Number** | `severityNumber` | Number | OpenTelemetry standard level | `1-24` | Filter by numeric level |
| **Severity Text** | `severityText` | String | Human-readable log level | `ERROR`, `WARN`, `INFO` | Quick filtering by level |
### Visualization Analysis Charts
Visualization analysis charts include basic statistical indicator charts and aggregated statistical charts. Click the "Show Statistics" button to expand and view them.
![log_manage_chart](/img/docs/help/log_manage_chart_en.png)
#### Basic Statistical Indicators
| Statistical Indicator | Description | Application Value | Anomaly Threshold Reference |
|----------------------|-------------|-------------------|----------------------------|
| **Total Logs** | Total number of logs matching query criteria | Evaluate system activity and data scale | Sudden increase/decrease over 50% needs attention |
| **FATAL Logs** | Fatal error level log statistics | Identify system critical failures | Any FATAL logs need immediate handling |
| **ERROR Logs** | Error level log statistics | Monitor system anomalies | Over 5% of total logs needs attention |
| **WARN Logs** | Warning level log statistics | Discover potential issues and performance bottlenecks | Continuous growth trend needs analysis |
| **INFO Logs** | Information level log statistics | Understand normal system operation status | Should be the main body of logs |
| **DEBUG Logs** | Debug level log statistics | Development debugging and issue troubleshooting | Should control quantity in production environment |
#### Aggregated Statistical Charts
| Chart Name | Chart Type | Display Content | Main Purpose | Included Metrics/Levels |
|------------|------------|-----------------|--------------|-------------------------|
| **Severity Distribution Chart** | Pie chart | Quantity distribution of different log levels | Quickly understand log severity distribution | FATAL, ERROR, WARN, INFO, DEBUG |
| **Trace Coverage Chart** | Pie chart | Proportion of logs with trace information | Analyze system trace coverage | Number of logs with Trace ID<br/>Number of logs with Span ID<br/>Number of logs with both Trace and Span<br/>Number of logs without trace information |
| **Log Trend Chart** | Timeline chart | Hourly statistics of log quantity trends | Analyze log generation time patterns and anomaly peaks | Time granularity: Hourly statistics<br/>Analysis dimension: Time pattern recognition, anomaly peak detection |
### Column Display Configuration
Click the "Column Settings" button to customize table column display:
- **Time**: Log generation timestamp
- **Observed Time**: Time when log was observed
- **Severity**: Log level label
- **Log Content**: Main message content
- **Attributes**: Log additional attribute information
- **Resource**: Resource-related information
- **Trace ID**: Distributed tracing identifier
- **Span ID**: Operation span identifier
- **Trace Flags**: Trace flag information
- **Instrumentation Scope Info**: Instrumentation scope information
- **Dropped Count**: Number of dropped attributes
## Log Details View
Click any log entry in the table to open the details modal:
![log_manage](/img/docs/help/log_manage_log_details_en.png)
### Basic Information Section
- **Severity**: Display level label and color identifier
- **Timestamp**: Formatted detailed time display
- **Trace ID**: Complete distributed tracing identifier
- **Span ID**: Complete operation span identifier
### Complete JSON Data
- **Raw Data**: Display complete JSON format of log entry
- **Copy Function**: Support one-click copy to clipboard
- **Formatted Display**: JSON data is formatted for easy reading
## Batch Delete Feature
1. **Select Logs**: Use checkboxes on the left side of the table to select logs for deletion
2. **Select All**: Use the checkbox in the table header to select all logs on the current page
3. **Batch Delete**: Click the "Batch Delete" button to delete selected logs
4. **Delete Count**: Button shows the number of currently selected logs
## Troubleshooting
### Unable to View Logs
**Symptoms**: Page shows "No Data" or loading failure
**Solutions**:
1. Check if time-series database is properly configured
2. Confirm database service is running normally
3. Verify database connection configuration is correct
4. Check if log data is being written to the database
For more information about log management features or technical issues, feel free to engage with the community through [GitHub Issues](https://github.com/apache/hertzbeat/issues).
+91
View File
@@ -0,0 +1,91 @@
---
id: log_stream
title: Log Stream (Beta)
sidebar_label: Log Stream (Beta)
keywords: [open source monitoring, log stream, real-time logs, log filtering]
---
> HertzBeat's log stream feature provides real-time log viewing and filtering capabilities, including real-time log monitoring, multi-dimensional filtering, and log detail viewing. Users can monitor system logs in real-time and perform precise filtering based on different conditions to quickly locate issues and analyze system status.
:::warning
The log stream feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration.
:::
## Feature Overview
In the HertzBeat interface, navigate to "Log" -> "Log Stream" page, where you will see a comprehensive real-time log monitoring interface.
![log_stream](/img/docs/help/log_stream_en.png)
## Real-time Log Viewing
### Log Display
- **Real-time Updates**: New logs automatically appear at the top of the list with highlight animation effects
- **Log Count**: Interface displays the current number of loaded logs (maximum 1000 entries retained)
- **Level Identification**: Following OpenTelemetry specifications, different log levels are identified with different colors:
- Gray: TRACE (1-4)
- Blue: DEBUG (5-8)
- Green: INFO (9-12)
- Orange: WARN (13-16)
- Red: ERROR (17-20)
- Volcano Red: FATAL (21-24)
### Display Controls
- **Pause/Resume**: Click the pause button to pause new log display, click again to resume
- **Clear Logs**: Clear all currently displayed log entries
- **Scroll to Top**: Quickly return to the latest log position
- **Auto Scroll**: System automatically scrolls to the latest logs by default. When users manually scroll to other positions, auto scroll will pause. Click "Scroll to Top" button or scroll to the top to re-enable auto scroll
## Log Filtering
Click the "Show Filters" button to expand the filter configuration area, supporting the following filter conditions:
| Filter Condition | Field Name | Data Type | Purpose | Example Value | Use Case |
|------------------|------------|-----------|---------|---------------|----------|
| **Severity Number** | `severityNumber` | Number | OpenTelemetry standard level | `9` | Filter by numeric level precisely |
| **Severity Text** | `severityText` | String | Human-readable log level | `ERROR`, `WARN`, `INFO` | Quick filtering by level |
| **Trace ID** | `traceId` | String | Distributed system request chain tracking | `1234567890abcdef` | Trace analysis, request flow analysis |
| **Span ID** | `spanId` | String | Specific operation identifier within traces | `abcdef1234567890` | Microservice call analysis |
## Log Detail Viewing Features
Click any log entry to open the detail modal, providing complete log information display:
![log_entry_details](/img/docs/help/log_stream_log_entry_details.png)
### Basic Information Area
- **Severity Level**: Display level label and color identification
- **Timestamp**: Formatted detailed time display
- **Trace ID**: Complete distributed trace identifier
- **Span ID**: Complete operation span identifier
### Complete JSON Data
- **Raw Data**: Display complete JSON format of the log entry
- **Copy Function**: Support one-click copy to clipboard
- **Formatted Display**: JSON data is formatted for easy reading
## Troubleshooting
### Connection Issues
**Symptoms**: Shows "Disconnected" status
**Solutions**:
- Check network connection
- Confirm HertzBeat service is running normally
- Check if browser supports SSE
### No Log Display
**Symptoms**: Connection is normal but no logs are displayed
**Solutions**:
- Check if log data is being sent to HertzBeat
- Verify filter settings are not too restrictive
- Confirm log format meets expectations
For more information about log stream features or technical issues, feel free to communicate with the community through [GitHub Issues](https://github.com/apache/hertzbeat/issues).
+116
View File
@@ -0,0 +1,116 @@
---
id: macos
title: macOS operating system monitoring
sidebar_label: macOS operating system
keywords: [open source monitoring tool, open source os monitoring tool, monitoring macOS operating system metrics]
---
> Collect and monitor the general performance Metrics of macOS operating system.
## Pre-monitoring operations
Please refer to [Allow a remote computer to access your Mac](https://support.apple.com/guide/mac-help/allow-a-remote-computer-to-access-your-mac-mchlp1066/mac) to enable remote login.
## Configuration parameter
| Parameter Name | Parameter Help Description |
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). |
| Task Name | The name that identifies this monitoring, which must be unique. |
| Port | The port provided by SSH, default is 22. |
| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. |
| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. |
| Use Proxy Connection | Sets Whether connect via proxy, default is false. |
| Username | SSH connection username, optional. |
| Password | SSH connection password, optional. |
| Collector | Configures which collector is used to schedule data collection for this monitoring. |
| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. |
| Binding Tags | Used for categorized management of monitoring resources. |
| Description | Additional notes and descriptions for this monitoring, where users can make notes. |
| PrivateKey | The private key required to connect to the server. |
| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. |
| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. |
| Proxy Port | The port number of the proxy service, default is 22. |
| Proxy Username | The authentication username required to connect to the proxy server. |
| Proxy Username | The authentication password required to connect to the proxy server. |
| Proxy PrivateKey | The private key required to authenticate with the proxy server. |
## Data Collection Metrics
### Metric Set: Basic System Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| hostname | None | Host name |
| version | None | System version |
| uptime | None | System Uptime |
### Metric Set: CPU Information
| Metric Name | Metric Unit | Metric Help Description |
|----------------|-------------|-----------------------------------|
| info | None | CPU model |
| cores | None | Number of CPU cores |
| load | None | Average CPU load (1/5/15 minutes) |
| usage | % | CPU usage |
### Metric Set: Memory Information
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------------------|
| total | Mb | Total memory capacity |
| used | Mb | Memory used by user programs |
| free | Mb | Free memory capacity |
| buff_cache | Mb | Memory used for cache |
| available | Mb | Remaining available memory capacity |
| usage | % | Memory usage rate |
### Metric Set: Disk Information
| Metric Name | Metric Unit | Metric Help Description |
|---------------|-------------|----------------------------------------|
| disk_num | None | Total number of disks |
| partition_num | None | Total number of partitions |
| block_write | None | Total number of blocks written to disk |
| block_read | None | Total number of blocks read from disk |
| write_rate | iops | Disk block write rate per second |
### Metric Set: Network Card Information
| 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: File System
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| filesystem | None | Name of the file system |
| used | Mb | Used disk size |
| available | Mb | Available disk size |
| usage | % | Usage rate |
| mounted | None | Mount point directory |
### Metric Set: Top 10 CPU Processes
Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| cpu_usage | % | CPU usage |
| mem_usage | % | Memory usage |
| command | None | Executed command |
### Metric Set: Top 10 Memory Processes
Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command.
| Metric Name | Metric Unit | Metric Help Description |
|-------------|-------------|-------------------------|
| pid | None | Process ID |
| mem_usage | % | Memory usage |
| cpu_usage | % | CPU usage |
| command | None | Executed command |
+69
View File
@@ -0,0 +1,69 @@
---
id: mariadb
title: MonitoringMariaDB 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+.
## Driver selection
MariaDB follows the same automatic routing as MySQL:
- If `mysql-connector-j` is present in `ext-lib`, the JVM collector or built-in server collector automatically prefers JDBC.
- If `mysql-connector-j` is absent, HertzBeat automatically uses the built-in MySQL-compatible query engine. No extra JAR is required.
- Restart HertzBeat or the standalone JVM collector after adding or removing a JAR in `ext-lib`.
:::important Collector package selection
MariaDB monitoring supports both JVM and native deployment now.
- Built-in server collector or JVM collector package: automatically prefers JDBC when `mysql-connector-j` exists in `ext-lib`
- Native collector package: supported when you do not rely on `ext-lib` and want the built-in query engine
- If you explicitly need runtime `ext-lib` JDBC loading, choose the JVM collector package
:::
### 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 URLoptionalIf 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 setbasic
| 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 setstatus
| 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 setinnodb
| 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 |
+153
View File
@@ -0,0 +1,153 @@
---
id: mcp_server
title: MCP Server
sidebar_label: MCP Server
keywords: [MCP, StreamableHttp, streaming, server]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
This page explains how connect to the HertzBeat MCP server. The MCP server auto starts on the default port 1157 when you start the HertzBeat server.
## Overview
- Provides Streamable-Http protocol MCP server.
- Intended for MCP integrations and clients that consume streaming events.
### Connect to the MCP server
Make sure that hertzbeat server is up and running. If you are using any other port than 1157, replace the following accordingly
- URL: `http://your-hertzbeat-server-host:1157/api/mcp`
### Authentication
You must authenticate each request using one of the following methods:
- JWT bearer token
- Header: `Authorization: Bearer <your-jwt-token>`
Note: You can generate a JWT token from the HertzBeat web UI under the Log Integration or Alarm Integration Page.
- Basic authentication
- Header: `Authorization: Basic <base64(username:password)>`
### Editor MCP configuration
<Tabs>
<TabItem value="claude-code" label="Claude Code MCP">
Claude Code use a global config file `~/.claude.json` to config mcp server. You can add HertzBeat MCP by CLI or edit this file directly.
Method A: Use the CLI.
```bash
claude mcp add -s user -t http hertzbeat-mcp http://your-hertzbeat-server-host:1157/api/mcp --header "Authorization: Bearer your_jwt_key"
```
Method B: Edit the file directly.
Basic auth:
```jsonc
{
"mcpServers": {
"hertzbeat-mcp": {
"type": "sse",
"url": "http://your-hertzbeat-server-host:1157/api/mcp",
"headers": {
"Authorization": "Basic <base64(username:password)>"
}
}
}
}
```
JWT bearer:
```jsonc
{
"mcpServers": {
"hertzbeat-mcp": {
"type": "sse",
"url": "http://your-hertzbeat-server-host:1157/api/mcp",
"headers": {
"Authorization": "Bearer <your-jwt-token>"
}
}
}
}
```
After saving `~/.claude.json`, restart or reload Claude Code to make the new MCP configuration take effect.
</TabItem>
<TabItem value="cursor" label="Cursor MCP" default>
Create or edit `.cursor/mcp.json` in your home directory or project root.
Basic auth:
```json
{
"hertzbeat-mcp": {
"url": "http://your-hertzbeat-server-host:1157/api/mcp",
"headers": {
"Authorization": "Basic <base64(username:password)>"
}
}
}
```
JWT bearer:
```json
{
"hertzbeat-mcp": {
"url": "http://your-hertzbeat-server-host:1157/api/mcp",
"headers": {
"Authorization": "Bearer <your-jwt-token>"
}
}
}
```
After saving, reload MCP in Cursor or restart the editor.
</TabItem>
</Tabs>
### Tools available
#### Monitor Management Tools
- **query_monitors**: Query existing/configured monitors with comprehensive filtering, pagination, and status overview. Supports filtering by IDs, type, status, host, labels, and sorting.
- **add_monitor**: Add a new monitoring target to HertzBeat with comprehensive configuration. Handles different parameter requirements for each monitor type.
- **list_monitor_types**: List all available monitor types that can be added to HertzBeat. Shows all supported monitor types with their display names.
- **get_monitor_additional_params**: Get the parameter definitions required for a specific monitor type. Shows what parameters are needed when adding a monitor.
#### Metrics Data Tools
- **query_realtime_metrics**: Get real-time metrics data for a specific monitor. Returns current metrics values including CPU, memory, disk usage, etc.
- **get_historical_metrics**: Get historical metrics data for analysis and trending. Returns time-series data for specified metrics over a time range.
- **get_warehouse_status**: Check the status of the metrics storage warehouse system. Returns whether the metrics storage is operational and accessible.
#### Alert Management Tools
- **query_alerts**: Query alerts with comprehensive filtering and pagination options. Supports filtering by alert type (single/group), status (firing/resolved), search terms, and sorting.
- **get_alerts_summary**: Get alerts summary statistics including total counts, status distribution, and priority breakdown across all monitors.
#### Alert Rule Definition Tools
- **create_alert_rule**: Create a HertzBeat alert rule based on app hierarchy structure and user requirements. Supports threshold values, field conditions, and comprehensive alert configuration.
- **list_alert_rules**: List existing alert rules with filtering options. Shows configured thresholds and alert definitions with search and pagination.
- **get_alert_rule_details**: Get detailed information about a specific alert rule. Shows complete threshold configuration and rule settings.
- **toggle_alert_rule**: Enable or disable an alert rule. Allows activating or deactivating threshold monitoring for specific rules.
- **get_apps_metrics_hierarchy**: Get the hierarchical structure of all available apps and their metrics for alert rule creation. Returns structured JSON data with field parameters.
- **bind_monitors_to_alert_rule**: Bind monitors to an alert rule. Associates specific monitors with alert rules to enable monitoring and alerting.
### Notes
- If the connection drops, reconnect using the same headers.
+67
View File
@@ -0,0 +1,67 @@
---
id: memcached
title: Monitoring Memcached
sidebar_label: Memcached Monitor
keywords: [ open source monitoring tool, open source Memcached monitoring tool, monitoring memcached metrics ]
---
> Collect and monitor the general performance Metrics of Memcached.
**Protocol UseMemcached**
```text
The default YML configuration for the memcache version is in compliance with 1.4.15.
You need to use the stats command to view the parameters that your memcache can monitor
```
**1、Obtain usable parameter indicators through commands such as stats、stats setting、stats settings.
```shell
# telnet ip port
[root@server ~]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 15168
STAT uptime 11691
STAT time 1702569246
STAT version 1.4.15
...
```
**There is help_doc: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)**
## 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 Memcached |
| 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 Setserver_info
| Metric name | Metric unit | Metric help description |
|------------------|-------------|---------------------------------------------------|
| pid | | Memcache server process ID |
| uptime | s | The number of seconds the server has been running |
| version | | Memcache version |
| curr_connections | | Current number of connections |
| auth_errors | | Number of authentication failures |
| threads | | Current number of threads |
| item_size | byte | The size of the item |
| item_count | | Number of items |
| curr_items | | The total number of data currently stored |
| total_items | | The total number of data stored since startup |
| bytes | byte | The current number of bytes occupied by storage |
| cmd_get | | Get command request count |
| cmd_set | | Set command request count |
| cmd_flush | | Flush command request count |
| get_misses | | Get command misses |
| delete_misses | | Delete command misses |
+80
View File
@@ -0,0 +1,80 @@
---
id: modbus
title: Monitoring Modbus
sidebar_label: Modbus Monitor
keywords: [ open source monitoring tool, Modbus monitoring ]
---
> The response of Modbus service and other related indicators are monitored.
## Configuration Parameters
| Parameter Name | Parameter Help Description |
|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| Host of Modbus Service | The IPv4, IPv6, or domain name of the Modbus device to be monitored. Note ⚠️ do not include the protocol header (e.g., https://, http://). |
| Task Name | A name that identifies this monitoring task; the name must be unique. |
| Port | The port used for Modbus network communication. |
| Slave ID (slaveId) | The ID of the slave device in the Modbus network. |
| Holding Register Address | Used for categorizing and managing monitored resources. |
| Coil Register Address | Additional notes and descriptions for this monitoring task; users can add remarks here. |
| Timeout | The allowed time for collecting a response. |
### Collected Metrics
#### Metric Set: holding-register
1. The number of parameters must match the total number of coil register addresses specified in the parameters.
2. Alias format for parameters: holding-register:m or holding-register:m-n
Parameter example:
Coil register addresses:
```text
1,2[3]
```
Parameter alias names:
```yaml
aliasFields:
- responseTime
- holding-register:0
- holding-register:1-0
- holding-register:1-1
- holding-register:1-2
```
| Metric Name | Metric Unit | Metric Help Description |
|----------------------------|--------------|-----------------------------------------------------------------|
| Response Time | Milliseconds | The time required by the Modbus server to respond to a request. |
| Holding Register Parameter | | Setpoint for analog output |
#### Metric Set: coil
1. The number of parameters must match the total number of coil register addresses specified in the parameters.
2. Alias format for parameters: coil:m or coil:m-n
Parameter example:
Coil register addresses:
```text
1,2[3]
```
Parameter alias names:
```yaml
aliasFields:
- responseTime
- coil:0
- coil:1-0
- coil:1-1
- coil:1-2
```
| Metric Name | Metric Unit | Metric Help Description |
|---------------|--------------|-----------------------------------------------------------------|
| Response Time | Milliseconds | The time required by the Modbus server to respond to a request. |
| Coil Status | | Coil status (0 or 1) |
+95
View File
@@ -0,0 +1,95 @@
---
id: mongodb
title: Monitoring:MongoDB
sidebar_label: MongoDB database
keywords: [ open source monitoring tool, open source database monitoring tool, monitoring MongoDB database metrics ]
---
> Collect and monitor the general performance Metrics of MongoDB database.
## Configuration parameter
| Parameter name | Parameter help description |
|------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Target 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 27017. |
| Username | Username for MongoDB,Optional. |
| Password | Password for MongoDB,Optional. |
| database | Database name. |
| authenticationDatabase | Credentials Storage Database. |
| Connect Timeout(ms) | Set connection timeout for MongoDB, unit: ms, default: 6000ms. |
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds |
| Bind Tags | Used to classify and manage monitoring resources. |
| Description remarks | For more information about identifying and describing this monitoring, users can note information here. |
### Collection Metric
#### Metric set:Build Info
| Metric name | Metric unit | Metric help description |
|------------------|-------------|-----------------------------------------------------------------------------------------|
| version | none | The version number of the MongoDB server. |
| gitVersion | none | The Git version of the MongoDB codebase. |
| sysInfo | none | System information, typically includes details about the operating system and platform. |
| loaderFlags | none | Loader flags used to link MongoDB binaries |
| compilerFlags | none | Compiler flags used when compiling MongoDB. |
| allocator | none | The memory allocator used by MongoDB. |
| javascriptEngine | none | The JavaScript engine used by MongoDB. |
#### Metric set:Server Document
| Metric name | Metric unit | Metric help description |
|-------------|-------------|-----------------------------------|
| deleted | none | The number of documents deleted. |
| inserted | none | The number of documents inserted. |
| returned | none | The number of documents returned. |
| updated | none | The number of documents updated. |
#### Metric set:Server Operation
| Metric name | Metric unit | Metric help description |
|----------------|-------------|------------------------------------------------------------------|
| scanAndOrder | none | The number of times a query required both scanning and ordering. |
| writeConflicts | none | The number of write conflicts that occurred. |
#### Metric set: Max Connections
| Metric name | Metric unit | Metric help description |
|------------------|-------------|--------------------------------------------|
| deletedDocuments | none | Number of deleted documents. |
| passes | none | Total number of passes for TTL operations. |
#### Metric set:System Info
| Metric name | Metric unit | Metric help description |
|-------------|-------------|------------------------------------------------------|
| currentTime | none | Current system time. |
| hostname | none | Hostname of the server. |
| cpuAddrSize | MB | Size of CPU address in bits. |
| memSizeMB | MB | Total size of system memory in megabytes. |
| memLimitMB | MB | Memory limit for the MongoDB process in megabytes. |
| numCores | none | Total number of CPU cores. |
| cpuArch | none | CPU architecture. |
| numaEnabled | none | Whether NUMA (Non-Uniform Memory Access) is enabled. |
#### Metric set:OS Info
| Metric name | Metric unit | Metric help description |
|-------------|-------------|----------------------------------|
| type | none | Type of the operating system. |
| name | none | Name of the operating system. |
| version | none | Version of the operating system. |
#### Metric setExtra Info
| Metric name | Metric unit | Metric help description |
|-----------------|-------------|--------------------------------------------------------|
| versionString | none | String describing the version of the operating system. |
| libcVersion | none | Version of the C standard library (libc). |
| kernelVersion | none | Version of the operating system kernel. |
| cpuFrequencyMHz | none | Frequency of the CPU in megahertz. |
| cpuFeatures | none | Features supported by the CPU. |
| pageSize | none | Size of a memory page in bytes. |
| numPages | none | Total number of memory pages. |
| maxOpenFiles | none | Maximum number of open files allowed. |
+77
View File
@@ -0,0 +1,77 @@
---
id: mongodb_atlas
title: Monitoring MongoDB Atlas Database
sidebar_label: MongoDB Atlas Database
keywords: [open-source monitoring system, open-source database monitoring, MongoDB Atlas database monitoring]
---
> Collect and monitor general performance metrics of MongoDB Atlas databases.
## Configuration Parameters
| Parameter Name | Parameter Description |
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| Target Host | The IP address, IPv4, IPv6, or domain name of the target to be monitored. Note: ⚠️ Do not include protocol headers (e.g., https://, http://). |
| Task Name | The name identifying this monitor, which must be unique. |
| Username | MongoDB username, optional. |
| Password | MongoDB password, optional. |
| Database | Name of the database. |
| Authentication Database | The name of the database storing user credentials. |
| Connection Timeout | Timeout for MongoDB connection when no response is received, in milliseconds (ms). Default is 6000 ms. |
| Cluster Mode | Value for MongoDB Atlas cluster: mongodb-atlas |
| Collection Interval | Interval for periodic data collection, in seconds. The minimum interval is 30 seconds. |
| Binding Tags | Used for categorizing and managing monitoring resources. |
| Description/Remarks | Additional labels and description for this monitor; users can add notes here. |
### Collection Metrics
#### Metric Set: Build Information
| Metric Name | Unit | Metric Description |
|------------------|------|-----------------------------------|
| version | None | MongoDB version information |
| gitVersion | None | Source code git version |
| sysInfo | None | System information |
| allocator | None | Memory allocator used by MongoDB |
| javascriptEngine | None | JavaScript engine used by MongoDB |
#### Metric Set: Server Document
| Metric Name | Unit | Metric Description |
|-------------|------|---------------------------------------------------|
| delete | None | Number of deletions |
| insert | None | Number of insertions |
| update | None | Number of updates |
| query | None | Number of queries |
| getmore | None | Number of requests for remaining cursor documents |
| command | None | Total number of command operations |
#### Metric Set: Network Operations
| Metric Name | Unit | Metric Description |
|-------------|------|-----------------------------------------------------|
| Bytes In | None | Number of times a query needs to scan and sort data |
| Bytes Out | None | Number of write conflicts |
| Request Num | None | Number of requests |
#### Metric Set: Connection Information
| Metric Name | Unit | Metric Description |
|---------------------------|------|--------------------------------------|
| Current Connections | None | Number of current active connections |
| Available Connections | None | Number of available connections |
| Total Created Connections | None | Total number of connections created |
#### Metric Set: Database Statistics
| Metric Name | Unit | Metric Description |
|-------------------|-------|---------------------------|
| Database Name | None | Name of the database |
| Collections | None | Number of collections |
| Views | None | Number of views |
| Objects | None | Number of documents |
| Document Avg Size | Bytes | Average size of documents |
| Document Size | Bytes | Total size of documents |
| Storage Size | Bytes | Size of storage used |
| Indexes | None | Number of indexes |
| Index Size | Bytes | Total size of indexes |
+44
View File
@@ -0,0 +1,44 @@
---
id: mqtt
title: Monitoring MQTT Connection
sidebar_label: MQTT Connection
keywords: [ Open Source Monitoring System, MQTT Connection Monitoring ]
---
> Monitor MQTT connection status, supporting MQTT5 and MQTT3.1.1 protocols.
**Protocol used: mqtt**
:::tip
To check if topics can be subscribed to normally, HertzBeat will subscribe to a topic and then immediately unsubscribe; to verify if messages can be published correctly, HertzBeat will send a test
message to a topic (if the test message parameter is empty, this check will not be performed).
Please ensure that these operations will not affect your system.
:::
## Configuration Parameters
| Parameter Name | Parameter Description |
|------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| Target Host | The monitored target's IPv4, IPv6, or domain name. Note ⚠️: Do not include protocol headers (e.g., https://, http://). |
| Task Name | The name of this monitoring task, which needs to be unique. |
| Port | The port where the MQTT service is open, default is 1883. |
| Protocol Version | The MQTT protocol version, supporting MQTT5 and MQTT3.1.1. |
| Connection Timeout(ms) | Connection timeout in milliseconds, default is 6000 ms. |
| Client Id | MQTT client ID, default is `hertzbeat-mqtt-client`. |
| Topic | The topic to be monitored. |
| Test Message | Message content used to test whether a topic can be published to normally (optional; if empty, `canPublish` will always be false). |
| Username | MQTT authentication username (optional). |
| Password | MQTT authentication password (optional). |
| Intervals | Interval for periodic data collection, in seconds; the minimum interval that can be set is 30 seconds. |
| Binding Tag | Used for classification and management of monitoring resources. |
| Description | Additional notes to identify and describe this monitoring task, users can leave notes here. |
### Collected Metrics
#### Metric Set: Summary
| Metric Name | Unit | Metric Description |
|--------------|------|---------------------------------------------------------|
| responseTime | none | Response time |
| canPublish | none | Whether messages can be published to the topic normally |
| canSubscribe | none | Whether the topic can be subscribed to normally |
+70
View File
@@ -0,0 +1,70 @@
---
id: mysql
title: MonitoringMySQL 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+.
## Driver selection
HertzBeat now supports two MySQL query paths:
- If `mysql-connector-j` is present in `ext-lib`, the JVM collector or built-in server collector automatically prefers JDBC.
- If `mysql-connector-j` is absent, HertzBeat automatically uses the built-in MySQL query engine. No extra JAR is required.
- Restart HertzBeat or the standalone JVM collector after adding or removing a JAR in `ext-lib`.
- The automatic decision only checks `ext-lib`. If you want to force one path, set `hertzbeat.collector.mysql.query-engine=jdbc`, `r2dbc`, or `auto`.
:::important Collector package selection
MySQL monitoring supports both JVM and native deployment now.
- Built-in server collector or JVM collector package: automatically prefers JDBC when `mysql-connector-j` exists in `ext-lib`
- Native collector package: supported when you do not rely on `ext-lib` and want the built-in MySQL query engine
- If you explicitly need runtime `ext-lib` JDBC loading, choose the JVM collector package
:::
### 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 URLoptionalIf 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 setbasic
| 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 setstatus
| 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 setinnodb
| 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 |
+24
View File
@@ -0,0 +1,24 @@
---
id: mysql_account_expiry
title: "Monitoring: MySQL Account Expiry"
sidebar_label: "MySQL Account Expiry"
keywords:
- mysql account expiry
- mysql password expiration
- mysql security monitoring
---
> Monitor MySQL database account password expiration information.
## Collection Metric
### Metric setaccount_expiry
| Metric name | Metric unit | Metric help description |
|-----------------------|-------------|------------------------------------------------------|
| user | none | MySQL account username |
| host | none | Host from which the account is allowed to connect |
| password_lifetime | day | Password validity period in days |
| password_last_changed | timestamp | Time when the password was last changed |
| password_expired | none | Whether the account password is expired (true/false) |
| days_left | day | Remaining days before password expiration |

Some files were not shown because too many files have changed in this diff Show More