Server Settings

Download PDF

LogZilla YAML-based server configuration in /etc/logzilla/settings/ managed through the logzilla settings CLI for advanced backend parameters

LogZilla stores its server configuration in YAML files, one per settings group. Most groups on this page can also be edited in the web interface under Settings > System Settings, where each group is listed under its title. Fields marked "(advanced)" in the tables below appear there only when the Show Advanced Settings option in the Generic group is enabled. The Query Settings group (querymodule.yaml) and the forwarder, InfluxDB, license, and secrets files have no web interface page; they are managed through the files and, except for secrets.yaml, the logzilla settings command. These backend settings control core system behavior, performance parameters, and security features.

Warning: Changing these settings may cause system instability or data loss. Exercise extreme caution and test changes in a non-production environment first.

Modern Configuration System

LogZilla stores configuration in YAML files located in /etc/logzilla/settings/. Each file corresponds to a specific configuration group (e.g., smtp.yaml, ldap.yaml, generic.yaml).

Configure with the command line

Administrators use the logzilla settings command to manage configuration:

bash
# List all available settings
logzilla settings list

# List settings for a specific group
logzilla settings list ldap

# Update a setting value
logzilla settings update SETTING_NAME=new_value

# Update multiple settings at once
logzilla settings update SMTP_SERVER=mail.company.com SMTP_PORT=587

# Manage multiple instances (e.g., secondary LDAP server)
logzilla settings update --id 1 LDAP_ENABLED=true

Edit the configuration file directly

Advanced users with root access can edit YAML files directly:

bash
# Navigate to settings directory
cd /etc/logzilla/settings/

# Edit a configuration file
vim smtp.yaml

After direct edits, see Applying Changes to reload the affected configuration group.

Applying Changes

After making configuration changes, apply them using one of these methods:

Method 1: Automatic Application (Recommended)

The logzilla settings update command automatically applies changes to compatible modules.

Method 2: Manual Reload (After Direct Edits)

If editing YAML files directly, notify the system of changes:

bash
# Reload a specific configuration group
logzilla settings reload smtp
logzilla settings reload ldap

Method 3: Container Restart (When Required)

The parser module reads parser.yaml, the storage module storage.yaml and sphinx.yaml, and the query module querymodule.yaml when their container starts. After changing one of those files, restart the module that reads it:

bash
# Restart the module container that reads the changed file
logzilla restart -c parsermodule     # parser.yaml
logzilla restart -c storagemodule-1  # storage.yaml, sphinx.yaml
logzilla restart -c querymodule      # querymodule.yaml

# Or restart all LogZilla services
logzilla restart

Note: Most settings files need no manual restart: the watcher reloads or restarts the containers that read them. Live Reloading vs Container Restart lists which files the watcher applies and which ones are restarted by hand.

These are the modules used by LogZilla, which can be restarted with logzilla restart -c <module>:

ModuleDescription
celerybeatSchedules periodic background tasks for the platform.
gunicornAPI server for the LogZilla backend.
celeryworkerExecutes background jobs and module orchestration tasks.
parsermoduleParses, normalizes, and enriches incoming events using rules/apps.
querymoduleRuns searches/analytics, evaluates triggers, and publishes live results.
storagemodule-1Event storage and indexing service (dedup, archiving, aggregates).
aiLogZilla AI backend; powers AI features when enabled.
watcherOrchestrates, monitors, and restarts LogZilla containers.
snmptrapdReceives SNMP traps (UDP 162) and injects them as events.
httpreceiverHTTP/HTTPS event ingest API (token-protected) into LogZilla.
secSimple Event Correlator for stateful, multi-event correlation.
scriptserverRuns user-defined scripts for trigger actions/correlation.
frontWeb frontend serving UI and proxying API/ingest endpoints.
syslogSyslog-ng receiver for BSD/RFC5424, JSON, RAW, and TLS inputs.
logcollectorCollects and consolidates internal container logs for diagnostics.
mailerOutbound SMTP service for alerts and test emails.
telegrafCollects internal metrics and ships them to time-series storage.
qdrantVector database backing AI features (embeddings/search).
influxdbTime-series database for metrics and aggregates.
postgresPrimary relational store for users, dashboards, triggers, settings.
redisIn-memory caching and queues for ephemeral data.

Configuration Files and Settings

The following sections organize settings by their configuration files in /etc/logzilla/settings/:

Generic Settings (generic.yaml)

