If there’s a short and sweet installation document for enabling SNMP support in Amavisd-new, I seem to have failed searching for it today. Instead I made my own, partially for documenting my own setup and partially for the benefit of others.
This brief installation document assumes you’re running a Ubuntu or Debian system. It will also assume that your Amavisd-new service is installed and running as one should expect.
First, install the programs and its dependencies. The Amavisd-new SNMP subagent metrics are available through the regular Net-SNMP software suite. Note: The
/etc/default/amavisd-snmp-subagent file says it needs
libnet-snmp-perl, but it will also require the
# apt-get install libnet-snmp-perl libsnmp-perl snmp-mibs-downloader snmp snmpd
Then, download all the MIBs you’ll need (and a few more). Due to distribution restrictions Debian-based systems provide a separate downloader which will save the MIBs to where they should be.
# download-mibs Downloading documents and extracting MIB files. This will take some minutes. [...]
When the download process has completed, allow the snmp server and the snmp agent to locate and use the MIBs by commenting out or removing the appropriate lines (in italic) in
# This file controls the activity of snmpd # Don't load any MIBs by default. # You might comment this lines once you have the MIBs downloaded. # export MIBS=
# As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loading them by commenting out the following line. # mibs :
For MIB support for the Amavisd-new metrics (yes you want this), download the AMAVIS-MIB file into the directory
# wget https://amavis.org/AMAVIS-MIB.txt -O /usr/share/snmp/mibs/AMAVIS-MIB.txt
Enable the Amavisd-new SNMP agent by configuring its default setting file:
# To enable the amavis-snmp-subagent set ENABLED to yes ENABLED="yes"
NET-SNMP version 5.7.3 AgentX subagent connected registering root OID 220.127.116.11.4.1.15318.104.22.168 for am.snmp registering root OID 22.214.171.124.4.1.153126.96.36.199 for am.nanny registering root OID 188.8.131.52.4.1.153184.108.40.206.1.1 for pf.maildrop registering root OID 220.127.116.11.4.1.15318.104.22.168.1.2 for pf.incoming registering root OID 22.214.171.124.4.1.153126.96.36.199.1.3 for pf.active registering root OID 188.8.131.52.4.1.153184.108.40.206.1.4 for pf.deferred
So we will need to tell SNMPd that these should be available. We do that by adding the following line, with an OID base covering all of the above, to
view systemonly included .220.127.116.11.4.1.15312.2.1
Finally, (re)start all the services involved.
# service snmpd restart # service amavis restart # service amavisd-snmp-subagent restart
After a short while you should be able to read Amavis statistics over SNMP!
# snmpwalk -m +AMAVIS-MIB -c public -v2c 127.0.0.1 18.104.22.168.4.1.15312.2.1 [...] AMAVIS-MIB::inMsgs.0 = Counter32: 41 AMAVIS-MIB::inMsgsOpenRelay.0 = Counter32: 41 AMAVIS-MIB::inMsgsStatusAccepted.0 = Counter32: 35 AMAVIS-MIB::inMsgsStatusRejected.0 = Counter32: 6 AMAVIS-MIB::inMsgsSize.0 = Counter64: 456221 AMAVIS-MIB::inMsgsSizeOpenRelay.0 = Counter64: 456221 AMAVIS-MIB::inMsgsRecips.0 = Counter32: 41 AMAVIS-MIB::inMsgsRecipsOpenRelay.0 = Counter32: 41 AMAVIS-MIB::inMsgsBounce.0 = Counter32: 9 AMAVIS-MIB::inMsgsBounceNullRPath.0 = Counter32: 2 AMAVIS-MIB::inMsgsBounceUnverifiable.0 = Counter32: 9 AMAVIS-MIB::outMsgs.0 = Counter32: 15 AMAVIS-MIB::outMsgsSubmit.0 = Counter32: 15 AMAVIS-MIB::outMsgsSubmitQuar.0 = Counter32: 9 AMAVIS-MIB::outMsgsSubmitNotif.0 = Counter32: 6 AMAVIS-MIB::outMsgsProtoLocal.0 = Counter32: 9 AMAVIS-MIB::outMsgsProtoLocalSubmit.0 = Counter32: 9 AMAVIS-MIB::outMsgsProtoSMTP.0 = Counter32: 6 AMAVIS-MIB::outMsgsProtoSMTPSubmit.0 = Counter32: 6 AMAVIS-MIB::outMsgsDelivers.0 = Counter32: 15 AMAVIS-MIB::outMsgsSize.0 = Counter64: 87735 AMAVIS-MIB::outMsgsSizeSubmit.0 = Counter64: 87735 AMAVIS-MIB::outMsgsSizeSubmitQuar.0 = Counter64: 87729 AMAVIS-MIB::outMsgsSizeSubmitNotif.0 = Counter64: 6 AMAVIS-MIB::outMsgsSizeProtoLocal.0 = Counter64: 87729 AMAVIS-MIB::outMsgsSizeProtoLocalSubmit.0 = Counter64: 87729 AMAVIS-MIB::outMsgsSizeProtoSMTP.0 = Counter64: 6 AMAVIS-MIB::outMsgsSizeProtoSMTPSubmit.0 = Counter64: 6 AMAVIS-MIB::quarMsgs.0 = Counter32: 9 AMAVIS-MIB::quarBadHdrMsgs.0 = Counter32: 3 AMAVIS-MIB::quarSpamMsgs.0 = Counter32: 6 AMAVIS-MIB::quarMsgsSize.0 = Counter64: 87729 AMAVIS-MIB::quarBadHdrMsgsSize.0 = Counter64: 8273 AMAVIS-MIB::quarSpamMsgsSize.0 = Counter64: 79456 AMAVIS-MIB::contentCleanMsgs.0 = Counter32: 32 AMAVIS-MIB::contentCleanMsgsOpenRelay.0 = Counter32: 32 AMAVIS-MIB::contentBadHdrMsgs.0 = Counter32: 3 AMAVIS-MIB::contentBadHdrMsgsOpenRelay.0 = Counter32: 3 AMAVIS-MIB::contentSpamMsgs.0 = Counter32: 6 AMAVIS-MIB::contentSpamMsgsOpenRelay.0 = Counter32: 6 AMAVIS-MIB::outConnNew.0 = Counter32: 6 [...]
You should now be able to throw different kinds of monitoring software on Amavisd-new.