User Guide Functional Overview Requirements Architecture System Installation NetEye Additional Components Installation Setup The neteye Command Director NetEye Self Monitoring Tornado Business Service Monitoring IT Operation Analytics - Telemetry Geo Maps NagVis Audit Log Shutdown Manager Reporting ntopng Visual Monitoring with Alyvix Elastic Stack IT Operations (Command Orchestrator) Asset Management Service Level Management Cyber Threat Intelligence - SATAYO NetEye.Cloud Solution Monitoring Asset Management SOC System Administrator SOC Attacker Centric Cyber Threat Intelligence - SATAYO NetEye Update & Upgrade Backup and Restore How To NetEye Extension Packs Troubleshooting Security Policy Glossary
module icon Setup
Cluster Satellite Security Backup and Restore Identity and Access Management External Identity Providers Configure federated LDAP/AD Emergency Reset of Keycloak Configuration Keycloak Hostname Configuration Advanced Configuration Roles Single Page Application in NetEye Module Permissions and Single Sign On Within NetEye Importing User Federation Groups inside another Group Importing OIDC IdP Groups inside another Group Resources Tuning Advanced Topics
Functional Overview Requirements Architecture System Installation NetEye Additional Components Installation Setup The neteye Command Introduction to NetEye Monitoring Business Service Monitoring IT Operation Analytics Visualization Network Visibility Log Management & Security Orchestrated Datacenter Shutdown Application Performance Monitoring User Experience Service Management Service Level Management & Reporting Requirements for a Node Cluster Requirements and Best Practices NetEye Satellite Requirements TCP and UDP Ports Requirements Additional Software Installation Introduction Single Node Cluster Kubernetes NetEye Master Master-Satellite Architecture Underlying Operating System Acquiring NetEye ISO Image Installing ISO Image Single Nodes and Satellites Cluster Nodes Configuration of Tenants Satellite Nodes Only Nodes behind a Proxy Additional NetEye Components Satellites Nodes only Verify if a module is running correctly Accessing the New Module Cluster Satellite Security Backup and Restore Identity and Access Management External Identity Providers Configure federated LDAP/AD Emergency Reset of Keycloak Configuration Keycloak Hostname Configuration Advanced Configuration Roles Single Page Application in NetEye Module Permissions and Single Sign On Within NetEye Importing User Federation Groups inside another Group Importing OIDC IdP Groups inside another Group Resources Tuning Advanced Topics Basic Concepts & Usage Advanced Topics Monitoring Environment Templates Monitored Objects Import Monitored Objects Data Fields Deployment Icinga 2 Agents Configuration Baskets Dashboard Monitoring Status Integration with Elasticsearch VMD Permissions Notifications Jobs API Configuring Icinga Monitoring Retention Policy NetEye Self Monitoring Concepts Collecting Events Add a Filter Node WHERE Conditions Iterating over Event fields Retrieving Payload of an Event Extract Variables Create a Rule Tornado Actions Test your Configuration Export and Import Configuration Example Under the hood Development Retry Strategy Configuration Thread Pool Configuration API Reference Configure a new Business Process Create your first Business Process Node Importing Processes Operators The ITOA Module Configuring User Permissions Telegraf Metrics in NetEye Telegraf Configuration Telegraf on Monitored Hosts Visualizing Dashboards Customizing Grafana The NetEye Geo Map Visualizer Map Viewer Configuring Geo Maps NagVis Audit Log Overview Shutdown Manager user Shutdown Manager GUI Shutdown Commands Advanced Topics Overview User Role Management Cube Use Cases ntopng and NetEye Integration Permissions Retention Advanced Topics Overview User Roles Nodes RDP Client Building Tools Editor: Interface Overview Editor: Script Building Editor: Managing Scripts Designer: Interface Overview Designer: Interface Options Designer: Component Tree Selector: Interface Overview Test Case Management Dashboard Use Cases Overview Architecture Authorization Kibana Elasticsearch Cluster Elasticsearch Configuration Replicas on a Single Node Elasticsearch Performance tuning Overview Enabling El Proxy Sending custom logs to El Proxy Configuration files Commands Elasticsearch Templates and Retentions El Proxy DLQ Blockchain Verification Handling Blockchain Corruptions El Proxy Metrics El Proxy Security El Proxy REST Endpoints Agents Logstash Rsyslog Elastic APM Elastic RUM Multitenant OpenTelemetry Collector Elastic XDR Overview Authorization in the Command Orchestrator Module Configuring CLI Commands Executing Commands Overview Permissions Installation Plugins Single Tenancy Multitenancy Communication through a Satellite Asset collection methods Display asset information in monitoring host page Overview Customers Availability Event Adjustment Outages Resource Advanced Topics Introduction The Intelligence We Produce Mitre Attack Coverage Getting Started Settings SATAYO Items Intelligence Requirements Managed Service Request Form FAQ Changelog SATAYO Community NetEye.Cloud as a SaaS solution NetEye.Cloud Subscription Base Concepts Authentication Options Authentication via IdP Group Claims for Authorization Management Authentication via Microsoft Entra ID Authorization Monitoring with NetEye.Cloud Monitoring Environment Business Service Monitoring VMD Asset Management in Neteye.Cloud Automatic Inventory Collection Software & License Management Contract & Supplier Management Change & Lifecycle Management SOC System Administrator (AdS) Access to NetEye and Elastic Elastic Dashboards Elastic Discover Elastic Alerts Elastic Rules Introduction to SOC Attacker Centric Service Description NetEye SIEM About SATAYO Threat Intelligence and Security Operations How SATAYO works MITRE ATT&CK Coverage SATAYO Findings SaaS & Managed Mode Before you start Update Procedure Single Node Upgrade from 4.48 to 4.49 Cluster Upgrade from 4.48 to 4.49 Satellite Upgrade from 4.48 to 4.49 DPO machine Upgrade from 4.48 to 4.49 Create a mirror of the RPM repository Sprint Releases Feature Troubleshooting Backup and Restore Tornado Networking Service Management - Incident Response IT Operation Analytics - Telemetry Identity Provider (IdP) Configuration NetEye Cluster on Microsoft Azure NetEye Cluster on AWS Introduction to NEP Getting Started with NEPs Online Resources Obtaining NEP Insights Available Packages Advanced Topics Upgrade to NetEye 4.48 Setup Configure swappiness Restarting Stopped Services Enable stack traces in web UI How to access standard logs Director does not deploy when services assigned to a host have the same name How to enable/disable debug logging Activate Debug Logging for Tornado Modules/Services do not start Sync Rule fails when trying to recreate Icinga object How to disable InfluxDB query logging Managing an Elasticsearch Cluster with a Full Disk Some logs are not indexed in Elasticsearch Elasticsearch is not functioning properly Reporting: Error when opening a report Debugging Logstash file input filter Bugfix Policy Reporting Vulnerabilities Glossary