SettingDescriptionDefaultRange
SEARCH_DEFAULT_LIMITDefault max results limit for search queries100Integer
FREE_DISK_SPACE_SOFT_LIMIT_GBWarning threshold for free disk space10Integer (GB)
FREE_DISK_SPACE_HARD_LIMIT_GBCritical threshold for free disk space1Integer (GB)
EXTERNAL_BASE_URLExternal URL of the LogZilla instancenullValid URL
TIME_ZONEServer timezoneGMTTimezone string
RBAC_ENABLEDEnable Role Based Access Controltruetrue, false
TASKS_ENABLEDEnable Tasks featuretruetrue, false
AIR_GAPPEDDisable external service communicationfalsetrue, false
PRUNE_DOCKER_IMAGESRemove old Docker images during upgradesfalsetrue, false
SHOW_ADVANCED_SETTINGSShow advanced settings in UIfalsetrue, false
LICENSE_EXPIRATION_WARNING_DAYSDays before license expiration at which the UI shows the warning banner60Integer (days)
API_WORKERS_NUMAPI worker processes (advanced)4Integer
ASGI_THREADS_NUMThreads per API worker for synchronous code (advanced)10Integer (threads)
API_DB_POOL_MAX_SIZEPostgreSQL connections one API worker may hold; requests beyond it wait up to 10 seconds for a free connection; 0 disables the pool (advanced)20Integer (connections)

Search Settings (sphinx.yaml)

SettingDescriptionDefaultRange
SPHINX_MIN_WORD_LENGTHMinimum word length to index-Integer
SPHINX_MIN_PREFIX_LENGTHMinimum prefix length to index-Integer
SPHINX_MIN_INFIX_LENGTHMinimum infix length to index-Integer
SPHINX_MAX_DOCUMENTS_PER_INDEXMax documents per index (advanced)-Integer
SPHINX_MAX_INDEXING_TIMEMax indexing time per chunk (seconds) (advanced)-Integer
SPHINX_MIN_INDEX_LENMin events per indexing batch (advanced)-Integer
SPHINX_REINDEX_PROC_MAXMax concurrent indexing processes (advanced)-Integer
SPHINX_MERGING_PROC_MAXMax concurrent merging processes (advanced)-Integer
SPHINX_REINDEX_DELAYDelay between reindexing (seconds) (advanced)-Integer
SPHINX_MAX_MATCHESMaximum matches per query (advanced)-Integer
SPHINX_MYSQL_PORTSphinx MySQL port (0 to disable) (advanced)-Integer
SPHINX_HTTP_PORTSphinx HTTP port (0 to disable) (advanced)-Integer
SPHINX_REALTIME_MODEEnable realtime mode (experimental) (advanced)-true, false

Query Settings (querymodule.yaml)

SettingDescriptionDefaultRange
MODULE_WORKERSNumber of query worker threads10Integer (max 50)
QUERY_POLL_TIMEOUTTimeout for query poll commands (meta/delta) sent to storage nodes (seconds)30Integer
QUERY_LIFECYCLE_TIMEOUTTimeout for query lifecycle commands (register/stop/destroy) sent to storage nodes (seconds)30Integer

Trigger Settings (triggers.yaml)

SettingDescriptionDefaultRange
TRIGGERS_ENABLEDEnable or disable triggerstruetrue, false
SEND_MAIL_PERIODEmail resend interval (seconds)60Integer
SEND_WEBHOOK_PERIODWebhook resend interval (seconds)10Integer
EXEC_SCRIPT_PERIODScript rerun interval (seconds)1Integer
SEND_SERVICENOW_PERIODInterval between ServiceNow batches of one trigger (seconds)60Integer

SMTP Settings (smtp.yaml)

SettingDescriptionDefaultRange
MAIL_SENDEREmail address used as sender[email protected]Email address
SMTP_SERVERSMTP server addressmailerHostname/IP
SMTP_PORTSMTP server port25Integer
SMTP_AUTH_REQUIREDEnable SMTP authenticationfalsetrue, false
SMTP_USERSMTP username for authentication(empty)String
SMTP_PASSSMTP password for authentication(empty)String
SMTP_CRYPTEncryption methodNONETLS, SSL, NONE
SMTP_TIMEOUTConnection timeout (seconds)5Integer

Auth and Sessions Settings (django_login.yaml)

Login session lifetime, the limits on repeated authentication failures, and how the client address is determined behind an additional proxy. A change saved in the web interface or with logzilla settings update is applied by a graceful reload of the API workers, with no container restart.

