NXLog can collect various types of system logs on FreeBSD platforms. For deployment details, see the supported FreeBSD platforms, FreeBSD installation, and monitoring.

Basic Security Mode (BSM) Auditing

The im_bsm module collects logs generated by the BSM auditing system.

Example 1. Collecting BSM audit logs

This example reads BSM audit logs from the /dev/auditpipe device file.

<Input bsm>
    Module      im_bsm
    DeviceFile  /dev/auditpipe
Custom programs

The im_exec module allows log data to be collected from custom external programs.

Example 2. Using an external command

This example uses the tail command to read from a file.

The im_file module should be used to read log messages from files. This example only demonstrates the use of the im_exec module.
<Input exec>
    Module  im_exec
    Command /usr/bin/tail
    Arg     -f
    Arg     /var/log/messages
DNS Monitoring

DNS logs can be collected from the BIND DNS server, see the BIND 9 section in the NXLog User Guide.

File Integrity Monitoring

File and directory changes can be detected and logged for auditing with the im_fim module. See File Integrity Monitoring.

Example 3. Monitoring file integrity

This example monitors files in the /etc and /srv directories, generating events when files are modified or deleted. Files ending in .bak are excluded from the watch list.

<Input fim>
    Module          im_fim
    File            "/etc/*"
    File            "/srv/*"
    Exclude         "*.bak"
    Digest          sha1
    ScanInterval    3600
    Recursive       TRUE

Logs from the kernel can be collected directly with the im_kernel module.

The system logger may need to be disabled or reconfigured to collect logs with im_kernel. To completely disable syslogd on FreeBSD, run service syslogd onestop and sysrc syslogd_enable=NO.
Example 4. Collecting kernel logs

This configuration reads events from the kernel.

<Input kernel>
    Module  im_kernel
Local syslog

Messages written to /dev/log can be collected with the im_uds module. Events written to file in Syslog format can be collected with im_file. In both cases, the xm_syslog module can be used to parse the events. See the Linux system logs and Collecting and Parsing Syslog sections for more information.

Example 5. Reading syslog messages from file

This example reads Syslog messages from /var/log/messages and parses them with the parse_syslog() procedure.

<Extension _syslog>
    Module  xm_syslog

<Input in>
    Module  im_file
    File    "/var/log/messages"
    Exec    parse_syslog();
Log files

The im_file module can be used to collect events from log files.

Example 6. Reading from log files

This configuration reads messages from the /opt/test/input.log file. No parsing is performed; each line is available in the $raw_event field.

<Input in>
    Module  im_file
    File    "/opt/test/input.log"
Process Accounting

The im_acct module can be used to gather details about which owner (user and group) runs what processes.

Example 7. Reading Process Accounting logs

This configuration turns on process accounting (using /var/account/acct as the log file) and watches for messages.

<Input acct>
    Module  im_acct
    AcctOn  TRUE
    File    "/var/account/acct"