rsyslog/tests/sndrcv_omsnmpv1_udp_dynsource.sh
Andre lorbach fd6c32c2f2 testbench: Add two real tests for omsnmp
Adds a python based SNMP Trap Receiver which outputs received
SNMP Traps by UDP onyl at the moment. Can be extended later.
Tests results are verified by content_check.

The tests have to be enabed with ./configure --enable-snmp-tests

Test sndrcv_omsnmpv1_udp_dynsource.sh checks the new snmpv1dynsource
option.

In order to work, the following python packages needs to be installed:
	pip install pysnmp

On Ubuntu 18, we need these packages to be installed:
	apt install snmp libsnmp-dev snmp-mibs-downloader

closes: https://github.com/rsyslog/rsyslog/issues/3985
2019-12-03 13:26:36 +01:00

56 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# alorbach, 2019-11-27
# Required Packages
# pip install pysnmp
#
# Ubuntu 18 Packages needed
# apt install snmp libsnmp-dev snmp-mibs-downloader
#
# This file is part of the rsyslog project, released under ASL 2.0
. ${srcdir:=.}/diag.sh init
export TESTMESSAGES=10
generate_conf
export PORT_SNMP="$(get_free_port)"
# Start SNMP Trap Receiver
snmp_start_trapreceiver ${PORT_SNMP} ${RSYSLOG_OUT_LOG}
add_conf '
module( load="../plugins/imtcp/.libs/imtcp")
input( type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port" )
module( load="../plugins/omsnmp/.libs/omsnmp" )
# set up templates
template(name="outfmt" type="string" string="%msg:F,58:2%\n")
# Set Custom Host property
set $!custom_host = "8.8.8.8";
template(name="dynsource" type="list") {
property(name="$!custom_host")
}
# set up the action
:msg, contains, "msgnum:" action( type="omsnmp"
name="name"
server="127.0.0.1"
port="'${PORT_SNMP}'"
version="0"
community="public"
enterpriseOID="1.3.6.1.2.1.192.0.1"
messageOID="1.3.6.1.2.1.192.1.2.1.11"
TrapType="6"
specificType="0"
snmpv1dynsource="dynsource"
)
'
startup
tcpflood -p'$TCPFLOOD_PORT' -m${TESTMESSAGES}
shutdown_when_empty
wait_shutdown
snmp_stop_trapreceiver
content_count_check "msgnum:" ${TESTMESSAGES}
content_count_check "8.8.8.8" ${TESTMESSAGES}
exit_test