SettingDescriptionDefaultRange
AUTOLOGIN_ENABLEDLog every visitor in as AUTOLOGIN_USER without a passwordfalsetrue, false
AUTOLOGIN_USERAccount used when auto-login is enabledadminUsername
SESSION_COOKIE_AGELifetime of a login session (seconds)1209600Positive integer
AUTH_FAILURE_USER_LIMITFailed logins for one username from one client address after which that username is refused from that address for the rest of the window, even with the right password; 0 switches the lock off5Non-negative integer
AUTH_FAILURE_ADDRESS_LIMITFailed logins, unknown API tokens, and wrong password reset keys, each counted separately, from one client address after which further failures of that kind are answered with 429 Too Many Requests until the failure window ends; a correct password, a valid token, or a valid reset key is never refused by this limit; 0 switches it off30Non-negative integer
AUTH_FAILURE_WINDOWLength of the failure window, counted from the first failure (seconds)300Positive integer
AUTH_TRUSTED_PROXY_HOPSNumber of additional proxies or load balancers in front of LogZilla that append the client address to X-Forwarded-For; the failure limits and the login audit then charge the address that many entries before the one the LogZilla front proxy appends; set only when every request reaches LogZilla through those proxies0Non-negative integer

Executive Report Settings (exec_report.yaml)

Branding, link paths, and attention thresholds of the executive report. The Executive Report page describes the report itself and how the thresholds are applied.

SettingDescriptionDefaultRange
EXEC_REPORT_BRAND_NAMEBrand name shown in the report email and workbook; empty keeps the LogZilla branding(empty)String
EXEC_REPORT_LOGO_URLAbsolute URL of the logo shown in the report email in place of the brand name(empty)URL or empty
EXEC_REPORT_VIEW_PATHPath of the interactive report linked from the email and workbook, appended to the instance URL; {document_id} is replaced; empty links the report file download/reports/executive/{document_id}Path starting with /, or empty
EXEC_REPORT_SCHEDULE_PATHPath of the report schedule linked from the email, appended to the instance URL; {schedule_id} is replaced; empty removes the link/reports/schedules/{schedule_id}Path starting with /, or empty
EXEC_REPORT_EPD_WARNING_PCTLicensed events per day used, in percent, from which the license is flagged as a warning80Positive integer, at most EXEC_REPORT_EPD_CRITICAL_PCT
EXEC_REPORT_EPD_CRITICAL_PCTLicensed events per day used, in percent, from which the license is flagged as critical100Positive integer
EXEC_REPORT_DISK_WARNING_DAYSProjected days until storage is full below which storage is flagged as a warning60Positive integer
EXEC_REPORT_DISK_SERIOUS_DAYSProjected days until storage is full below which storage is flagged as serious14Positive integer, at most EXEC_REPORT_DISK_WARNING_DAYS
EXEC_REPORT_THREAT_UP_PCTIncrease of critical threats over the previous period, in percent, from which they are flagged50Positive integer
EXEC_REPORT_THREAT_MIN_EVENTSCritical threat events in the period needed before the increase is flagged100Positive integer
EXEC_REPORT_FAILED_AUTH_UP_PCTIncrease of failed logins over the previous period, in percent, from which they are flagged; 100 means twice as many100Positive integer
EXEC_REPORT_FAILED_AUTH_MIN_EVENTSFailed login events in the period needed before the increase is flagged1000Positive integer
EXEC_REPORT_LINK_DOWN_MIN_EVENTSLink down events on one device in the period from which the device is flagged10Positive integer
EXEC_REPORT_DEFAULT_SCHEDULECreate the Weekly Executive Report and its Monday 06:00 schedule for the admin account on a new installation and switch the schedule on once the SMTP server or the sender address is changed from its default and the admin account has an email addresstruetrue, false

ServiceNow Settings (servicenow.yaml)

Destination of the Send to ServiceNow trigger action. The ServiceNow Event Management page under Alerts covers the record layout and the ServiceNow-side setup.

SettingDescriptionDefaultRange
SERVICENOW_ENABLEDEnable the Send to ServiceNow trigger actionfalsetrue, false
SERVICENOW_INSTANCE_URLInstance URL; /api/global/em/jsonv2 is added when the URL has no path(empty)URL
SERVICENOW_USERNAMEService account for basic authentication(empty)String
SERVICENOW_PASSWORDService account password(empty)String (secret)
SERVICENOW_SOURCEServiceNow source fieldLogZillaString
SERVICENOW_DEFAULT_EVENT_TYPEServiceNow type for events without a programsyslogString
SERVICENOW_EVENT_CLASSServiceNow event_class field(empty)String
SERVICENOW_VERIFY_TLSVerify the instance certificatetruetrue, false
SERVICENOW_TIMEOUTRequest timeout (seconds)10Integer
SERVICENOW_MAX_ATTEMPTSAttempts per batch31 to 10
SERVICENOW_BACKOFFRetry delay base (seconds) (advanced)2Integer
SERVICENOW_BATCH_SIZERecords per request (advanced)1001 to 500
SERVICENOW_SEVERITY_<LEVEL>ServiceNow severity per syslog level, EMERGENCY to DEBUG (advanced)see the alerts page0 to 5

