Simple Network Management Protocol (SNMP) is used to manage devices on an Internet Protocol (IP) network. You can remotely monitor and manage network devices that support SNMP, such as servers, routers, switches, printers, surveillance cameras, and so on. This is done from a management host (SNMP manager).
SNMP is designed to have minimum impact on the managed devices and network traffic. It is generally very stable and will continue working even when other network applications fail. This makes it a great tool to monitor network performance and hardware status (such as CPU and memory usage on a server), to detect failures and unauthorised access, and even to perform simple configuration of network devices.
For example, you can monitor your server’s temperature using SNMP, which will enable it to avoid severe overheating. You can also monitor the bandwidth on each port of a network switch to analyse the workloads. The capabilities are limited only by the amount of data that a device was designed to provide through SNMP.
When an SNMP manager sends a request, the value is retrieved from the management information base (MIB) on the device. MIB is a database of entities managed by an SNMP, such as the version of software running on the device, the amount of free disk space, temperature, and so on. You retrieve an MIB object from an SNMP device by sending a Get message from the SNMP manager. The device returns either the requested value or an error that enables you to understand why the value is irretrievable (for example, the server is not reachable).
SNMP references each MIB object using an object identifier (OID). The OID defines the location of the object in the MIB database. The OID consists of numeric or text sub-identifiers separated with periods. A value that represents the current state of the object is associated with each OID.
SNMP uses a community string to authenticate requests. This is a type of password shared by SNMP managers and devices. You configure the managers and devices as members of one SNMP community. The community string is transmitted with the request as clear text, and enables SNMP devices to accept or reject requests based on their lists of acceptable community names.