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
       logging application. Typically, syslog-ng OSE is	 used  to  manage  log
       messages	and implement centralized logging, where the aim is to collect
       the  log	 messages  of several devices on a single, central log server.
       The different devices - called syslog-ng	OSE clients  -	all  run  sys-
       log-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
       messages	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	desti-
       nations.	 A  log	 path  consists	of one or more sources and one or more
       destinations: messages arriving from a source are sent to every	desti-
       nation  listed  in the log path.	A log path defined in syslog-ng	OSE is
       called a	log statement.

       Optionally, log paths can include filters. Filters are rules  that  se-
       lect  only  certain messages, for example, selecting only messages sent
       by a specific application. If a log path	 includes  filters,  syslog-ng
       OSE sends only the messages satisfying the filter rules to the destina-
       tions 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 de-
		finitions: 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  syn-
		tax:

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

		      Type  of	 the  object: One of source, destination, log,
		       filter, parser, rewrite rule, or	template.

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

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

	      TIP: Use identifiers that	refer to the type of the  object  they
	      identify.	 For  example, prefix source objects with s_, destina-
	      tions 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, un-
	      less you use the @define allow-config-dups 1 definition  in  the
	      configuration file.  - Parameters: The parameters	of the object,
	      enclosed in braces
		  {parameters}.	  -  Semicolon:	 Object	definitions end	with a
	      semicolon	(;).

	      For example, the following line defines a	source	and  calls  it
	      s_internal.

		     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 following log	statement:

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

	      	The parameters and options within a statement are  similar  to
		function  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),
	      follow-freq(), and flags(). The follow-freq() option also	has  a
	      parameter, 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 pa-
	      rameters are positional, meaning that they must be specified  in
	      a	defined	order. Optional	parameters can be specified in any or-
	      der  using the option(value) format. If a	parameter (optional or
	      required)	is not specified, its default value is used. The para-
	      meters and their default values are listed in the	reference sec-
	      tion 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  defini-
	      tions 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
		example, 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	local-
       host 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 configura-
       tion file using the following syntax:

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

   Example: Using global options
       To disable domain name resolving, add the following line	 to  the  sys-
       log-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
       +--------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
       |	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	functi|ons available in	syslog-ng OSE
       +-----------------------+-------------+
       |	 Name	       | Description |
       +-----------------------+-------------+
       | facility()	       |	     |
       +-----------------------+-------------+
       | filter()	       |	     |
       +-----------------------+-------------+
       | host()		       |	     |
       +-----------------------+-------------+
       | inlist()	       |	     |
       +-----------------------+-------------+
       | level() or priority() |	     |
       +-----------------------+-------------+
       | match()	       |	     |
       +-----------------------+-------------+
       | message()	       |	     |
       +-----------------------+-------------+
       | netmask()	       |	     |
       +-----------------------+-------------+
       | program()	       |	     |
       +-----------------------+-------------+
       | source()	       |	     |
       +-----------------------+-------------+
       | tags()		       |	     |
       +-----------------------+-------------+

Files
       /usr/local/

       /usr/local/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 mailing 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.9.0			       03 September 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.0>

home | help