In a previous blog post, we dove into the wayback machine and looked at Simple Network Management Protocol (SNMP) Traps – a technology that allows devices (including network devices) to send alerts when specific thresholds have been reached. In this post, we are going to be a bit more forward looking and discuss some technologies that will, in theory, replace SNMP.
It is important to keep in mind that the demise of SNMP has been predicted for years (actually decades). A quick Google search for “demise of snmp” shows links from as far back as 2006 on the first page and numerous links discussing why SNMP is either dead or dying:
This leads to some very interesting questions:
Let’s look at each of these questions in turn.
The short answer to this question is no. People have been predicting the demise of SNMP for years and it has never come to fruition. SNMP has several things going for it that make it incredibly hard to replace:
While there are numerous alternatives to SNMP, the reality is that SNMP is here to stay for the foreseeable future. Even if organizations start moving to some alternative technology, they are still going to have legacy devices in their environment that require SNMP (or lack support for a new technology). That (perhaps more than anything else) has helped keep SNMP around for so long.
Over the past decades, numerous alternatives to SNMP have been proposed, introduced, developed and deployed. For good or for bad (see previous bullet), almost none of them have made any significant sort of headway into replacing SNMP.
Before we discuss the alternatives, it is important to understand that there are at least three distinct types of devices that need to be monitored. These devices are servers (that can include systems such as Linux, Microsoft Windows, MacOS, BSD Unix and more), network devices (such as routers, switches, firewalls, etc.), and Internet of Things (IoT) devices (such as IP cameras, motion detectors, vehicle sensors, etc.). Across these three segments (and this discussion could easily be broken out into different categories) SNMP is widely used for everything except Microsoft products. These different categories come into play because right now there is no one alternative that looks like it will be the replacement for all categories.
The first alternative to discuss, and the one that has arguably been most successful is Windows Management Instrumentation (WMI) (and its various children) from Microsoft. SNMP was included with early versions of Windows, but due to concerns around reliability, Microsoft deprecated SNMP in Windows 2000 and stopped installing it by default after that (it is still available for installation manually however).
Instead of using SNMP, Microsoft decided to take an alternative approach. This approach is based on standard technologies however it is entirely and exclusively designed to work with Microsoft Windows, significantly limiting its reach. One could make a decent argument that WMI (and its successors such as Windows Management Infrastructure (MI)) really is successful, because Microsoft Windows is successful. Nothing inherently bad about that, but it does mean that at least one other standard is needed since WMI and MI are Microsoft centric. Each has a very limited reach beyond Microsoft Windows environments.
Beyond Microsoft Windows environments there are numerous other agent-based solutions that are looking to replace SNMP on the server-side of data generation. These include technologies like OpenTelemetry, Prometheus, Telegraf, Collectd and more. Each of these leverages agents to aggregate data, which is then forwarded to collectors. There are pluses and minuses to this sort of an approach. Pluses include:
Minuses include:
On the other side of things, we have technologies such as network devices and IoT devices. Each of these still needs to be monitored (with or without SNMP). Unfortunately, the just discussed batch of agent-based solutions are not well suited for these types of devices. The agents often require more resources than are available, operating systems that are not available, or other technologies that will just increase the cost of devices (while many devices do run on Linux, they have limited memory and CPU available that will limit the ability of these agents to work – not to mention that each agent will need to be custom built for each individual device type and version).
One technology that is continuing to be pushed as an alternative to SNMP is Streaming Telemetry. Streaming Telemetry takes a different approach than SNMP. Whereas SNMP polls each device (i.e. sends a request to each device and waits for a response with the requested data) streaming telemetry sends data continuously and collectors effectively subscribe to the data they want/need. As with everything, there are pluses and minuses to this approach. Some pluses include:
Some minuses include:
Of course, this is discussing servers (whatever operating system they are running) and network devices. We have not even touched on IoT yet. While there is no reason IoT devices couldn’t run some sort of streaming telemetry, there are (of course) numerous challenges:
As with many things, there is no easy answer to this question. SNMP’s days as the primary (and arguably, sole) means of acquiring network performance metrics seem to be nearing their end. It seems likely that alternatives will continue to gain traction over the next several years. However, it seems equally unlikely that anything will fully supplant SNMP for at least the next decade.
There are at least two parts to the problem here:
So, while there are some vendors out there who are pushing very heavily on the concept of streaming telemetry, the reality is that the technology is not quite ready for prime time yet. However, because this is an up and coming technology and is likely to become a major part of network infrastructure monitoring in the future, a few things to keep in mind/questions to ask include:
Netreo is focused on providing the best infrastructure monitoring solution on the planet. We provide robust support for the most commonly used and desired methods of acquiring operational and performance data available today. This includes (but is not limited to) methods such as SNMP, WMI, WinRM, API’s, SSH, PowerShell and our own agent. We strive to use the best available method for each device type. We also look to support more than one method of data collection for a given device. For example, you can pull data from a basic Linux server using SNMP, SSH or our agent.
As part of providing the best solution possible, we keep a careful watch on new technologies as they arise. We combine this with careful listening to our customers and prospects to identify areas requiring further investigation on our part. During our investigations, we always ask ourselves the following questions:
As we look at these (and other) questions in relation to new technology, we make decisions about what standards we should implement that will best allow us to serve our existing and future customers.
Currently, we are investigating technologies such as OpenTelemetry and Kafka to see where they fit within the market and industry. We always map how a new technology would impact our current use cases. As existing and new technologies develop, we look to identify those that best meet the needs of our clients and our business.