Debian / Ubuntu Linux: Install and Configure snmpd Service

SNMP (Simple Network Management Protocol) is a protocol used for network management. How do I install SNMP server under Debian or Ubuntu Linux to configure various monitoring service?

The NET-SNMP project provides various SNMP tools: an extensible agent, an SNMP library, tools for requesting or setting information from SNMP agents, tools for generating and handling SNMP traps, a version of the netstat command which uses SNMP, and a Tk/Perl mib browser. The snmpd package contains the snmpd and snmptrapd daemons, documentation, etc.

ADVERTISEMENTS

Install snmpd

Type the following command as root, enter:
# apt-get update && apt-get install snmpd

Snmpd Configuration Files

The default configuration for snmpd is rather paranoid for security reasons. Edit /etc/snmp/snmpd.conf or run snmpconf to allow greater access. You can individually control whether or not snmpd and snmpdtrap are run by editing /etc/default/snmpd.

Configure SNMPD

Edit /etc/snmp/snmpd.conf, enter:
# vi /etc/snmp/snmpd.conf
Edit or update file as follows:

smuxsocket 127.0.0.1
rocommunity setMeHere
com2sec local     localhost           public
group MyRWGroup v1         local
group MyRWGroup v2c        local
group MyRWGroup usm        local
view all    included  .1                               80
access MyRWGroup ""      any       noauth    exact  all    all    none

com2sec notConfigUser  default       mrtg
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    systemview    included  .1                               80
access  notConfigGroup ""      any       noauth    exact  systemview none none

syslocation Mumbai, IN (VSNL LB3)
syscontact Vivek Gite <alert.client22@route.nixcraft.in>

See snmpd.conf(5) man page for details. Edit /etc/default/snmpd, enter:
# /etc/default/snmpd
Update it as follows:

# This file controls the activity of snmpd and snmptrapd
 
# MIB directories.  /usr/share/snmp/mibs is the default, but
# including it here avoids some strange problems.
export MIBDIRS=/usr/share/snmp/mibs
 
# snmpd control (yes means start daemon).
SNMPDRUN=yes
 
# snmpd options (use syslog, close stdin/out/err).
# replace 204.x.y.z with your public IP 
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1 204.x.y.z'
 
# snmptrapd control (yes means start daemon).  As of net-snmp version
# 5.0, master agentx support must be enabled in snmpd before snmptrapd
# can be run.  See snmpd.conf(5) for how to do this.
TRAPDRUN=no
 
# snmptrapd options (use syslog).
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
 
# create symlink on Debian legacy location to official RFC path
SNMPDCOMPAT=yes

Restart Snmpd Service

Type the following command:
# /etc/init.d/snmpd restart
Sample outputs:

Restarting network management services: snmpd.

Firewall Configuration

Here is a sample firewall config file:

#!/bin/sh
 
# set shell vars
PUB_IF="eth0"
SNMPD_CLIENT="85.x.y.z"
SNMPD_SERVER="203.a.b.c"
 
IPT="/sbin/iptables"
LO_IF="lo0"
 
# DROP and close everything all incoming traffic
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
 
# Allow Full Outgoing connection but no incoming stuff by default
$IPT -A INPUT -i ${PUB_IF} -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -o ${PUB_IF} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
# Unlimited lo access
$IPT -A INPUT -i ${LO_IF} -j ACCEPT
$IPT -A OUTPUT -o ${LO_IF} -j ACCEPT
 
 
### Open port 161 ###
$IPT -A INPUT -i ${PUB_IF} -s ${SNMPD_CLIENT} -d ${SNMPD_SERVER} -p udp --dport 161 -j ACCEPT
 
### rest of iptables goes here ###

Test It

From local or remote system type the following command:
# snmpwalk -v 1 -c mrtg 204.x.y.z IP-MIB::ipAdEntIfIndex
Sample outputs:

IP-MIB::ipAdEntIfIndex.10.20.110.2 = INTEGER: 2
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.204.xx.yy.zz = INTEGER: 3

