The loggen manual page
Name
loggen — Generate syslog messages at a specified rate
Note: If you don’t have AxoSyslog installed and want to run loggen from a container, you can use:
docker run --rm -ti --entrypoint "" ghcr.io/axoflow/axosyslog /usr/bin/loggen [options] target [port]
Synopsis
loggen [options] target [port]
Description
loggen application is distributed with the AxoSyslog system logging application, and is usually part of the AxoSyslog package.
The loggen application is a tool to test and stress-test your syslog server and the connection to the server. It can send syslog messages to the server at a specified rate using a number of connection types and protocols, including TCP, UDP, and unix domain sockets. The messages can be generated automatically (repeating the PADDstring over and over), or read from a file or the standard input.
When loggen finishes sending the messages, it displays the following statistics:
- average rate: The average rate of the sent messages in messages/second.
- count: The total number of messages sent.
- time: The time required to send the messages in seconds.
- average message size: The average size of the sent messages in bytes.
- bandwidth: The average bandwidth used for sending the messages in kilobytes/second.
Options
- 
--active-connections <number-of-connections>Number of connections loggenwill use to send messages to the destination. This option is usable only when using TCP or TLS connections to the destination. Default value: 1The loggenutility waits until every connection is established before starting to send messages. See also the--idle-connectionsoption.
- 
--csvor-CSend the statistics of the sent messages to stdoutas CSV. This can be used for plotting the message rate.
- 
--client-portAvailable in AxoSyslog 4.14 and later. Use the specified outbound port to connect to the server. Usable only for a single connection (when --active-connectionsis 1 and--idle-connectionsis not set).
- 
--dgramor-DUse datagram socket ( UDPorunix-dgram) to send the messages to the target. Requires the--inetoption as well.
- 
dont-parseor-dDo not parse the lines read from the input files, send them as received. 
- 
--helpor-hDisplay a brief help message. 
- 
--idle-connection <number-of-connections>Number of idle connections loggenwill establish to the destination. Note thatloggenwill not send any messages on idle connections, but the connection is kept open using keep-alive messages. This option is usable only when using TCP or TLS connections to the destination. See also the--active-connectionsoption. Default value: 0
- 
--inetor-iUse the TCP (by default) or UDP (when used together with the --dgramoption) protocol to send the messages to the target.
- 
--interval <seconds>or-I <seconds>The number of seconds loggenwill run. Default value: 10Note When--intervaland--numberare used together,loggenwill send messages until the period set in--intervalexpires or the amount of messages set in--numberis reached, whichever happens first.
- 
--ipv6or-6Specify the destination using its IPv6 address. Note that the destination must have a real IPv6 address. 
- 
--loop-readingor-lRead the file specified in --read-fileoption in loop: loggen will start reading from the beginning of the file when it reaches the end of the file.
- 
--number <number-of-messages>or-n <number-of-messages>Number of messages to generate. Note When--intervaland--numberare used together,loggenwill send messages until the period set in--intervalexpires or the amount of messages set in--numberis reached, whichever happens first.
- 
--no-framingor-FDo not use the framing of the IETF-syslog protocol style, even if the --syslog-protooption is set.
- 
--perfDisables rate limiting to send as many messages as possible. 
- 
--permanentor-TKeep sending logs indefinitely, without time limit. 
- 
--quietor-QDisplay statistics only when loggenis finished. If not set, the statistics are displayed every second.
- 
--rate <message/second>or-r <message/second>The number of messages generated per second for every active connection. Default value: 1000. To disable rate limiting, use the --perfflag.If you want to change the message rate while loggen is running, send SIGUSR1 to double the message rate, or SIGUSR2 to halve it: kill -USR1 <loggen-pid>``kill -USR2 <loggen-pid>
- 
--read-file <filename>or-R <filename>Read the messages from a file and send them to the target. See also the --skip-tokensoption.Specify -as the input file to read messages from the standard input (stdio). Note that when reading messages from the standard input,loggencan only use a single thread. The-R -parameters must be placed at end of command, like:loggen 127.0.0.1 1061 --read-file -
- 
--reconnectTry to reconnect when destination connections are lost. 
- 
--sdata <data-to-send>or-p <data-to-send>Send the argument of the --sdataoption as the SDATA part of IETF-syslog (RFC5424 formatted) messages. Use it together with the--syslog-protooption. For example:--sdata "[test name=\\"value\\"]
- 
--size <message-size>or-s <message-size>The size of a syslog message in bytes. Default value: 256. Minimum value: 127 bytes, maximum value: 8192 bytes. 
- 
--skip-tokens <number>Skip the specified number of space-separated tokens (words) at the beginning of every line. For example, if the messages in the file look like foo bar message,--skip-tokens 2skips thefoo barpart of the line, and sends only themessagepart. Works only when used together with the--read-fileparameter. Default value: 0
- 
--streamor-SUse a stream socket (TCP or unix-stream) to send the messages to the target. 
- 
--syslog-protoor-PUse the new IETF-syslog message format as specified in RFC5424. By default, loggen uses the legacy BSD-syslog message format (as described in RFC3164). See also the --no-framingoption.
- 
--unix </path/to/socket>or-x </path/to/socket>Use a UNIX domain socket to send the messages to the target. 
- 
--use-sslor-UUse an SSL-encrypted channel to send the messages to the target. Note that it is not possible to check the certificate of the target, or to perform mutual authentication. 
- 
--versionor-VDisplay version number of syslog-ng.
Examples
The following command generates 100 messages per second for ten minutes, and sends them to port 2010 of the localhost via TCP. Each message is 300 bytes long.
loggen --stream --size 300 --rate 100 --interval 600 127.0.0.1 2010
The following command is similar to the one above, but uses the UDP protocol.
loggen --inet --dgram --size 300 --rate 100 --interval 600 127.0.0.1 2010
Send a single message on TCP6 to the ::1 IPv6 address, port 1061:
loggen --stream --ipv6 --number 1 ::1 1061
Send a single message on UDP6 to the ::1 IPv6 address, port 1061:
loggen --ipv6 --dgram --number 1 ::1 1061
Send a single message using a unix domain-socket:
loggen --unix --stream --number 1 </path/to/socket>
Read messages from the standard input (stdio) and send them to the localhost:
loggen 127.0.0.1 1061 --stream --read-file -
Files
/opt/syslog-ng/bin/loggen
See also
Getting help
- The up-to-date documentation of AxoSyslog is available on the AxoSyslog documentation site.
- For news and notifications about AxoSyslog, visit the Axoflow blog.
- If you want to contact the developers directly to help with problems or report issues, contact us on Discord or GitHub.
This manual page is maintained by Axoflow