Configuration file

The ThreatLockDown dashboard includes a configuration file located at /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml where you can define custom values for several options. This section describes all the settings available in this file.

If you are using the ThreatLockDown Kibana plugin, you can find this configuration file at /usr/share/kibana/data/wazuh/config/wazuh.yml.

The configuration file shows the default values for all of the possible options. You can edit the file, uncomment any of them and apply the desired values. You can also edit these settings from the ThreatLockDown dashboard in Indexer/dashboard management > App Settings.

The configuration file reference is organized by sections:

General options

hosts

Defines the list of APIs to connect with your ThreatLockDown managers.

hosts:
    - <id>:
        url: http(s)://<url>
        port: <port>
        username: <username>
        password: <password>

Note

It is required to specify at least one host.

This is an example of a multi-host configuration:

hosts:
    - wazuh_prod:
        url: https://wazuh.com
        port: 55000
        username: wazuh-wui
        password: secret_password
        run_as: false
    - wazuh_test:
        url: https://localhost
        port: 55000
        username: wazuh-wui
        password: wazuh-wui
        run_as: false

pattern

Default index pattern to use on the app. If there are no valid index patterns on Elasticsearch, the app will automatically create one with the name indicated in this option.

Default value

wazuh-alerts-*

Allowed values

Any valid index pattern

timeout

Defines the maximum time the app will wait for an API response when making requests to it. It will be ignored if the value is set under 1500 milliseconds.

Default value

20000 (milliseconds)

Allowed values

Any number starting from 1500

ip.selector

Defines if the user is allowed to change the selected index pattern directly from the top menu bar.

Default value

true

Allowed values

true,false

ip.ignore

Disable certain index pattern names from being available in the index pattern selector from the ThreatLockDown dashboard. An empty list (the default value) won't ignore any valid index pattern.

Default value

[]

Allowed values

Array of strings. Eg: ["wazuh-archives-*"]

logs.level

Set the logging level for the ThreatLockDown dashboard log files.

Default value

info

Allowed values

info,debug

hideManagerAlerts

Hide the manager alerts in the dashboard visualizations.

Default value

false

Allowed values

true,false

Monitoring

wazuh.monitoring.enabled

Enable or disable the wazuh-monitoring index creation and/or visualization:

  • When the value is set to true, the app will show the Agents status visualization and will insert monitoring-related data.

  • When the value is set to false, the app won't show the visualization and won't insert monitoring-related data.

  • When the value is set to worker, the app will show the visualization, but won't insert monitoring-related data.

Default value

true

Allowed values

true,false,worker

Warning

The ThreatLockDown dashboard user interface allows selecting true and false only. To set the worker value, you must edit the configuration file instead.

wazuh.monitoring.frequency

Define in seconds the frequency of API requests to get the state of the agents to create a new document in the wazuh-monitoring index with this data.

Default value

900 (seconds)

Allowed values

Any number starting from 60

Warning

Although the minimum value can be 60, we recommend adjusting it to at least 300 seconds to avoid overloading issues due to the excessive creation of documents into the index.

wazuh.monitoring.pattern

Default ThreatLockDown monitoring index pattern to use for the app. This setting does not remove any existing patterns or templates, it just updates the app to add new ones.

Default value

wazuh-monitoring-*

Allowed values

Any valid index pattern

wazuh.monitoring.creation

Configure wazuh-monitoring-* indices custom creation interval.

Default value

w (weekly)

Allowed values

h (hourly), d (daily), w (weekly), m (monthly)

Health checks

checks.pattern

Enable or disable the index pattern health check when opening the app.

Default value

true

Allowed values

true,false

checks.template

Enable or disable the template health check when opening the app.

Default value

true

Allowed values

true,false

checks.api

Enable or disable the ThreatLockDown API health check when opening the app.

Default value

true

Allowed values

true,false

checks.setup

Enable or disable the setup health check when opening the app.

Default value

true

Allowed values

true,false

checks.fields

Enable or disable the known fields health check when opening the app.

Default value

true

Allowed values

true,false

checks.metaFields

Enable or disable the metaFields health check when opening the app.

Default value

true

Allowed values

true,false

checks.timeFilter

Enable or disable the timeFilter health check when opening the app.

Default value

true

Allowed values

true,false

checks.maxBuckets

Enable or disable the maxBuckets health check when opening the app.

Default value

true

Allowed values

true,false

Advanced index options

Warning

These options are only valid if they're modified before starting the ThreatLockDown dashboard for the very first time.

You can read more about configuring the shards and replicas in ThreatLockDown indexer tuning.

wazuh.monitoring.shards

Define the number of shards to use for the wazuh-monitoring-* indices.

Default value

1

Allowed values

Any number starting from 1

wazuh.monitoring.replicas