Syslog Daemon Settings (syslogng.yaml)

SettingDescriptionDefaultRange
SYSLOG_BSD_TCP_PORTTCP port for BSD syslog (0 to disable)514Integer
SYSLOG_BSD_UDP_PORTUDP port for BSD syslog (0 to disable)514Integer
SYSLOG_RFC5424_PORTPort for RFC5424 syslog (0 to disable)601Integer
SYSLOG_JSON_PORTPort for JSON syslog (0 to disable)515Integer
SYSLOG_RAW_PORTPort for RAW TCP events (0 to disable)516Integer
SYSLOG_RAW_UDP_PORTPort for RAW UDP events (0 to disable)516Integer
SYSLOG_TLS_PORTPort for TLS syslog (0 to disable)6514Integer
SYSLOG_TLS_CERT_FILEPath to TLS certificate file/etc/logzilla/nginx/server.crtFile path
SYSLOG_TLS_KEY_FILEPath to TLS key file/etc/logzilla/nginx/server.keyFile path
SYSLOG_MAX_CONNECTIONSMaximum concurrent TCP connections (advanced)500Integer
SYSLOG_FLOW_CONTROLEnable flow control (advanced)truetrue, false
SYSLOG_DISK_BUFFEREnable disk bufferfalsetrue, false
SYSLOG_BUFFER_RELIABLEEnable reliable disk buffer (advanced)falsetrue, false
SYSLOG_MEMORY_BUFFER_SIZE_MBMemory buffer size (MB) (advanced)4Integer
SYSLOG_MEMORY_BUFFER_LENGTHMemory buffer length (messages)50000Integer
SYSLOG_DISK_BUFFER_SIZE_MBDisk buffer size (MB) (advanced)1Integer
SYSLOG_DESTINATION_WORKERSNumber of destination workers (advanced)2Integer
SYSLOG_DESTINATION_BATCH_LINESLines per batch (advanced)10000Integer
SYSLOG_DESTINATION_BATCH_TIMEOUTBatch timeout (milliseconds) (advanced)500Integer
SYSLOG_DEBUGEnable debug logging (TSV format)falsetrue, false
SYSLOG_DEBUG_JSONEnable debug logging (JSON format)falsetrue, false
PCI_COMPLIANT_LOGSEnable PCI compliant loggingfalsetrue, false

Application Ports (application_ports.yaml)

Dedicated syslog ports for vendors whose log format requires separate handling. Events received on these ports are automatically tagged for processing by the corresponding application rules. Each port listens on both TCP and UDP.

SettingDescriptionDefaultRange
SYSLOG_ARISTA_EOS_PORTArista EOS syslog port (0 to disable)0Integer
SYSLOG_CHECKPOINT_PORTCheck Point syslog port (0 to disable)0Integer
SYSLOG_DATAPOWER_PORTIBM DataPower syslog port (0 to disable)0Integer
SYSLOG_DELL_N_SERIES_PORTDell N-Series switch syslog port (0 to disable)0Integer
SYSLOG_FIREEYE_PORTFireEye syslog port (0 to disable)0Integer
SYSLOG_INFOBLOX_PORTInfoblox NIOS syslog port (0 to disable)0Integer
SYSLOG_MERAKI_PORTCisco Meraki syslog port (0 to disable)0Integer
SYSLOG_PALOALTO_PORTPalo Alto syslog port (0 to disable)0Integer
SYSLOG_PALOALTO_SDWAN_ION_PORTPalo Alto Prisma SD-WAN ION syslog port (0 to disable)0Integer
SYSLOG_SYMANTEC_PORTSymantec Endpoint Protection syslog port (0 to disable)0Integer
SYSLOG_UNIFI_PORTUbiquiti UniFi syslog port (0 to disable)0Integer
SYSLOG_VMWARE_PORTVMware syslog port (0 to disable)0Integer

Parser Settings (parser.yaml)

Message parsing engine settings. RULE_ERROR_LIMIT controls when a parser rule that keeps raising runtime errors is disabled automatically; see Lua Rules for the behavior and recovery steps.

