🔍 Overview
Elasticsearch is the preferred datastore for on-premise GermainUX deployments.
Its distributed search and analytics architecture is well suited to:
|
Capability |
|---|
|
High-volume, near-real-time telemetry ingestion |
|
Time-series monitoring data |
|
Fast filtering and aggregation |
|
Full-text search |
|
Large dashboards and investigative queries |
|
Session Replay and technical traces |
|
Horizontal scaling |
|
Time-based retention |
A managed Elasticsearch service can also be used when your organization does not want to operate the cluster directly.
🤝 Before You Begin
Confirm with Germain Software:
|
Item |
|---|
|
The Elasticsearch version supported by your GermainUX release |
|
Required Elasticsearch plugins and settings |
|
Expected daily ingestion volume |
|
Raw and aggregated data-retention periods |
|
Session Replay volume |
|
Node and storage requirements |
|
High-availability requirements |
|
Authentication and TLS configuration |
|
Whether existing GermainUX data must be migrated |
Do not install or upgrade Elasticsearch independently of the GermainUX compatibility requirements.
⚙️ How GermainUX Uses Elasticsearch
📥 Raw Data
Raw indexes retain the complete monitoring facts collected by GermainUX.
Raw data is required for calculations that cannot be reliably reconstructed from aggregated data, including:
|
Calculation |
|---|
|
Percentiles |
|
Standard deviation |
|
Detailed root-cause analysis |
|
Instance-level investigation |
|
Technical tracing |
|
Other calculations that require the original distribution |
After raw data expires, these calculations may no longer be available for the affected period.
📊 Aggregated Data
GermainUX aggregation is similar to Elasticsearch rollups: detailed facts are summarized into larger time intervals to reduce long-term storage.
GermainUX can aggregate data into hourly indexes that may be retained longer than the corresponding raw data.
Aggregated indexes support measures such as:
|
Measure |
|---|
|
Minimum |
|
Maximum |
|
Average |
|
Sum |
|
Count |
Aggregated data generally requires less storage but cannot replace raw data for every calculation.
🔗 Unified Queries
GermainUX can query raw and aggregated indexes through a single request and merge the results into one view.
This allows recent periods to use detailed raw data while older periods use retained aggregates, subject to the measures supported by each data type.
⏱ Time-Series Data
GermainUX time-series data streams are primarily append-only.
For fact data streams, GermainUX can use a lifecycle such as:
-
New data is written to a hot index.
-
After the configured hot period—typically one day—the index becomes read-only or moves to colder storage.
-
Raw data remains available until its retention period expires.
-
Aggregated indexes may be retained for a longer period.
The exact lifecycle must be adjusted to your storage, performance, and retention requirements.
🏢 Architecture Requirements
A GermainUX deployment using Elasticsearch generally requires:
|
Component |
Purpose |
|---|---|
|
Elasticsearch cluster |
Stores monitoring, analytics, tracing, and Session Replay data |
|
GermainUX Enterprise |
Processes and queries collected data |
|
SQL configuration database |
Stores GermainUX configuration when required by the selected architecture |
|
ActiveMQ |
Provides messaging between GermainUX components |
|
GermainUX Engines and collectors |
Collect and transmit telemetry |
|
Kibana—optional |
Supports Elasticsearch administration and diagnostics |
Production environments should also include:
|
Requirement |
|---|
|
TLS |
|
Authentication and role-based access |
|
Backups or snapshots |
|
Monitoring |
|
Retention policies |
|
Sufficient operational free space |
|
Replication and high availability when required |
🚀 Deployment Scenarios
🆕 New GermainUX Deployment
For a new deployment:
-
Prepare the Elasticsearch cluster.
-
Configure security, networking, storage, and snapshots.
-
Install the GermainUX search indexes and templates.
-
Configure GermainUX Enterprise to connect to Elasticsearch.
-
Initialize the required GermainUX data structures.
-
Validate connectivity and query execution.
-
Start monitoring with a limited data volume.
-
Confirm ingestion, search, aggregation, retention, and performance.
-
Expand to production volume.
🔁 Migration From Another Datastore or Environment
When migrating existing data:
-
Prepare the target Elasticsearch cluster.
-
Export the GermainUX configuration from the source environment.
-
Create a temporary GermainUX Enterprise instance.
-
Connect the temporary instance to a separate SQL configuration database.
-
Configure unique queue names so it does not interfere with the existing environment.
-
Configure an appropriate Elasticsearch index prefix.
-
Initialize the Elasticsearch data structures.
-
Configure the migration tool.
-
Migrate and validate each data type.
-
Switch the target GermainUX environment only after validation is complete.
Migration should be planned with Germain Software because the required scripts and sequence depend on the source datastore, GermainUX version, data volume, and retention requirements.
🛠 Prepare Elasticsearch
1️⃣ 1. Provision the Infrastructure
Provision the required Elasticsearch nodes and storage based on:
|
Factor |
|---|
|
Daily AA Unit volume |
|
Peak ingestion rate |
|
Total retained raw data |
|
Aggregated-data retention |
|
Session Replay |
|
Replication |
|
Query workload |
|
Expected growth |
Use SSD storage with sufficient IOPS, throughput, and low latency.
See:
|
Reference |
Link |
|---|---|
|
Hardware Requirements |
https://docs.germainux.com/main/hardware-requirements?utm_source=chatgpt.com |
|
Storage Requirements |
https://docs.germainux.com/main/storage-requirements?utm_source=chatgpt.com |
🕒 2. Configure Time
Configure Elasticsearch and GermainUX hosts with consistent:
|
Setting |
|---|
|
Time zone |
|
System time |
|
Network Time Protocol synchronization |
Time inconsistencies can affect index boundaries, retention, correlation, and time-based analysis.
📡 3. Configure Networking
Allow only the required communication between:
|
From / To |
|---|
|
GermainUX Enterprise and Elasticsearch |
|
Authorized administrators and Elasticsearch |
|
Kibana and Elasticsearch, when Kibana is used |
|
Elasticsearch nodes within the cluster |
|
Snapshot repositories, when configured |
Do not expose Elasticsearch or Kibana directly to untrusted networks.
🔒 4. Configure Security
Before production use:
|
Security Action |
|---|
|
Enable TLS for client and node communication. |
|
Enable authentication. |
|
Create dedicated GermainUX service accounts. |
|
Apply least-privilege roles. |
|
Restrict network access. |
|
Protect credentials outside source-controlled configuration. |
|
Configure audit logging when required. |
|
Secure Kibana if it is installed. |
See Securing Elasticsearch and Kibana.
💾 5. Configure Backups
Configure Elasticsearch snapshots to an approved repository.
Validate:
|
Backup Item |
|---|
|
Snapshot scheduling |
|
Retention |
|
Repository permissions |
|
Encryption |
|
Off-site or cross-region copies where required |
|
Restoration procedures |
A snapshot is not considered a usable backup until a restore has been tested.
💻 Configure GermainUX Enterprise
🔧 Temporary Migration Instance
A temporary GermainUX Enterprise instance may be required to prepare Elasticsearch before migrating existing data.
It requires:
|
Requirement |
|---|
|
A SQL database for GermainUX configuration |
|
Access to the target Elasticsearch cluster |
|
Access to the required GermainUX packages and scripts |
|
A unique ActiveMQ queue prefix |
|
A unique Elasticsearch index prefix |
No production monitoring services should run on the temporary instance.
✏️ Update common.properties
Configure the applicable properties in:
common.properties
For a migration environment:
-
Assign unique queue names or prefixes so the temporary instance can share ActiveMQ without consuming production messages.
-
Set a meaningful Elasticsearch index prefix, such as one identifying the environment.
-
Configure the Elasticsearch URL and connection settings.
-
Configure authentication and TLS.
-
Configure the SQL configuration database.
-
Validate credentials and network connectivity.
Example property:
germain.elastic.properties.indexPrefix
Use a distinct prefix for each development, QA, staging, or production environment sharing the same Elasticsearch cluster.
🚚 Initialize the Datastore
📁 1. Install Search Index Definitions
Import the GermainUX Elasticsearch index definitions from:
servicesDistro/install/indexer/es
Use the files supplied with the exact GermainUX release being deployed.
Do not reuse index definitions from a different release unless Germain Software confirms compatibility.
▶️ 2. Start GermainUX Enterprise
Start the temporary or target GermainUX Enterprise instance and verify that it connects successfully to:
|
Service |
|---|
|
The SQL configuration database |
|
Elasticsearch |
|
ActiveMQ |
Review the logs for authentication, certificate, template, index, or connection errors.
⚙️ 3. Apply the Remaining Elasticsearch Configuration
Use the GermainUX REST endpoint or deployment script provided for your release to create the remaining:
|
Configuration |
|---|
|
Index templates |
|
Data streams |
|
Lifecycle configuration |
|
Mappings |
|
Aliases |
|
Required GermainUX metadata |
Contact Germain Software for the correct script, endpoint, and parameters.
☁️ Migrate Existing Data
⚙️ Configure the Migration Tool
Update the migration tool’s YAML configuration with:
|
Parameter |
|---|
|
Source datastore connection |
|
Target Elasticsearch connection |
|
Authentication |
|
TLS settings |
|
Index prefix |
|
Source and target environment |
|
Date range |
|
Batch size |
|
Data type |
|
Logging and output locations |
Protect database and Elasticsearch credentials according to your security requirements.
▶️ Run the Migration
Run the migration once for each supported data type using the examples provided with the migration tool.
Independent data types may be migrated in parallel when:
|
Condition |
|---|
|
The source datastore can support the additional load. |
|
Elasticsearch can support the combined ingestion rate. |
|
The migration tool and version allow parallel execution. |
|
Sufficient CPU, memory, network, and storage capacity are available. |
Monitor:
|
Metric |
|---|
|
Source-database load |
|
Migration throughput |
|
Elasticsearch indexing latency |
|
Rejected writes |
|
Disk utilization |
|
Cluster health |
|
Error and retry counts |
✅ Validate Migrated Data
For every data type, compare:
|
Comparison |
|---|
|
Record counts |
|
Minimum and maximum timestamps |
|
Application and environment values |
|
Daily volumes |
|
Key measures and pivots |
|
Representative raw facts |
|
Aggregated results |
|
Dashboard results |
|
Session Replay availability, when applicable |
Do not remove or modify the source data until the migration has been accepted.
🔎 Validate Elasticsearch Queries
GermainUX can monitor and validate Elasticsearch queries.
To configure query monitoring:
-
Open Germain Workspace.
-
Go to System > Engine Settings > Component Types.
-
Click Add.
-
Select Elasticsearch Query Monitor Component.
-
Complete the configuration.
-
Validate that the component can connect and execute its configured query.
Use query validation to confirm:
|
Validation |
|---|
|
Connectivity |
|
Authentication |
|
TLS |
|
Index access |
|
Query syntax |
|
Expected results |
|
Query performance |
📋 Production Validation
Before production rollout, confirm that:
|
Check |
|---|
|
The Elasticsearch version is supported. |
|
All cluster nodes are healthy. |
|
TLS and authentication are enabled. |
|
GermainUX uses a dedicated service account. |
|
Index templates and mappings are installed. |
|
The correct environment prefix is configured. |
|
Raw data is being indexed. |
|
Aggregated data is being generated. |
|
Raw and aggregated queries return expected results. |
|
Percentiles and standard deviation work while raw data is retained. |
|
Lifecycle and retention policies operate correctly. |
|
Snapshot and restore procedures have been tested. |
|
Disk, heap, ingestion, and query performance are monitored. |
|
Sufficient capacity remains for merges, reindexing, and growth. |
|
Migrated data has been reconciled with the source. |
For the required Elasticsearch scripts, migration tools, or deployment assistance, contact Germain Software.
Contact Germain Software to discuss an on-premise deployment or request assistance.
Component: Enterprise
Feature Availability: 2014.1 or later