From 9aeb899d051c88f3fdb093e2bfbdaeab1c7e4339 Mon Sep 17 00:00:00 2001 From: yseto Date: Fri, 26 Aug 2022 16:13:26 +0900 Subject: [PATCH] added test for snmp --- mackerel-plugin-snmp/rule.txt | 2 ++ mackerel-plugin-snmp/test.sh | 34 ++++++++++++++++++++++++ mackerel-plugin-snmp/testdata/Dockerfile | 8 ++++++ mackerel-plugin-snmp/testdata/snmpd.conf | 4 +++ 4 files changed, 48 insertions(+) create mode 100644 mackerel-plugin-snmp/rule.txt create mode 100755 mackerel-plugin-snmp/test.sh create mode 100644 mackerel-plugin-snmp/testdata/Dockerfile create mode 100644 mackerel-plugin-snmp/testdata/snmpd.conf diff --git a/mackerel-plugin-snmp/rule.txt b/mackerel-plugin-snmp/rule.txt new file mode 100644 index 000000000..247e6b2a4 --- /dev/null +++ b/mackerel-plugin-snmp/rule.txt @@ -0,0 +1,2 @@ +snmp.hrSystemNumUsers >=0 +snmp.hrSystemProcesses >=0 diff --git a/mackerel-plugin-snmp/test.sh b/mackerel-plugin-snmp/test.sh new file mode 100755 index 000000000..6062a129b --- /dev/null +++ b/mackerel-plugin-snmp/test.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +prog=$(basename "$0") +if ! [ -S /var/run/docker.sock ] +then + echo "$prog: there are no running docker" >&2 + exit 2 +fi + +cd "$(dirname "$0")" || exit +PATH=$(pwd):$PATH +plugin=$(basename "$(pwd)") +if ! which "$plugin" >/dev/null +then + echo "$prog: $plugin is not installed" >&2 + exit 2 +fi + +image=local/test-$plugin +# mackerel-plugin-snmp is disallowed --port option. +port=161 + +docker build -t $image testdata/ + +docker run --name "test-$plugin" -v $(pwd)/testdata/snmpd.conf:/etc/snmp/snmpd.conf:ro -p $port:161/udp -d $image +trap 'docker stop test-$plugin; docker rm test-$plugin; exit 1' 1 2 3 15 +sleep 10 + +$plugin '.1.3.6.1.2.1.25.1.5.0:hrSystemNumUsers:0:0' '.1.3.6.1.2.1.25.1.6.0:hrSystemProcesses:0:0' | graphite-metric-test -f rule.txt +status=$? + +docker stop "test-$plugin" +docker rm "test-$plugin" +exit $status diff --git a/mackerel-plugin-snmp/testdata/Dockerfile b/mackerel-plugin-snmp/testdata/Dockerfile new file mode 100644 index 000000000..e5d88d55b --- /dev/null +++ b/mackerel-plugin-snmp/testdata/Dockerfile @@ -0,0 +1,8 @@ +FROM alpine:3.16 + +RUN apk add --update net-snmp net-snmp-tools + +EXPOSE 161 + +CMD ["snmpd", "-V", "-f", "-c", "/etc/snmp/snmpd.conf"] + diff --git a/mackerel-plugin-snmp/testdata/snmpd.conf b/mackerel-plugin-snmp/testdata/snmpd.conf new file mode 100644 index 000000000..9238dc279 --- /dev/null +++ b/mackerel-plugin-snmp/testdata/snmpd.conf @@ -0,0 +1,4 @@ +view systemonly included .1.3.6.1.2.1.1 +view systemonly included .1.3.6.1.2.1.25.1 + +rocommunity public default -V systemonly