Keycloak Hostname Configuration

Keycloak, the component in charge of user authentication, needs to know the public hostname through which NetEye is reached in order to correctly generate redirect URLs, issue tokens, and validate incoming requests. This is configured in /etc/neteye-environment.yaml and applies to all installation types.

Setup

Create the frontend domain configuration file from the shipped template:

cp /usr/share/neteye/setup/neteye-environment.yaml.tpl /etc/neteye-environment.yaml

Set frontend_domain to the domain through which NetEye is accessed by users and systems:

neteye:
  frontend_domain: <your-domain>

Warning

On a Cluster, /etc/neteye-environment.yaml is not stored on shared storage. After creating or editing it, propagate the file to all nodes:

neteye config cluster sync

Fresh Install

On a fresh install, neteye install reads /etc/neteye-environment.yaml and automatically configures Keycloak with a fixed hostname (KC_HOSTNAME_STRICT=true). No additional steps are required.

Post-Upgrade Migration

After an update or upgrade from an installation that predates this setting, Keycloak is configured with dynamic hostname resolution (KC_HOSTNAME_STRICT=false) to avoid breaking the service during the update.

Important

Configuring a fixed hostname is a prerequisite for upgrading to NetEye 4.50. If you skip this step, the upgrade will fail.

To switch to the fixed hostname configuration, run the migration command:

neteye cluster upgrade-prerequisites neteye-domain apply

This sets KC_HOSTNAME, KC_HOSTNAME_STRICT=true and KC_HOSTNAME_BACKCHANNEL_DYNAMIC=true in Keycloak’s environment, then restarts Keycloak.

Note

The apply command requires a valid HTTPS certificate to already be served at https://<frontend_domain>/auth. To revert the change, use the rollback command.

To verify the migration, log in to the NetEye web interface and confirm that all URLs and redirects use the configured frontend_domain.

How It Works

Hostname Strict Mode

NetEye configures Keycloak differently depending on the installation path:

  • On a fresh install, Keycloak is configured with KC_HOSTNAME=https://<frontend_domain>/auth, KC_HOSTNAME_STRICT=true, and KC_HOSTNAME_BACKCHANNEL_DYNAMIC=true. KC_HOSTNAME_STRICT=true makes Keycloak always use the fixed public hostname, while KC_HOSTNAME_BACKCHANNEL_DYNAMIC=true lets internal communication (e.g. between cluster nodes) resolve dynamically.

  • After an update or upgrade from an installation that predates this setting, KC_HOSTNAME_STRICT=false is explicitly set instead. This is necessary because an existing installation may not yet have frontend_domain configured or a valid certificate in place. With KC_HOSTNAME_STRICT=false, Keycloak resolves its hostname dynamically from request headers, which keeps the service running after the upgrade.

Properties Mapping

NetEye sets these values as environment variables in /neteye/shared/keycloak/conf/keycloak.env, which is equivalent to the following Keycloak native configuration properties in /neteye/shared/keycloak/conf/keycloak.conf:

hostname=https://<frontend_domain>/auth
hostname-strict=true
hostname-backchannel-dynamic=true
http-relative-path=/auth

Note

http-relative-path=/auth is already statically configured in keycloak.conf and is the reason why the hostname URL always ends in /auth.