Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
syslog-ng.conf(5)	 The syslog-ng.conf manual page        syslog-ng.conf(5)

NAME
     syslog-ng.conf - {{ site.product.short_name }} configuration file

SYNOPSIS
     syslog-ng.conf

DESCRIPTION
     This manual page is only an abstract.

     The syslog-ng OSE application is a flexible and highly scalable system log-
     ging  application.  Typically, syslog-ng OSE is used to manage log messages
     and implement centralized logging, where the aim is to collect the log mes-
     sages of several devices on a single, central log server. The different de-
     vices - called syslog-ng OSE clients - all run syslog-ng OSE,  and  collect
     the  log  messages from the various applications, files, and other sources.
     The clients send all important log messages to the remote syslog-ng OSE  PE
     server, where the server sorts and stores them.

BASIC CONCEPTS OF syslog-ng OSE
     The  syslog-ng OSE application reads incoming messages and forwards them to
     the selected destinations. The syslog-ng OSE application can  receive  mes-
     sages from files, remote hosts, and other sources.

     Log  messages  enter  syslog-ng  OSE in one of the defined sources, and are
     sent to one or more destinations.

     Sources and destinations are independent objects,	log  paths  define  what
     syslog-ng	OSE  does with a message, connecting the sources to the destina-
     tions. A log path consists of one or more sources and one or more	destina-
     tions: messages arriving from a source are sent to every destination listed
     in the log path. A log path defined in syslog-ng OSE is called a log state-
     ment.

     Optionally,  log  paths  can include filters. Filters are rules that select
     only certain messages, for example, selecting only messages sent by a  spe-
     cific application. If a log path includes filters, syslog-ng OSE sends only
     the messages satisfying the filter rules to the destinations set in the log
     path.

     Other  optional  elements that can appear in log statements are parsers and
     rewriting rules. Parsers segment messages into  different	fields	to  help
     processing the messages, while rewrite rules modify the messages by adding,
     replacing, or removing parts of the messages.

