JournalD Connector
7 minute read
Overview
The JournalD connector collects and streams logs from the systemd journal on Linux systems. Systemd journal provides centralized storage of system logs, service messages, kernel events, and audit records in structured binary format with rich metadata. Content streams into Edge Delta Pipelines for analysis by AI teammates through the Edge Delta MCP connector.
The connector reads journal entries directly using journalctl with flexible filtering based on systemd units, journal fields, priority levels, and boot sessions. It supports real-time streaming and historical log access.
When you add this streaming connector, it appears as a JournalD source in your selected pipeline. AI teammates access this data by querying the Edge Delta backend with the Edge Delta MCP connector.
Platform: Linux only (requires systemd)
Add the JournalD Connector
To add the JournalD connector, you configure filtering options and deploy to Linux systems running Edge Delta agents with systemd.
Prerequisites
Before configuring the connector, ensure you have:
- Linux system with systemd and systemd-journald service running
- Edge Delta agent installed with read access to journal files
- Appropriate permissions (systemd-journal group membership or root access)
- Read access to
/var/log/journal/
(persistent) or/run/log/journal/
(volatile) - Identified systemd units or journal fields to monitor
Configuration Steps
- Navigate to AI Team > Connectors in the Edge Delta application
- Find the JournalD connector in Streaming Connectors
- Click the connector card
- Configure filtering options:
- Journald Include Matches - Journal fields to include
- Journald Exclude Matches - Journal fields to exclude
- Include Units - Systemd units to include
- Exclude Units - Systemd units to exclude
- Optionally configure Advanced Settings
- Select a target environment (Linux only)
- Click Save
The connector deploys to Linux agents and begins collecting journal logs.

