These sections describe a method of load balancing logs between multiple syslog-ng Premium Edition (syslog-ng PE) destinations. The first subsection describes the round robin load balancing method based on the R_MSEC macro of syslog-ng PE, while the second subsection describes a configuration generator that you can use as an alternative to using the example configuration described in the first subsection.
For more information about the R_MSEC macro and further macros of syslog-ng PE, see Macros of syslog-ng PE.
Topics:
This section describes a round robin load balancing method based on the R_MSEC macro of syslog-ng Premium Edition (syslog-ng PE) to load balance your logs between multiple syslog-ng PE destinations.
TIP: If R_MSEC is not precise enough, you can replace it with R_USEC (which uses microseconds instead of milliseconds).
For more information about the R_MSEC macro and further macros of syslog-ng PE, see Macros of syslog-ng PE.
Example: round robin load balancing between multiple destinations
The following example is a round-robin load balancing method, based on syslog-ng PE's R_MSEC macro.
destination d_lb_network {
channel {
channel {
filter {
"0" == "$(% ${R_MSEC} 2)"
};
destination {
network("myhost1"
disk-buffer(mem-buf-length(10000) disk-buf-size(2000000)));
};
flags(final);
};
channel {
filter {
"1" == "$(% ${R_MSEC} 2)"
};
destination {
network("myhost2"
disk-buffer(mem-buf-length(10000) disk-buf-size(2000000)));
};
flags(final);
};
};
};
The filter {" <return value >" == "$(% ${R_MSEC} 2)"}; code snippets (in bold) serve as the basis of the method. This filter separates incoming log messages' timestamp values based on the R_MSEC macro, using a division with remainder method, and distributes the log messages equally between two destinations based on the return value (in this case, 0 or 1).
If you need a file instead of a network destination, replace the network destination with the file in the example (and use the same analogy for any other syslog-ng PE destinations).
For an alternative method to use the round robin load balancing method based on the R_MSEC macro, see Configuration generator for the load balancing method based on MSEC hashing.
This section describes a configuration generator for the load balancing method based on MSEC hashing to load balance your logs between multiple syslog-ng Premium Edition (syslog-ng PE) destinations.
As an alternative to using the example configuration described in Load balancing with a round robin load balancing method based on the R_MSEC macro of syslog-ng PE , a configuration generator script is also available in syslog-ng PE:
destination d_lb {network-load-balancer(targets(myhost1 myhost2 myhost3))};
Where destinations share the same configuration except for the destination address, balancing is based on MSEC hashing.
The syslog-ng manual pages
This chapter collects the manual pages of syslog-ng PE and other related applications that are usually distributed and packaged together with the syslog-ng Premium Edition application.