Refernces:

  1. man pages – iptables, snmpd, snmpd.conf, apt-get
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallCentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
21 comments… add one
  • Philippe Petrinko Feb 2, 2010 @ 12:09

    Nice topic,
    Title typo: Debain => Debian

  • 🐧 nixCraft Feb 2, 2010 @ 13:40

    @Philippe,

    Thank you.

  • Keith M Apr 21, 2010 @ 2:31

    Great post, easy steps, was up in minutes. Thanks Vivek!

  • antonio Nov 22, 2010 @ 7:49

    works great, thanks

  • Johnny Dec 17, 2010 @ 16:55

    Hi,

    I’m looking to modify the snmpd.conf file so that I receive email notification when a printer toner is low

    SNMPv2-SMI::mib-2.43.18.1.1.8.1.1 = STRING: “The machine has determined that the Toner’s capacity is low. User intervention is required to replace the Toner to avoid an interruption of print service. Printing is available.

    Any ideas how this might be achieved?

    Thanks,
    Johnny

  • Dirck Copeland Jan 13, 2011 @ 18:08

    Is there a SNMP version 3 (secure) for ubuntu?

  • thefix0r Jan 19, 2011 @ 13:02

    doesnt work, I made both my configuration files exactly how you demonstrated and this is what I get
    root@ubuntu:~# /etc/init.d/snmpd restart
    * Restarting network management services: [ OK ]
    root@ubuntu:~# snmpwalk -Os -c mycommunity -v 1 localhost system
    Timeout: No Response from localhost
    root@ubuntu:~#

  • nosebreaker Jan 20, 2011 @ 19:24

    In newer versions of ubuntu snmpd is on localhost only, you have to modify /etc/default/snmpd and on the SNMPDOPTS parameter, remove the 127.0.0.1 parameter. If you use smux (like with nagios), also remove -smux.

  • fayez Jun 30, 2011 @ 16:43

    does any one know how to install snmp throught the configure command and maybe explain a bit about the Export PATH=:$PATH…………
    P.S. I am new at this ..sorry!

    • nido Aug 17, 2011 @ 7:23

      I installed it and it is working ..
      what is the issue that you are facing ?

  • Richard Maynard Jul 26, 2011 @ 11:45

    In squeeze the interface bindings are controlled via /etc/snmp/snmpd.conf not /etc/default/snmpd

    # AGENT BEHAVIOUR
    #

    # Listen for connections from the local system only
    agentAddress udp:127.0.0.1:161
    # Listen for connections on all interfaces (both IPv4 *and* IPv6)
    #agentAddress udp:161,udp6:[::1]:161

  • damien Sep 14, 2011 @ 18:23

    thanks… i passed a long day before finding your site!
    Merci beaucoup!

  • fred Sep 19, 2011 @ 9:20

    Hi,
    SNMP is a great tool, but does exist a way in order to add a user specific OID (modifyng the tree)?
    Ex.: Users logged (as a STRING for the user account)

    Thanks

  • mrinmoy roy Nov 25, 2011 @ 4:17

    Hi All ,

    This is a great site and I got a lot of help through this site …Thank you all …But i have a problem …I install Opennms in windows and installed snmp in ubuntu …My target is that I want to run a mib file …How to create and run a mib file…Please help me ..Thanking you in advance….

  • Mark Thomas May 8, 2012 @ 13:06

    This was very helpful. I striggled (and struggled!) with this for some time. for some reason one of my Ubuntu servers was different on the snmp side or I didn’t follow the same path on this attempt as I did on the first. The Ubunter Server versions were different 10.10 was my first success and 11.10 was the one I was having a problem with.
    The problem was /etc/default/snmpd
    Now along with my other servers this one can now join the ranks of being monitored by Nagios!
    Thanks again.

  • srinivas Aug 8, 2013 @ 14:13

    How can i get gateway using snmp

  • Muharrem May 3, 2014 @ 9:23

    Hello,
    # Snmpwalk-v 1-c mrtg 204.xyz IP-MIB :: ipadentıfındex I command we wrote this in my error message is coming.

    Error: MIB search path: /root/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
    Can not find module (IP-MIB): At line 0 in (none)
    IP-MIB :: ipadentifindex: Unknown Object Identifier

    It’s because I’m new like you wrote the script above, I did not know where and how Run for me I did not do. This error can be caused due from him?

    Can you be helping me in this matter?

  • ati May 8, 2014 @ 6:55

    MIB search path: /root/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
    Cannot find module (IP-MIB): At line 0 in (none)
    IP-MIB::ipAdEntIfIndex: Unknown Object Identifier
    root@atish-ThinkPad-Edge-E530c:~# cat -iptables
    cat: invalid option — ‘i’
    Try `cat –help’ for more information.

  • magik Jul 18, 2014 @ 11:06

    Works great, thank you.

  • hhm Sep 12, 2014 @ 7:17

    I doneonfiguration files (etc/default/snmpd exactly how you demonstrated and snmpd.conf:
    # Listen for connections on all interfaces (both IPv4 *and* IPv6)
    agentAddress udp:161,udp6:[::1]:161

    # sec.name source community
    com2sec local localhost public
    com2sec winet 192.168.1.0/24 puplic

    # sec.model sec.name
    group mygroup v1 winet
    group mygroup v2c winet
    group local v1 local
    group local v2c local

    # incl/excl subtree mask
    view all included .1 80
    view sysView included system

    # context model level prefix read write notify
    access local “” any noauth exact system none all
    access mygroup “” any noauth exact all all all

    sysLocation xyz

    sysContact xxx
    sysServices 72
    # Process Monitoring
    proc mountd
    proc ntalkd 4
    proc sendmail 10 1
    # Disk Monitoring
    disk / 10000
    disk /var 5%
    includeAllDisks 10%
    # System Load
    load 12 10 5
    # ACTIVE MONITORING
    # send SNMPv1 traps
    trapsink localhost public
    # send SNMPv2c traps
    #trap2sink localhost public
    # send SNMPv2c INFORMs
    #informsink localhost public
    # Event MIB – automatically generate alerts
    #
    # Remember to activate the ‘createUser’
    rouser internalUser
    # generate traps on UCD error conditions
    defaultMonitors yes
    # generate traps on linkUp/Down
    linkUpDownNotifications yes
    # AgentX Sub-agents
    #
    # Run as an AgentX master agent
    master agentx
    # Listen for network connections (from localhost)
    # rather than the default named
    #agentXSocket tcp:localhost:705
    but when run snmpwalk :
    $ snmpwalk -v 1 -c public localhost system
    End of MIB
    what i missed on snmpd.conf??

  • Robert Aug 8, 2017 @ 7:14

    Great work, this information help solved my problem, after editing /etc/default/snmpd snmptrapd started collect a traps.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.