Skip to main content

Netdata Logging

note

This document describes how Netdata generates its own logs

Netdata provides enterprise-grade structured logging with full observability of all system events. The logging system is designed to be:

  • Structured - All logs include rich contextual fields for filtering and analysis
  • Performant - Minimal overhead with built-in flood protection
  • Flexible - Multiple output formats and destinations
  • Secure - Integrated with platform-native security features
  • Standards-compliant - Compatible with syslog, journald, ETW, and JSON standards

Log sources

Netdata supports the following log sources:

  1. daemon - Core service lifecycle events, startup/shutdown, configuration changes, and fatal errors
  2. collector - Data collection events from both internal and external collectors, including errors and warnings
  3. access - Complete API access logs with request/response details, useful for security auditing
  4. health - Alert state transitions, notifications, and health monitoring events

Each source can be independently configured with different outputs, formats, and verbosity levels.

Log outputs

For each log source, Netdata supports the following output methods:

OutputPlatformDescriptionUse Case
offAllDisable this log sourceReduce log volume for specific sources
journalLinuxsystemd-journal with full structured fieldsRecommended for Linux - Native integration with journald
etwWindowsEvent Tracing for Windows with structured dataRecommended for Windows - Rich field support in Event Viewer
welWindowsWindows Event Log with basic fieldsFallback when ETW is unavailable
syslogUnixTraditional syslog protocolLegacy system compatibility
systemAllPlatform's default stderr/stdoutContainer environments
stdoutAllDirect to Netdata's stdoutDebugging, containers
stderrAllDirect to Netdata's stderrDebugging, containers
filenameAllWrite to specified file pathCustom log management

On Linux, when systemd-journal is available, the default is journal for daemon and collector and filename for the rest. To decide if systemd-journal is available, Netdata checks:

  1. stderr is connected to systemd-journald
  2. /run/systemd/journal/socket exists
  3. /host/run/systemd/journal/socket exists (/host is configurable in containers)

If any of the above is detected, Netdata will select journal for daemon and collector sources.

On Windows, the default is etw and if that is not available it falls back to wel. The availability of etw is decided at compile time.

Log formats

Netdata supports multiple log formats to integrate with different systems:

FormatDescriptionExampleBest For
journalNative systemd-journal format with all fields preservedBinary format with 65+ structured fieldsLinux systems with journald
etwEvent Tracing for Windows structured formatStructured events in Windows Event ViewerWindows monitoring and analysis
welWindows Event Log format with indexed fieldsString array format in Event ViewerWindows legacy compatibility
jsonStructured JSON with all fields as key-value pairs{"time":1234567890000000,"level":"info","msg":"Started"}Modern log aggregation systems
logfmtSpace-separated key=value pairstime="2024-01-15T10:30:00.123Z" level=info msg="Started"Traditional log processors

The format is automatically selected based on the output destination, but can be manually specified in the configuration.

Field Transformations (Annotators)

The LOGFMT, ETW, and WEL formats apply special transformations (annotators) to certain fields for better human readability:

FieldRaw ValueTransformationExample
timeUnix epoch microsecondsRFC3339 with microsecond precision1737302400000000"2025-01-19T16:00:00.000Z"
alert_notification_timestampUnix epoch microsecondsRFC3339 with microsecond precision1737302400000000"2025-01-19T16:00:00.000Z"
levelPriority number (0-7)Text representation6info
errnoError numberNumber + error string22, No such file or directory
winerrorWindows error codeNumber + error message55, Access is denied

Formats using these transformations:

  • LOGFMT - All annotated fields are transformed for readability
  • ETW (Event Tracing for Windows) - Uses the same transformations
  • WEL (Windows Event Logs) - Uses the same transformations

Formats NOT using these transformations:

  • JSON - Outputs raw values for all fields (no transformations applied)

Log levels

Each time Netdata logs, it assigns a priority to the log. It can be one of this (in order of importance):

LevelDescription
emergencya fatal condition, Netdata will most likely exit immediately after.
alerta very important issue that may affect how Netdata operates.
criticala very important issue the user should know which, Netdata thinks it can survive.
erroran error condition indicating that Netdata is trying to do something, but it fails.
warningsomething unexpected has happened that may or may not affect the operation of Netdata.
noticesomething that does not affect the operation of Netdata, but the user should notice.
infothe default log level about information the user should know.
debugthese are more verbose logs that can be ignored.

