Installation
How to compile syslog-ng on macOS. This guide includes specific instructions for macOS with Apple Silicon.
At present, macOS syslog-ng is not supported on the official repository. However, you can compile it from the source using this guide.

Compiling from source

Like every project syslog-ng also uses different libraries and build-systems that must be installed for compiling and running properly. These dependencies can be satisfied by compiling every-each libs and tools manually, but it might be preferred to do it the easy way. Homebrew is a package manager for macOS that has great community and support. You can also use it to install the dependencies you need.

Dependencies

    1.
    Install Homebrew on your system. (Click here for instructions.)
    2.
    Install the following dependencies:
      automake
      autoconf
      binutils
      glib
      autoconf-archive
      flex
      bison
      libtool
      pkg-config
      ivykis
      openssl
      pcre
    $ brew install automake autoconf binutils glib autoconf-archive flex bison libtool pkg-config ivykis openssl pcre
    3.
    Apple already provides bison on the system. However, the reason why bison is required to be installed from homebrew is that Apple provides an outdated package of Bison. Since macOS already provides this software and installing another version in parallel can cause all kinds of trouble, the bison package we installed with Homebrew is not symlinked and hence not visible to our configuration script. To fix that, we need to add bison to the path, ie, run $ export PATH=/usr/local/opt/bison/bin:$PATH
    4.
    Since macOS provides LibreSSL by default, we need to expand the search path of pkg-config to find the freshly installed openSSL. To do so, $ export PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig:$PKG_CONFIG_PATH"

Configuration

Because we cloned the repository, we need to run this command to generate a configuration script:
$ ./autogen.sh This script will clone the Git submodules and initialize the build system. The result of the execution should be a configure script. We need to set this configure script to use system ivykis instead of internal. $ ./configure --with-ivykis=system
Currently, Java8 is not natively supported on Apple Silicon macOS so we need to disable java support on ARM macOS. $ ./configure --with-ivykis=system --disable-java
NOTE: Azul is now offering MacOS ARM builds of OpenJDK on their website in the downloads section. This has not been tested so your mileage may vary.

Compile and Install

$ make -j8 $ make install

Before you run

To start the service, you can either navigate to the syslog-ng folder where you've compiled it and run sudo ./syslog-ng -F Or, you can start the service with the official command: /usr/local/sbin/syslog-ng -F However, it won’t start due to this error: system(): Error detecting platform, unable to define the system() source. Please send your system information to the developers!; sysname='Darwin', release='19.6.0'
The reason is that system() is not designed for macOS. At least not for now. So remove or comment that option in the default config file /usr/local/etc/syslog-ng.conf. Additionally, you can update the destination file, since Mac uses system.log instead of messages:
1
source s_local {
2
internal();
3
};
4
5
destination d_local {
6
file("/var/log/system.log");
7
};
8
9
log {
10
source(s_local);
11
destination(d_local);
12
};
Copied!
Last modified 2mo ago