Compiling syslog-ng from source
syslog-ng from the source code, complete the following steps. Alternatively, you can use precompiled binary packages on several platforms. For a list of third-party packages available for various Linux, UNIX, and other platforms, see syslog-ng Open Source Edition installation packages.
Download the latest source code release from GitHub. The source code is available as a tar.gz archive file.
Install the following required packages. These packages are available for most UNIX/Linux systems. Alternatively, you can also download the sources and compile them.
A version of the gcc C compiler that properly supports Thread Local Storage (TLS), for example, version 4.5.
The GNU flex lexical analyser generator, available here.
The bison parser generator, available here.
The development files of the glib library, available here.
The development files of the Autoconf Archive package, available here.
The AxoSyslog application now uses PCRE-type regular expressions by default. It requires the
libpcrelibrary package, available here.
If you want to use the Java-based modules of AxoSyslog (for example, the Elasticsearch, HDFS, or Kafka destinations), you must compile AxoSyslog with Java support.
Download and install the Java Runtime Environment (JRE), 1.7 (or newer). You can use OpenJDK or Oracle JDK, other implementations are not tested.
Install gradle version 2.2.1 or newer.
LD_LIBRARY_PATHto include the
libjvm.sofile, for example:
Note that many platforms have a simplified links for Java libraries. Use the simplified path if available. If you use a startup script to start AxoSyslog set
LD_LIBRARY_PATHin the script as well.
If you are behind an HTTP proxy, create a
modules/java-modules/directory. Set the proxy parameters in the file. For details, see The Gradle User Guide.
If you want to post log messages as HTTP requests using the
http()destination, install the development files of the libcurl library. This library is not needed if you use the
--disable-httpcompile option. Alternatively, you can use a Java-based implementation of the HTTP destination.
If you want to use the spoof-source function of
syslog-ng, install the development files of the libnet library, available here.
If you want to send emails using the
smtp()destination, install the development files of the libesmtp library. This library is not needed if you use the
If you want to send SNMP traps using the
snmp()destination, install the development files of the Net-SNMP library libsnmp-dev. This library is not needed if you use the
If you want to use the /etc/hosts.deny and /etc/hosts.allow for TCP access, install the development files of the libwrap (also called TCP-wrappers) library, available here.
Enter the new directory and issue the following commands. (If the
./configurefile does not exist, for example, because you cloned the repository from GitHub instead of using a release tarball, execute the
$ ./configure $ make $ make install
syslog-ngarchive using the
tar xvfz syslog-ng-x.xx.tar.gz
unzip -c syslog-ng-x.xx.tar.gz | tar xvf -
command. A new directory containing the source code of
syslog-ngwill be created.
Enter the new directory and issue the following commands:
$ ./configure $ make $ make install
These commands will build
syslog-ngusing its default options.
When using the
makecommand, consider the following:
On Solaris, use
gmake(GNU make) instead of
To build AxoSyslog with less verbose output, use the
make V=0command. This results in shorter, less verbose output, making warnings and other anomalies easier to notice. Note that silent-rules support is only available in recent automake versions.
If needed, use the following options to change how
syslog-ngis compiled using the following command syntax:
$ ./configure --compile-time-option-name
NoteYou can also use –disable options, to explicitly disable a feature and override autodetection. For example, to disable the TCP-wrapper support, use the –disable-tcp-wrapper option. For the list of available compiling options, see Compiling options of syslog-ng.
WarningThe default linking mode of
dynamic. This means that
syslog-ngmight not be able to start up if the
/usrdirectory is on NFS. On platforms where
syslog-ngis used as a system logger, the