For etw these are mapped to Verbose, Informational, Warning, Error and Critical. For wel these are mapped to Informational, Warning, Error.

Logs Configuration

Configuration is done in the [logs] section of netdata.conf:

[logs]
# Global settings
logs to trigger flood protection = 1000 # Number of logs to trigger protection
logs flood protection period = 1m # Time window for flood protection
facility = daemon # Syslog facility (when using syslog)
level = info # Minimum log level (daemon/collector only)

# Per-source configuration
daemon = journal # Daemon logs to systemd journal
collector = journal # Collector logs to systemd journal
access = /var/log/netdata/access.log # Access logs to file
health = /var/log/netdata/health.log # Health logs to file

Key configuration options:

  • Flood Protection: Prevents log storms from overwhelming the system. When triggered, logs are suppressed with a summary message.
  • Log Level: Controls verbosity. Only messages at or above this level are logged.
  • Facility: Used for syslog categorization (local0-local7, daemon, user, etc.)
  • Per-Source Control: Each source can have independent settings for maximum flexibility.

Advanced per-source configuration

Each source (daemon, collector, access, health) accepts this syntax:

source = {FORMAT},level={LEVEL},protection={LOGS}/{PERIOD}@{OUTPUT}

Where:

  • {FORMAT} - One of the log formats (json, logfmt, etc.)
  • {LEVEL} - Minimum log level to be logged
  • {LOGS} - Number of logs to trigger flood protection for this source
  • {PERIOD} - Time period for flood protection (e.g., 1m, 30s, 5m)
  • {OUTPUT} - One of the log outputs (journal, filename, etc.)

All parameters except {OUTPUT} are optional. The @ can be omitted if only specifying output.

Examples:

# JSON format to file with debug level
daemon = json,level=debug@/var/log/netdata/daemon.json

# High-volume access logs with aggressive flood protection
access = logfmt,protection=10000/5m@/var/log/netdata/access.log

# Critical-only health alerts to syslog
health = level=critical@syslog

# Simple output specification
collector = journal

Logs rotation

Netdata includes automatic log rotation support:

  1. Built-in logrotate configuration at /etc/logrotate.d/netdata
  2. Signal handling: Send SIGHUP to Netdata to reopen all log files
  3. Automatic handling for journal and ETW outputs (managed by the OS)

Example logrotate configuration:

/var/log/netdata/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
postrotate
killall -USR2 netdata 2>/dev/null || true
endscript
}

Log Fields