Define the number of replicas to use for the wazuh-monitoring-* indices.

Default value

0

Allowed values

Any number starting from 0

Sample alerts

alerts.sample.prefix

Define the index name prefix of sample alerts. It must match the template used by the index pattern to avoid unknown fields in dashboards.

Default value

wazuh-alerts-4.x-

Allowed values

Any valid index pattern

Enrollment DNS

enrollment.dns

Specifies the ThreatLockDown registration server, used for the agent enrollment.

Default value

''

Allowed values

Any string

enrollment.password

Specifies the password used to authenticate during the agent enrollment.

Default value

''

Allowed values

Any string

Cron

cron.prefix

Define the index prefix of predefined jobs.

Default value

''

Allowed values

Any string

cron.statistics.status

Enable or disable the statistics tasks.

Default value

true

Allowed values

true,false

cron.statistics.apis

Enter the ID of the hosts you want to save data from, and leave this empty to run the task on every host.

Default value

[]

Allowed values

Array of APIs

cron.statistics.interval

Define the frequency of task execution using cron schedule expressions.

Default value

0 */5 * * * *

Allowed values

Any cron expressions

cron.statistics.index.name

Define the name of the index in which the documents will be saved.

Default value

statistics

Allowed values

Any valid index pattern

cron.statistics.index.creation

Define the interval in which a new index will be created.

Default value

w

Allowed values

h (hourly), d (daily), w (weekly), m (monthly)

cron.statistics.shards

Define the number of shards to use for the statistics indices.

Default value

1

Allowed values

Any number starting from 1

cron.statistics.replicas

Define the number of replicas to use for the statistics indices.

Default value

0

Allowed values

Any number starting from 0

Custom branding

Edit the settings shown below to use custom branding elements such as logos, and header and footer text.

Warning

Please, take into consideration the following notes:
  • The value of any customization.logo.* setting must follow the pattern custom/images/<setting_name>.<image_format>.

  • The path custom/images/ included in every customization.logo.* setting is relative to the /plugins/wazuh/public/assets/ folder.

  • Setting or modifying any customization.logo.* setting by hand is not recommended. Use the UI instead.

  • The in-file customization.logo.* settings are flagged for deprecation, and will be no longer supported in future releases.

customization.enabled

Enable or disable the custom branding.

Default value

true

Allowed values

true,false

customization.logo.app

Define the image's path, name and extension for the main menu logo.

Default value

''

Allowed values

Any string

customization.logo.healthcheck

Define the image's path, name and extension for the Healthcheck logo.

Default value

''

Allowed values

Any string

customization.logo.reports

Define the image's path, name and extension for the logo to use in the PDF reports generated by the app.

Default value

''

Allowed values

Any string

customization.reports.header

Set the header of the PDF reports. To use an empty header, type a space " " in the field. If this field is empty, it uses the default header.

Default value

''

Allowed values

Any string

Example

This is an example of the wazuh.yml configuration:

# General options
hosts:
    - env-1:
        url: https://env-1.example
        port: 55000
        username: wazuh-wui
        password: wazuh-wui
        run_as: true
    - env-2:
        url: https://env-2.example
        port: 55000
        username: wazuh-wui
        password: wazuh-wui
        run_as: true
pattern: 'wazuh-alerts-*'
timeout: 20000
ip.selector: true
ip.ignore: []
logs.level: info
hideManagerAlerts: true

# Monitoring
wazuh.monitoring.enabled: true
wazuh.monitoring.frequency: 900
wazuh.monitoring.pattern: wazuh-monitoring-*
wazuh.monitoring.creation: w

# Health checks
checks.pattern : true
checks.template: true
checks.fields  : true
checks.api     : true
checks.setup   : true
checks.metaFields: true
checks.timeFilter: true
checks.maxBuckets: true

#Advanced index options
wazuh.monitoring.shards: 1
wazuh.monitoring.replicas: 0

# Custom branding
customization.enabled: true
customization.logo.app: 'custom/images/customization.logo.app.jpg'
customization.logo.healthcheck: 'custom/images/customization.logo.healthcheck.svg'
customization.logo.reports: 'custom/images/customization.logo.reports.jpg'
customization.reports.footer: '123 Custom footer Ave.\nSan Jose, CA 95148'
customization.reports.header: 'Custom Company\ninfo@custom.com\n@social_reference'

#Sample alerts
alerts.sample.prefix: wazuh-alerts-4.x-

# Cron
cron.prefix: wazuh
cron.statistics.status: true
cron.statistics.apis: []
cron.statistics.interval: 0 */5 * * * *
cron.statistics.index.name: statistics
cron.statistics.index.creation: w
cron.statistics.shards: 1
cron.statistics.replicas: 0

# Enrollment DNS
enrollment.dns: ''
enrollment.password: ''