CONFIGURING syslog-ng OSE
	    * The main body of the configuration file consists of object defini-
	      tions:  sources,	destinations,  logpaths define which log message
	      are received and where they  are	sent.  All  identifiers,  option
	      names  and attributes, and any other strings used in the syslog-ng
	      OSE configuration file  are  case  sensitive.  Object  definitions
	      (also called statements) have the following syntax:

		   type-of-the-object identifier-of-the-object {<parameters>};

		   * Type  of  the object: One of source, destination, log, fil-
		     ter, parser, rewrite rule, or template.

		   * Identifier of the object: A unique name identifying the ob-
		     ject.  When using a reserved word as an identifier, enclose
		     the identifier in quotation marks (\"\").

	    All identifiers, attributes, and any other strings used in the  sys-
	    log-ng OSE configuration file are case sensitive.

	    TIP: Use identifiers that refer to the type of the object they iden-
	    tify.  For example, prefix source objects with s_, destinations with
	    d_, and so on.

	    NOTE: Repeating a definition of an object  (that  is,  defining  the
	    same  object with the same id more than once) is not allowed, unless
	    you use the @define allow-config-dups 1 definition in the configura-
	    tion file.	- Parameters: The parameters of the object, enclosed  in
	    braces
		{parameters}.	- Semicolon: Object definitions end with a semi-
	    colon (;).

	    For example, the following line defines a source and calls it  s_in-
	    ternal.

		   source s_internal { internal(); };

	    The object can be later referenced in other statements using its ID,
	    for  example, the previous source is used as a parameter of the fol-
	    lowing log statement:

		   log { source(s_internal); destination(d_file); };

	    * The parameters and options within a statement are similar to func-
	      tion calls of the C programming language: the name of  the  option
	      followed	by a list of its parameters enclosed within brackets and
	      terminated with a semicolon.

		   option(parameter1, parameter2); option2(parameter1, parameter2);

	    For example, the file() driver in the following source statement has
	    three  options:  the  filename  (/var/log/apache/access.log),   fol-
	    low-freq(), and flags(). The follow-freq() option also has a parame-
	    ter, while the flags() option has two parameters.

		   source s_tail { file("/var/log/apache/access.log"
		   follow-freq(1) flags(no-parse, validate-utf8)); };

	    Objects  may have required and optional parameters. Required parame-
	    ters are positional, meaning that they must be specified  in  a  de-
	    fined order. Optional parameters can be specified in any order using
	    the  option(value)	format. If a parameter (optional or required) is
	    not specified, its default value is used. The parameters  and  their
	    default values are listed in the reference section of the particular
	    object.

	    Example: Using required and optional parameters

	    The  unix-stream() source driver has a single required argument: the
	    name of the socket to listen  on.  Optional  parameters  follow  the
	    socket  name  in any order, so the following source definitions have
	    the same effect:

		   source s_demo_stream1 {
		       unix-stream("<path-to-socket>"
		       max-connections(10) group(log));
		   };

		   source s_demo_stream2 {
		       unix-stream("<path-to-socket>"
		       group(log) max-connections(10));
		   };

	    * Some options are global options, or can be set globally, for exam-
	      ple, whether syslog-ng OSE should use DNS resolution to resolve IP
	      addresses.

		   options { use-dns(no); };

	    * Objects can be used before definition.

	    * Objects can be defined inline as well. This is useful if	you  use
	      the object only once (for example, a filter).

	    * To add comments to the configuration file, start a line with # and
	      write your comments. These lines are ignored by syslog-ng OSE.

		   # Comment: This is a stream source

		   source s_demo_stream {
		   unix-stream("<path-to-socket>" max-connections(10) group(log)); };

     The syntax of log statements is as follows:

	    log {
		source(s1); source(s2); ...
		optional_element(filter1|parser1|rewrite1);
		optional_element(filter2|parser2|rewrite2);
		...
		destination(d1); destination(d2); ...
		flags(flag1[, flag2...]);
	    };

     The following log statement sends all messages arriving to the localhost to
     a remote server.

	    source s_localhost { network(ip(127.0.0.1) port(1999)); };
	    destination d_tcp { network("10.1.2.3" port(1999) localport(999)); };
	    log { source(s_localhost); destination(d_tcp); };

     The  syslog-ng OSE application has a number of global options governing DNS
     usage, the timestamp format used, and other general points. Each option may
     have parameters, similarly to driver specifications. To set global  options
     add  an  option statement to the syslog-ng OSE configuration file using the
     following syntax:

	    options { option1(params); option2(params); ... };

     For example:

     To disable domain name resolving, add the following line to  the  syslog-ng
     OSE configuration file:

	    options { use-dns(no); };

     The  sources,  destinations,  and	filters  available  in syslog-ng OSE are
     listed below.

TABLE 1: SOURCE DRIVERS AVAILABLE IN syslog-ng OSE
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     |		  Name		   |								   Description								     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | file()			   | Opens the specified file and reads messages.											     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | wildcard-file()		   | Reads messages from multiple files and directories.										     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | internal()		   | Messages generated internally in syslog-ng OSE.											     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | network()		   | Receives messages from remote hosts using the BSD-syslog protocol over IPv4 and IPv6. Supports the TCP, UDP, and TLS network protocols. |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | nodejs() 		   | Receives JSON messages from nodejs applications.											     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | mbox()			   | Read e-mail messages from local mbox files, and convert them to multi-line log messages.						     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | osquery()		   | Run osquery queries, and convert their results into log messages.									     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | pacct()			   | Reads messages from the process accounting logs on Linux.										     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | pipe()			   | Opens the specified named pipe and reads messages. 										     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | program()		   | Opens the specified application and reads messages from its standard output.							     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | snmptrap()		   | Read and parse the SNMP traps of the Net-SNMP\'s snmptrapd application.								     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | sun-stream(), sun-streams() | Opens the specified STREAMS device on Solaris systems and reads incoming messages. 						     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | syslog() 		   | Listens for incoming messages using the new IETF-standard syslog protocol. 							     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | system() 		   | Automatically detects which platform syslog-ng OSE is running on, and collects the native log messages of that platform.		     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | systemd-journal()	   | Collects messages directly from the journal of platforms that use systemd. 							     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | systemd-syslog() 	   | Collects messages from the journal using a socket on platforms that use systemd.							     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | unix-dgram()		   | Opens the specified unix socket in SOCK_DGRAM mode and listens for incoming messages.						     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | unix-stream()		   | Opens the specified unix socket in SOCK_STREAM mode and listens for incoming messages.						     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
     | stdin()			   | Collects messages from the standard input stream.											     |
     +-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+

TABLE 2: DESTINATION DRIVERS AVAILABLE IN syslog-ng OSE
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     |	      Name	  |										   Description										       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | amqp()		  | Publishes messages using the AMQP (Advanced Message Queuing Protocol).												       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | elasticsearch-http | Sends messages to an Elasticsearch server.																       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | file()		  | Writes messages to the specified file.																       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | graphite()	  | Sends metrics to a Graphite server to store numeric time-series data.												       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | graylog2()	  | Sends syslog messages to Graylog.																	       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | hdfs()		  | Sends messages into a file on a Hadoop Distributed File System (HDFS) node. 											       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | http()		  | Sends messages over the HTTP protocol. There are two different implementations of this driver: a Java-based http driver, and an http driver without Java.		       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | kafka()		  | Publishes log messages to the Apache Kafka message bus, where subscribers can access them.										       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | loggly() 	  | Sends log messages to the Loggly Logging-as-a-Service provider.													       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | logmatic()	  | Sends log messages to the Logmatic.io Logging-as-a-Service provider.												       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | mongodb()	  | Sends messages to a MongoDB database.																       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | network()	  | Sends messages to a remote host using the BSD-syslog protocol over IPv4 and IPv6. Supports the TCP, UDP, and TLS network protocols. 				       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | pipe()		  | Writes messages to the specified named pipe.															       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | program()	  | Forks and launches the specified program, and sends messages to its standard input. 										       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | redis()		  | Sends messages as name-value pairs to a Redis key-value store.													       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | riemann()	  | Sends metrics or events to a Riemann monitoring system.														       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | smtp()		  | Sends e-mail messages to the specified recipients.															       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | sql()		  | Sends messages into an SQL database. In addition to the standard syslog-ng OSE packages, the sql() destination requires database-specific packages to be installed.        |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | stomp()		  | Sends messages to a STOMP server.																	       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | syslog() 	  | Sends messages to the specified remote host using the IETF-syslog protocol. The IETF standard supports message transport using the UDP, TCP, and TLS networking protocols. |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | unix-dgram()	  | Sends messages to the specified unix socket in SOCK_DGRAM style (BSD).												       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | unix-stream()	  | Sends messages to the specified unix socket in SOCK_STREAM style (Linux).												       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
     | usertty()	  | Sends messages to the terminal of the specified user, if the user is logged in.											       |
     +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

TABLE 3: FILTER FUNCTIONS AVAILABLE IN syslog-ng OSE
     +-----------------------+-------------+
     |	       Name	     | Description |
     +-----------------------+-------------+
     | facility()	     |		   |
     +-----------------------+-------------+
     | filter() 	     |		   |
     +-----------------------+-------------+
     | host()		     |		   |
     +-----------------------+-------------+
     | inlist() 	     |		   |
     +-----------------------+-------------+
     | level() or priority() |		   |
     +-----------------------+-------------+
     | match()		     |		   |
     +-----------------------+-------------+
     | message()	     |		   |
     +-----------------------+-------------+
     | netmask()	     |		   |
     +-----------------------+-------------+
     | program()	     |		   |
     +-----------------------+-------------+
     | source() 	     |		   |
     +-----------------------+-------------+
     | tags()		     |		   |
     +-----------------------+-------------+

FILES
     /Users/hofi/Develop/Balabit/syslog-ng/build/install/

     /Users/hofi/Develop/Balabit/syslog-ng/build/install/etc/syslog-ng.conf

     NOTE: If you experience any problems or need help with syslog-ng  OSE,  see
     the syslog-ng OSE Administration Guide[1], or visit the syslog-ng OSE mail-
     ing  list[2].   For  news	and notifications about syslog-ng OSE, visit the
     syslog-ng OSE blogs[3].

AUTHOR
     This manual page  was  generated  from  the  syslog-ng  OSE  Administration
     Guide[1],	which  was  written by several contributors to whom we'd like to
     extend our sincere thanks.

COPYRIGHT
NOTES
     [1] syslog-ng OSE Administration Guide
	 <https://syslog-ng.github.io/admin-guide/README>

     [2] syslog-ng OSE mailing list
	 <https://lists.balabit.hu/mailman/listinfo/syslog-ng>

     [3] syslog-ng OSE blogs
	 <https://syslog-ng.com/blog/>

4.10.2				18 December 2025	       syslog-ng.conf(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=syslog-ng.conf&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help