All fields exposed by Netdata
journallogfmt and jsonetwwelDescription
_SOURCE_REALTIME_TIMESTAMPtimeTimestamp1the timestamp of the event (logfmt: RFC3339, json: Unix epoch microseconds)
SYSLOG_IDENTIFIERcommProgram2the program logging the event
ND_LOG_SOURCEsourceNetdataLogSource3one of the log sources
PRIORITY
numeric
level
text
Level
text
4one of the log levels
ERRNOerrnoUnixErrno5the numeric value of errno
-winerrorWindowsError6Windows GetLastError() code
INVOCATION_ID-InvocationID7a unique UUID of the Netdata session, reset on every Netdata restart, inherited by systemd when available
CODE_LINE-CodeLine8the line number of of the source code logging this event
CODE_FILE-CodeFile9the filename of the source code logging this event
CODE_FUNCTION-CodeFunction10the function name of the source code logging this event
TIDtidThreadID11the thread id of the thread logging this event
THREAD_TAGthreadThreadName12the name of the thread logging this event
MESSAGE_IDmsg_idMessageID13see message IDs
ND_MODULEmoduleModule14the Netdata module logging this event
ND_NIDL_NODEnodeNode15the hostname of the node the event is related to
ND_NIDL_INSTANCEinstanceInstance16the instance of the node the event is related to
ND_NIDL_CONTEXTcontextContext17the context the event is related to (this is usually the chart name, as shown on netdata dashboards
ND_NIDL_DIMENSIONdimensionDimension18the dimension the event is related to
ND_SRC_TRANSPORTsrc_transportSourceTransport19when the event happened during a request, this is the request transport
ND_ACCOUNT_IDaccount_idAccountID20Netdata Cloud account identifier
ND_USER_NAMEuser_nameUserName21username making the request
ND_USER_ROLEuser_roleUserRole22user's role in the space
ND_USER_ACCESSuser_accessUserAccess23user's access permissions
ND_SRC_IPsrc_ipSourceIP24when the event happened during an inbound request, this is the IP the request came from
ND_SRC_PORTsrc_portSourcePort25when the event happened during an inbound request, this is the port the request came from
ND_SRC_FORWARDED_HOSTsrc_forwarded_hostSourceForwardedHost26the contents of the HTTP header X-Forwarded-Host
ND_SRC_FORWARDED_FORsrc_forwarded_forSourceForwardedFor27the contents of the HTTP header X-Forwarded-For
ND_SRC_CAPABILITIESsrc_capabilitiesSourceCapabilities28when the request came from a child, this is the communication capabilities of the child
ND_DST_TRANSPORTdst_transportDestinationTransport29when the event happened during an outbound request, this is the outbound request transport
ND_DST_IPdst_ipDestinationIP30when the event happened during an outbound request, this is the IP the request destination
ND_DST_PORTdst_portDestinationPort31when the event happened during an outbound request, this is the port the request destination
ND_DST_CAPABILITIESdst_capabilitiesDestinationCapabilities32when the request goes to a parent, this is the communication capabilities of the parent
ND_REQUEST_METHODreq_methodRequestMethod33when the event happened during an inbound request, this is the method the request was received
ND_RESPONSE_CODEcodeResponseCode34when responding to a request, this this the response code
ND_CONNECTION_IDconnConnectionID35when there is a connection id for an inbound connection, this is the connection id
ND_TRANSACTION_IDtransactionTransactionID36the transaction id (UUID) of all API requests
ND_RESPONSE_SENT_BYTESsent_bytesResponseSentBytes37the bytes we sent to API responses
ND_RESPONSE_SIZE_BYTESsize_bytesResponseSizeBytes38the uncompressed bytes of the API responses
ND_RESPONSE_PREP_TIME_USECprep_utResponsePreparationTimeUsec39the time needed to prepare a response
ND_RESPONSE_SENT_TIME_USECsent_utResponseSentTimeUsec40the time needed to send a response
ND_RESPONSE_TOTAL_TIME_USECtotal_utResponseTotalTimeUsec41the total time needed to complete a response
ND_ALERT_IDalert_idAlertID42the alert id this event is related to
ND_ALERT_EVENT_IDalert_event_idAlertEventID44a sequential number of the alert transition (per host)
ND_ALERT_UNIQUE_IDalert_unique_idAlertUniqueID43a sequential number of the alert transition (per alert)
ND_ALERT_TRANSITION_IDalert_transition_idAlertTransitionID45the unique UUID of this alert transition
ND_ALERT_CONFIGalert_configAlertConfig46the alert configuration hash (UUID)
ND_ALERT_NAMEalertAlertName47the alert name
ND_ALERT_CLASSalert_classAlertClass48the alert classification
ND_ALERT_COMPONENTalert_componentAlertComponent49the alert component
ND_ALERT_TYPEalert_typeAlertType50the alert type
ND_ALERT_EXECalert_execAlertExec51the alert notification program
ND_ALERT_RECIPIENTalert_recipientAlertRecipient52the alert recipient(s)
ND_ALERT_VALUEalert_valueAlertValue54the current alert value
ND_ALERT_VALUE_OLDalert_value_oldAlertOldValue55the previous alert value
ND_ALERT_STATUSalert_statusAlertStatus56the current alert status
ND_ALERT_STATUS_OLDalert_status_oldAlertOldStatus57the previous alert status
ND_ALERT_SOURCEalert_sourceAlertSource58the source of the alert
ND_ALERT_UNITSalert_unitsAlertUnits59the units of the alert
ND_ALERT_SUMMARYalert_summaryAlertSummary60the summary text of the alert
ND_ALERT_INFOalert_infoAlertInfo61the info text of the alert
ND_ALERT_DURATIONalert_durationAlertDuration53the duration the alert was in its previous state
ND_ALERT_NOTIFICATION_TIMESTAMP_USECalert_notification_timestampAlertNotificationTimeUsec62the timestamp the notification delivery is scheduled
ND_REQUESTrequestRequest63the full request during which the event happened
MESSAGEmsgMessage64the event message
ND_STACK_TRACEstack_traceStackTrace65stack trace at time of logging (on fatal errors)

For wel (Windows Event Logs), all logs have an array of 64 fields strings, and their index number provides their meaning. For etw (Event Tracing for Windows), Netdata logs in a structured way, and field names are available.

Message IDs

Netdata assigns unique UUIDs to specific event types for easy filtering and correlation:

Message IDEvent TypeDescription
ed4cdb8f-1beb-4ad3-b57c-b3cae2d162faChild ConnectionA Netdata child connects to this parent
6e2e3839-0676-4896-8b64-6045dbf28d66Parent ConnectionThis Netdata connects to a parent
9ce0cb58-ab8b-44df-82c4-bf1ad9ee22deAlert TransitionAlert changes state (CLEAR/WARNING/CRITICAL)
6db0018e-83e3-4320-ae2a-659d78019fb7Alert NotificationNotification sent to external system
1e6061a9-fbd4-4501-b3cc-c368119f2b69Service StartNetdata service started
02f47d35-0af5-4491-97bf-7a95b605a468Service StopNetdata service stopped
23e93dfc-cbf6-4e11-aac8-58b9410d8a82Fatal ErrorCritical error requiring attention
acb33cb9-5778-476b-aac7-02eb7e4e151dACLK ConnectionNetdata Cloud (ACLK) connection state changed
8daf5ba3-3a74-078b-6092-50db1e951f3Sensor State ChangeHardware sensor state transition
ec87a561-20d5-431b-ace5-1e2fb8bba243Log Flood ProtectionLog flooding detected and suppressed
d1f59606-dd4d-41e3-b217-a0cfcae8e632Extreme CardinalityMetric cardinality exceeds safe limits
4fdf4081-6c12-4623-a032-b7fe73beacb8User ConfigurationDynamic configuration changed by user

You can view these events using the Netdata systemd-journal.plugin at the MESSAGE_ID filter, or using journalctl like this:

# Query specific event types
journalctl MESSAGE_ID=ed4cdb8f-1beb-4ad3-b57c-b3cae2d162fa # Child connections
journalctl MESSAGE_ID=9ce0cb58-ab8b-44df-82c4-bf1ad9ee22de # Alert transitions

# Query multiple event types
journalctl MESSAGE_ID=9ce0cb58-ab8b-44df-82c4-bf1ad9ee22de + MESSAGE_ID=6db0018e-83e3-4320-ae2a-659d78019fb7

# Query with time range
journalctl MESSAGE_ID=9ce0cb58-ab8b-44df-82c4-bf1ad9ee22de --since "1 hour ago"

Platform-Specific Log Access

Linux: Using journalctl to query Netdata logs

The Netdata service's processes execute within the netdata journal namespace. Common queries:

# Real-time log monitoring
journalctl -u netdata --namespace=netdata -f

# Logs since last restart
journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata

# All logs, newest first
journalctl -u netdata --namespace=netdata -r

# Export logs as JSON for processing
journalctl -u netdata --namespace=netdata -o json --since "1 hour ago" > netdata-logs.json

# Filter by severity
journalctl -u netdata --namespace=netdata -p warning # Warnings and above

# Complex queries with field filters
journalctl -u netdata --namespace=netdata \
ND_ALERT_STATUS=CRITICAL \
ND_LOG_SOURCE=health \
--since "2024-01-01"

Windows: Using Event Viewer to View Netdata Logs

The Netdata service on Windows systems automatically logs events to the Windows Event Viewer.

Accessing logs via GUI:

  1. Click the Start menu
  2. Type Event Viewer and select Run as Administrator
  3. In the Event Viewer window, expand Applications and Services Logs
  4. Click Netdata

The Netdata section contains all available log categories listed above.

Accessing logs via PowerShell:

# Get recent Netdata events
Get-WinEvent -LogName "Netdata/Health" -MaxEvents 100

# Filter by severity
Get-WinEvent -FilterHashtable @{ LogName = "Netdata/Health"; Level = 2 } # Errors only

# Export to CSV
Get-WinEvent -LogName "Netdata/Health" | Export-Csv netdata-logs.csv

# Real-time monitoring
Get-WinEvent -LogName "Netdata/Health" -MaxEvents 1 |
ForEach-Object { $_ } |
Out-GridView -Title "Netdata Health Events"

Using Event Tracing for Windows (ETW)

ETW requires the publisher Netdata to be registered. Our Windows installer does this automatically.

Registering the publisher is done via a manifest (%SystemRoot%\System32\wevt_netdata_manifest.xml) and its messages resources DLL (%SystemRoot%\System32\wevt_netdata.dll).

If needed, the publisher can be registered and unregistered manually using these commands:

REM register the Netdata publisher
wevtutil im "%SystemRoot%\System32\wevt_netdata_manifest.xml" "/mf:%SystemRoot%\System32\wevt_netdata.dll" "/rf:%SystemRoot%\System32\wevt_netdata.dll"

REM unregister the Netdata publisher
wevtutil um "%SystemRoot%\System32\wevt_netdata_manifest.xml"

The structure of the logs are as follows:

  • Publisher Netdata
    • Channel Netdata/Daemon: general messages about the Netdata service
    • Channel Netdata/Collector: general messages about Netdata external plugins
    • Channel Netdata/Health: alert transitions and general messages generated by Netdata's health engine
    • Channel Netdata/Access: all accesses to Netdata APIs
    • Channel Netdata/Aclk: for Cloud connectivity tracing (disabled by default)

Retention can be configured per Channel via the Event Viewer. Netdata does not set a default, so the system default is used.

IMPORTANT
Event Tracing for Windows (ETW) does not allow logging the percentage character %. The % followed by a number, is recursively used for fields expansion and ETW has not provided any way to escape the character for preventing further expansion.


To work around this limitation, Netdata replaces all % which are followed by a number, with (the Unicode character care of). Visually, they look similar, but when copying IPv6 addresses or URLs from the logs, you have to be careful to manually replace with % before using them.

Using Windows Event Logs (WEL)

WEL has a different logs structure and unfortunately WEL and ETW need to use different names if they are to be used concurrently.

For WEL, Netdata logs as follows:

  • Channel NetdataWEL (unfortunately Netdata cannot be used, it conflicts with the ETW Publisher name)
    • Publisher NetdataDaemon: general messages about the Netdata service
    • Publisher NetdataCollector: general messages about Netdata external plugins
    • Publisher NetdataHealth: alert transitions and general messages generated by Netdata's health engine
    • Publisher NetdataAccess: all accesses to Netdata APIs
    • Publisher NetdataAclk: for Cloud connectivity tracing (disabled by default)

Publishers must have unique names system-wide, so we had to prefix them with Netdata.

Retention can be configured per Publisher via the Event Viewer or the Registry. Netdata sets by default 20MiB for all of them, except NetdataAclk (5MiB) and NetdataAccess (35MiB), for a total of 100MiB.

For WEL some registry entries are needed. Netdata automatically takes care of them when it starts.

WEL does not have the problem ETW has with the percent character %, so Netdata logs it as-is.

Differences between ETW and WEL

There are key differences between ETW and WEL.

Publishers and Providers

Publishers are collections of ETW Providers. A Publisher is implied by a manifest file, each of which is considered a Publisher, and each manifest file can define multiple Providers in it. Other than that there is no entity related to Publishers in the system.

Publishers are not defined for WEL.

Providers are the applications or modules logging. Provider names must be unique across the system, for ETW and WEL together.

To define a Provider:

  • ETW requires a Publisher manifest coupled with resources DLLs and must be registered via wevtutil (handled by the Netdata Windows installer automatically).
  • WEL requires some registry entries and a message resources DLL (handled by Netdata automatically on startup).

The Provider appears as Source in the Event Viewer, for both WEL and ETW.

Channels

  • Channels for WEL are collections of WEL Providers, (each WEL Provider is a single Stream of logs).
  • Channels for ETW slice the logs of each Provider into multiple Streams.

WEL Channels cannot have the same name as ETW Providers. This is why Netdata's ETW provider is called Netdata, and WEL channel is called NetdataWEL.

Despite the fact that ETW Publishers and WEL Channels are both collections of Providers, they are not similar. In ETW a Publisher is a collection on the publisher's Providers, but in WEL a Channel may include independent WEL Providers (e.g. the "Applications" Channel). Additionally, WEL Channels cannot include ETW Providers.

Log Retention

Retention is always defined per Stream.

  • Retention in ETW is defined per ETW Channel (ETW Provider Stream).
  • Retention in WEL is defined per WEL Provider (each WEL Provider is a single Stream).

Messages Formatting

  • ETW supports recursive fields expansion, and therefore %N in fields is expanded recursively (or replaced with an error message if expansion fails). Netdata replaces %N with ℅N to stop recursive expansion (since %N cannot be logged otherwise).
  • WEL performs a single field expansion, and therefore the % character in fields is never expanded.

Usability

  • ETW names all the fields and allows multiple datatypes per field, enabling log consumers to know what each field means and its datatype.
  • WEL uses a simple string table for fields, and consumers need to map these string fields based on their index.

SIEM Integration

Netdata's structured logging system is designed for seamless integration with all major Security Information and Event Management (SIEM) platforms. Logs are emitted in standards-compliant formats — systemd-journal, JSON, logfmt, syslog (RFC5424), Windows Event Log (WEL), and Event Tracing for Windows (ETW).

This guarantees compatibility with SIEMs including (but not limited to):
Splunk, Elastic Security (ELK Stack / OpenSearch), IBM QRadar, Microsoft Sentinel, Wazuh, CrowdStrike Falcon LogScale, Datadog Security Monitoring, Sumo Logic, LogRhythm, Securonix, ArcSight, Graylog, Chronicle SIEM, AlienVault OSSIM, Devo, Exabeam, Rapid7 InsightIDR, McAfee Enterprise Security Manager (ESM), Fortinet FortiSIEM, SolarWinds SEM, AT&T Cybersecurity USM, RSA NetWitness.

Supported Log Formats and SIEM Compatibility

Format / OutputDescriptionCommonly Used By
systemd-journalNative Linux logging with structured fields, tamper-proof with FSSSplunk (journald input), Elastic Filebeat/Journalbeat, Wazuh, QRadar, Sentinel
ETW (Event Tracing)Rich structured events in Event Viewer (Windows native)Splunk UF (Win), Sentinel, QRadar, LogRhythm, ArcSight, Elastic Winlogbeat
WEL (Windows Event Log)Legacy Windows Event Log array-based fieldsAll Windows SIEM agents (Splunk UF, Sentinel, QRadar, Wazuh, Elastic Winlogbeat)
JSONStructured JSON objects with key-value pairsElastic/Logstash, Splunk (indexed extractions), Datadog, Sumo Logic, Graylog
logfmtHuman-readable key=value logsTraditional syslog pipelines, Graylog, SolarWinds SEM, legacy SIEM integrations
syslog (RFC5424)Standard syslog protocolQRadar, ArcSight, LogRhythm, FortiSIEM, AlienVault OSSIM, RSA NetWitness, Devo

Key Integration Features

  1. Structured Logs – All Netdata events contain contextual fields, no regex parsing required.
  2. Message IDs (UUIDs) – Unique identifiers for alert transitions, service lifecycle events, configuration changes, and network connections. Enables precise rule building without pattern matching.
  3. Multiple Output Options – Select the best integration path for your SIEM: journald (Linux), ETW/WEL (Windows), JSON/logfmt (cross-platform), syslog (legacy).
  4. Security-Relevant Events – Alert transitions, anomalous resource use, configuration changes, service errors, API access attempts.
  5. Compliance Support – Journald Forward Secure Sealing (FSS) and Windows Event Log immutability controls support PCI DSS, ISO 27001, SOC 2, HIPAA, and other frameworks.

If you want zero-configuration ingestion, choose systemd-journal on Linux and ETW on Windows.
JSON/logfmt are universally portable but require custom field mapping inside your SIEM.
Syslog is provided for legacy collectors.

PlatformBest OutputWhy
Linuxsystemd-journalZero-config ingestion, structured fields, tamper-proofing with FSS
WindowsETWStructured named fields in Event Viewer, native SIEM support
Cross-PlatformJSONUniversally portable, works everywhere, requires mapping rules
Legacy UnixsyslogCompatibility with traditional SIEM collectors (RFC5424)

Integration Workflow

  1. Select log format appropriate to your environment.
  2. Enable relevant sources (health for alerts, access for audit trails, daemon for lifecycle events).
  3. Configure SIEM collection:
    • Journald → SIEM agent (Splunk UF, Filebeat, Wazuh agent, QRadar DSM)
    • ETW/WEL → Windows Event Forwarding, Winlogbeat, Splunk UF, Sentinel Connector
    • JSON/logfmt → Filebeat, Logstash, Fluent Bit, Graylog input, Sumo Logic agent
    • Syslog → Direct to SIEM collector (QRadar, ArcSight, LogRhythm, FortiSIEM)
  4. Use Message IDs to build reliable detection rules:
    • Alert storms → 9ce0cb58-ab8b-44df-82c4-bf1ad9ee22de
    • Service restarts → startup/shutdown IDs
    • Unexpected parent/child connections → connection IDs

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.