Overview

Most estates already forward syslog from every Linux host to a central collector. Atatus reads those collected files and turns them into security events: SSH brute force, invalid-user enumeration, root logins, sudo misuse, user and group changes, SELinux/AppArmor denials, kernel module loads, and package changes. You install the agent on the collector only. The machines forwarding to it need nothing.
Syslog lines are translated into the same fields the Linux Audit Log integration produces, so both feeds are covered by the same detection rules. A host that ships syslog gets the same detections as one running auditd.

Requirements


Step 1: Receive syslog on the collector

Create /etc/rsyslog.d/10-atatus-central.conf:
The date-rfc3339 timestamp and %HOSTNAME% are not optional.Traditional syslog format (Mar  6 08:00:00) carries no year and no timezone. Atatus will not guess either, so events are stamped with the time the agent read them instead of when they happened, which makes one incident appear hours apart across hosts.Without %HOSTNAME% every event looks like it came from the collector, and per-host detection thresholds stop working.

On every other machine

Add to /etc/rsyslog.conf, replacing the IP with your collector:

syslog-ng equivalent


Step 2: Configure log rotation

This is what stops old logs being sent. The agent reads a file it has not seen before from the beginning, so whatever is sitting in the file when the agent first starts gets collected.
How often you rotate is the most history that can ever be sent. Rotate daily and the first read covers at most one day; rotate hourly and at most one hour.
Create /etc/logrotate.d/atatus-central:
After rotation the old file is renamed and a new empty file takes its place, so there is never old content for the agent to re-read.
Do not use copytruncate. It empties the same file instead of replacing it, and the agent re-sends the whole file on every rotation.Keep the postrotate block. Without it rsyslog keeps writing to the old renamed file and the new one stays empty. This is silent, and it looks like the agent stopped working.
Verify the configuration:

Step 3: Rotate once before enabling collection

Your file already holds days or weeks of old logs. The agent has not read it yet (it only starts once you add the configuration in Step 4), so rotating now means it opens a nearly empty file.
syslog.log should now be small, with the previous content moved aside as syslog.log.1. The agent never reads rotated files. Skip this step and the agent collects everything currently in the file on its first run, up to one full rotation period of history.

Step 4: Configure the agent

Create /etc/atatus-infra-agent/conf.d/files.d/syslog.yml:
source: linux.syslog and service: syslog must be exactly these values. They are what route the events to SIEM instead of ordinary Logs. Any other pair ships the data as application logs with no detections attached.
Point paths at the live file only. Do not add syslog.log.* or a wildcard, as that makes the agent read the rotated copies too and send everything again. exclude_lines drops noisy chatter before it is indexed or billed. Add your own patterns as needed.

Step 5: Restart and verify

Send a test event from any forwarding machine:
Then open SIEM → Security Events in Atatus and filter on dataSource: linux_syslog.

Send to Logs instead of SIEM

By default these lines become security events. To keep them as ordinary searchable logs instead, add siem: false:

What gets detected

Recognised programs are translated into the same fields as the Linux Audit Log integration: Lines from programs that are not recognised are still stored and searchable. They simply do not contribute to detection thresholds.

Troubleshooting

What to expect on day one. The agent reads the current file from its start, so up to one rotation period of history arrives at once. Those events keep their original timestamps, which means they land in time windows the detection engine has already evaluated. They are searchable in the UI, and correctly silent for alerting.