SettingDescriptionDefaultRange
PARSER_WORKERSNumber of worker threads used to parse messagesHalf the CPU count, between 2 and 10Integer (max 50)
RULE_ERROR_LIMITProcessing errors in the last hour that disable a rule5Positive integer
MAX_PROCESSING_PACKSMaximum number of event packs processed simultaneously (advanced)5Positive integer
USE_HYPERSCANUse Hyperscan for regex matching (advanced)truetrue, false

SNMP Trap Settings (snmptrapd.yaml)

SettingDescriptionDefaultRange
SNMPTRAPD_ENABLEDEnable SNMP trap daemon moduleFalseTrue, False
SNMPTRAPD_FORMATMessage field format (see snmptrapd(8))See below-
SNMPTRAPD_PROGRAMProgram field value for SNMP trap eventsSNMPTrap-
SNMPTRAPD_FACILITYFacility field value for SNMP trap eventsLOCAL0-
SNMPTRAPD_SEVERITYSeverity field value for SNMP trap eventsINFO-
SNMPTRAPD_PORTSNMP trap daemon port162-

Additional Configuration Files

Other important configuration files include:

  • storage.yaml: Event storage, deduplication, and archiving settings
  • logger.yaml: Logging levels for different components
  • forwarder.yaml: Event forwarding to external systems
  • sec.yaml: Simple Event Correlator (SEC) integration
  • front.yaml: Nginx frontend proxy configuration (HTTP/HTTPS ports)
  • ldap.yaml: LDAP/Active Directory integration (supports multiple instances)
  • ai.yaml: AI/ML feature settings
  • httpreceiver.yaml: HTTP event receiver configuration
  • influxdb.yaml: InfluxDB integration settings
  • license.yaml: License configuration
  • secrets.yaml: Sensitive configuration data

Configuration Management Best Practices

Multi-Instance Configuration

LogZilla supports multiple instances of certain configurations. For example, to configure a secondary LDAP server:

bash
# Configure primary LDAP server
logzilla settings update LDAP_ENABLED=true LDAP_SERVER=ldap1.company.com

# Configure secondary LDAP server
logzilla settings update --id 1 LDAP_ENABLED=true LDAP_SERVER=ldap2.company.com

This creates ldap.yaml and ldap__1.yaml files respectively.

Configuration Validation

The logzilla settings command validates all changes against predefined schemas before saving, preventing invalid configurations:

bash
# This will fail with validation error if port is invalid
logzilla settings update SMTP_PORT=invalid_port

Backup and Recovery

Before making significant configuration changes, backup the settings directory:

bash
# Create backup
cp -r /etc/logzilla/settings /etc/logzilla/settings.backup.$(date +%Y%m%d)

# Restore from backup if needed
cp -r /etc/logzilla/settings.backup.20241201 /etc/logzilla/settings
logzilla settings reload generic  # Reload as needed

Important Notes

Live Reloading vs Container Restart

A change saved in the web interface or with logzilla settings update, or announced with logzilla settings reload <group> after a direct file edit, is published to the watcher, which applies it by settings file:

Settings fileApplied by the watcher
generic.yaml, smtp.yaml, script_server.yaml, sec.yamlGraceful reload of the API workers and a restart of the Celery worker; sec.yaml also reloads the SEC instances
django_login.yaml, ldap.yamlGraceful reload of the API workers
syslogng.yaml, application_ports.yamlReload of the syslog-ng configuration; the current dedicated ports are also handed to the running parser module
front.yamlRestart of the front proxy, which briefly interrupts the web interface, and reload of the syslog-ng configuration
httpreceiver.yamlGraceful reload of the HTTP receiver

The parser, storage, and query modules read parser.yaml, storage.yaml, sphinx.yaml, and querymodule.yaml when their container starts, so a change to those files takes effect after logzilla restart -c <module> (Method 3 under Applying Changes). Logging levels (logger.yaml) are read when a container starts as well and take effect after logzilla restart; SNMP trap settings (snmptrapd.yaml) take effect after logzilla restart -c snmptrapd.

Configuration File Access

Inspect settings with the command line

The logzilla settings list command prints the current values for a specific configuration group:

bash
logzilla settings list generic
logzilla settings list smtp

Inspect the configuration file directly

Administrators with root access can read the raw YAML file on disk:

bash
cat /etc/logzilla/settings/generic.yaml

SNMP Trap Format Default

The default SNMPTRAPD_FORMAT setting is:

text
Enterprise OID: %N, Trap Type: %W, Trap Sub-Type: %q,
Uptime: %T, Description: %W,
PDU Attribute/Value Pair Array: %v

Legacy Configuration Command

Deprecated: The logzilla config command is deprecated and should not be used. It lacks support for multi-instance configurations and validation. Use logzilla settings instead.

Server Settings | LogZilla Documentation