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. -
--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). -
--debugEnable debug messages of
loggen. -
--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-connections <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 Note that when the--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 Note that when the--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.
-
--proxied [<version>]or-H [<version>]Prepend a PROXY protocol header to the generated messages. The optional argument selects the version of the PROXY protocol:
1or2. Default value:1Use the
--proxy-src-ip,--proxy-dst-ip,--proxy-src-port, and--proxy-dst-portoptions to set the addresses in the header. -
--proxied-tls-passthroughSend the PROXY protocol header before the encrypted payload. Use it together with the
--proxiedand--use-ssloptions. -
--proxy-dst-ip <ip-address>The destination IP address to set in the PROXY protocol header.
-
--proxy-dst-port <port>The destination port to set in the PROXY protocol header.
-
--proxy-src-ip <ip-address>The source IP address to set in the PROXY protocol header.
-
--proxy-src-port <port>The source port to set in the PROXY protocol header.
-
--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> -
--rate-burst-startStart sending messages at the full rate set in the
--rateoption, instead of ramping the rate up gradually. Useful for testing rate limiting. -
--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.
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 2010The 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 2010Send a single message on TCP6 to the ::1 IPv6 address, port 1061:
loggen --stream --ipv6 --number 1 ::1 1061Send a single message on UDP6 to the ::1 IPv6 address, port 1061:
loggen --ipv6 --dgram --number 1 ::1 1061Send 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