Configuration Options
Connector Name
Name to identify this JournalD connector instance.
Journald Include Matches
Process only logs that meet specified match conditions; ignore all others. Filter by journal field using format FIELD=value
with multiple fields comma-separated.
Format: FIELD=value,FIELD2=value2
Examples:
SYSLOG_IDENTIFIER=sshd
- SSH service logs only_TRANSPORT=kernel
- Kernel messages onlyPRIORITY=3
- Error priority onlyCONTAINER_NAME=webapp
- Specific container logs
Common Journal Fields:
SYSLOG_IDENTIFIER
- Service or program name_TRANSPORT
- Log transport (kernel, syslog, journal)PRIORITY
- Syslog priority (0-7)_SYSTEMD_UNIT
- Systemd unit nameCONTAINER_NAME
- Container name
Journald Exclude Matches
Omit logs that meet specified match conditions; process all others. Same format as Include Matches.
Examples:
PRIORITY=6,PRIORITY=7
- Exclude info and debug messages_TRANSPORT=audit
- Exclude audit subsystem logsSYSLOG_IDENTIFIER=systemd-resolved
- Exclude DNS resolver logs
Include Units
Include logs from matching systemd units; exclude all others. Convenient way to focus on specific services.
Format: Comma-separated list of systemd unit names, supports wildcards
Examples:
sshd.service
- Monitor SSH service onlynginx.service,postgresql.service
- Web and database servicesdocker.service
- Docker daemonuser@*.service
- All user services
Exclude Units
Exclude logs from matching systemd units; include all others. Useful for filtering out noisy services.
Examples:
systemd-resolved.service
- Exclude DNS resolver logscron.service,systemd-timesyncd.service
- Exclude cron and time sync
Advanced Settings
Current Boot Only
Include only entries from the current boot session. Useful for real-time monitoring vs. historical analysis.
Default: Disabled (collect all historical logs)
When to Enable:
- Real-time service monitoring
- Focus on current system state
- Reduce data volume
When to Disable:
- Historical troubleshooting
- Forensic analysis
- Investigating issues across boots
Journalctl Path
Full executable path to journalctl binary if not in standard system PATH.
Default: System journalctl from PATH (/usr/bin/journalctl
or /bin/journalctl
)
Examples:
/usr/bin/journalctl
- Standard location/opt/custom/bin/journalctl
- Custom installation
Journal Directory
Read journal files from alternate directory instead of default system location.
Default: /var/log/journal/
(persistent) or /run/log/journal/
(volatile)
Examples:
/mnt/archive/journal
- Archived journal location/mnt/remote/system-journal
- Remotely mounted journal/var/log/custom-journal
- Custom journal directory
Use Cases:
- Analyzing archived journals
- Reading from mounted remote systems
- Accessing namespace-specific journals
Journal Namespace
Namespace for journal access. Systemd supports namespaces to isolate logs from different applications or containers.
Default: System namespace
Examples:
container
- Container-specific namespacemyapp
- Custom application namespace
Extra Args
Additional command-line arguments passed directly to journalctl for advanced filtering.
Format: Space-separated journalctl arguments
Examples:
-k
- Kernel messages only (equivalent to--dmesg
)-f
- Follow mode for real-time streaming--no-pager --no-tail
- Full output without truncation-o json-pretty
- Pretty-printed JSON output--since "2024-10-01 00:00:00"
- Logs since specific timestamp
Metadata Level
This option is used to define which detected resources and attributes to add to each data item as it is ingested by Edge Delta. You can select:
- Required Only: This option includes the minimum required resources and attributes for Edge Delta to operate.
- Default: This option includes the required resources and attributes plus those selected by Edge Delta
- High: This option includes the required resources and attributes along with a larger selection of common optional fields.
- Custom: With this option selected, you can choose which attributes and resources to include. The required fields are selected by default and can’t be unchecked.
Based on your selection in the GUI, the source_metadata
YAML is populated as two dictionaries (resource_attributes
and attributes
) with Boolean values.
See Choose Data Item Metadata for more information on selecting metadata.
JournalD-specific metadata included:
host.id
- Host identifierservice.namespace
- Service namespacesystemd.transport
- Transport typeprocess.name
- Process name
Rate Limit
Rate limit configuration to control journal data ingestion volume and manage processing capacity.
Target Environments
Select the Edge Delta pipeline (environment) where you want to deploy this connector. Linux systems only - the connector will only deploy to Linux agents with systemd.
How to Use the JournalD Connector
The JournalD connector integrates seamlessly with AI Team, enabling analysis of systemd journal logs from Linux infrastructure. AI teammates automatically leverage the ingested data based on the queries they receive and the context of the conversation.
Use Case: Service Error Monitoring
Monitor systemd service errors and warnings to catch failures before they impact users. Configure the connector to include only error and warning priority levels (3 and 4) for real-time detection. AI teammates detect patterns, correlate failures across services, and provide actionable recommendations. When combined with PagerDuty alerts, teammates automatically query recent service errors during incident investigation to identify which services failed and in what sequence.
Configuration: Include Matches: PRIORITY=3,PRIORITY=4
, Current Boot Only: Enabled
Use Case: SSH Authentication Monitoring
Track SSH authentication activity to detect brute force attacks, unauthorized access attempts, and security breaches. Filter for sshd service logs to capture all authentication events. AI teammates identify attack patterns, suspicious source IPs, and targeted user accounts. This is valuable when investigating security incidents—teammates can correlate failed login attempts with successful breaches and identify compromised accounts.
Configuration: Include Matches: SYSLOG_IDENTIFIER=sshd
, Current Boot Only: Disabled
for audit trail
Use Case: Kernel Event Analysis
Monitor kernel-level events to detect hardware failures, driver issues, and system-level problems before outages. Filter for kernel transport messages to focus on system events. AI teammates identify critical hardware events, out-of-memory conditions, and network interface issues. When combined with Jira integration, teammates can automatically document hardware problems by querying kernel logs and creating tickets with diagnostic details.
Configuration: Include Matches: _TRANSPORT=kernel
, Current Boot Only: Enabled
Troubleshooting
Failed to open journal errors: Add Edge Delta user to systemd-journal group (sudo usermod -a -G systemd-journal edgedelta
). Restart Edge Delta service. Verify with groups edgedelta
.
No journal logs appearing: Verify systemd-journald is running (systemctl status systemd-journald
). Test with journalctl -n 10
. Check filters aren’t too restrictive. Review Edge Delta agent logs for errors.
Permission denied on audit logs: Audit logs require elevated privileges. Either grant appropriate Linux capabilities, use audit group membership, or exclude audit logs with Exclude Matches: _TRANSPORT=audit
.
Journal directory not found: Check if persistent journal enabled (ls /var/log/journal/
). If volatile mode, update Journal Directory to /run/log/journal/
. Enable persistent with sudo mkdir -p /var/log/journal/
and restart systemd-journald.
High memory usage: Limit collection with unit or identifier filters. Use priority filtering (PRIORITY=3,PRIORITY=4
). Enable Current Boot Only. Configure rate limiting. Exclude noisy services.
Filters not working: Journal fields are case-sensitive. Test with journalctl first (journalctl SYSLOG_IDENTIFIER=sshd -n 10
). Multiple Include Matches fields are OR’ed, not AND’ed. List available fields with journalctl -o json | jq 'keys'
.
Duplicate logs (journal + syslog): Choose one logging source. Use JournalD connector for systemd systems to get structured metadata. Use Syslog connector for non-systemd systems. If running both, implement careful filtering to separate collection scope.
Large journal disk usage: Configure limits in /etc/systemd/journald.conf
: SystemMaxUse (500M-1GB), SystemMaxFileSize (100M-200M), MaxRetentionSec (7day-30day). Restart systemd-journald. Vacuum old files with journalctl --vacuum-time=7d
.
Next Steps
- Learn about creating custom teammates that can use journal data
- Explore the Edge Delta MCP connector for querying systemd logs
For additional help, visit AI Team Support.