Why I cannot disable SNMP check?
I want to add device without SNMP
Why I cannot disable SNMP check?
I have never seen being able to just disable SNMP only. There is an option in the device settings to disable ICMP or SNMP. But im not sure if you can disable SNMP only.
Cannot enable "Don't perform ICMP or SNMP checks?"
There is no such thing as a device without snmp in LibreNMS (at this time).
You can only skip the check when adding. After that it operates as normal.
I understand it. But I mean disable SNMP check for device
I want to check only “Ping” and I don’t want see “Device is Down” in alert list.
Can you make it like on the picture, same like “Disable ICMP Test”
Yeah, that is not possible right now. The inherited code base relies heavily on snmp through-out the code. I don’t think it is a priority for any of the core developers right now. If someone were to contribute this feature, I’m pretty sure it would be welcomed
It has been a commonly request feature. This might help:
Ok! It is sad. But thank you for information
What you could do is add a service ping check (nagios check) on the monitoring device in LibreNMS. Your device wouldn’t show up in the device list though, only in the “Services” tabs on your monitoring device.
My workaround for this is to only alert for devices which are down from an ICMP check i.e.:
%macros.device_down = “1” && %devices.status_reason = “icmp”
Devices still show as down in the LibreNMS UI if an SNMP check fails, but the alert (pick your transport) is only triggered when ICMP checks fail.
I did it. But I do not like when device is “down” in alert list (dashboard)
We are a pure snmp based system, that info in the dashboards is based on that and can’t be changed.
@laf, @murrant - so, I hear there this is a lot of “technical debt” to enable this feature. But what if we just disabled SNMP and all checks for a device altogether and just default it to being up. I.E. if I add an RDS database, there is no SNMP. I don’t care about anything else related to SNMP either. I just want the host to exist so I can use it to associate a service check. So if we short circuit ALL snmp related functions, that should be easier than just disabling the up/down via snmp and leave everything else, or no?
This is quick and dirty, but it works - disabling SNMP, updating the mysql manually to mark the host as “up” and then running a poll, host is still up.
This is only of use if you can enable snmp in the first place to detect the os. If the device doesn’t support it then you’ll get nothing more than a generic device with nothing.
An existing PR handles things in a better way: https://github.com/librenms/librenms/pull/7323
But, that’s exactly what I want - a generic device with nothing. The point is, I have a “Service”, say Amazon RDS. You don’t get a shell, you can’t ping it, you can’t get anything via SNMP. What I CAN do, it add it as a device, and attach service checks to it, and then alert on the service checks, and in the case of mysql and some other service checks, I can still graph it. But it’s not down, and I don’t want a giant list of a bunch of downed devices just because it can’t get snmp or ICMP from them. I service checks on the service itself will still alert me if the service goes down,and so I don’t want to disable alerting on a device altogether.
Device is down due to SNMP:
Here, you can clearly see that the thing I care about, the database, is online and graphing just fine. I want the ability to do this, without messing up my dashboard with false “downs”.
As we utilize many AWS services, it may become a big blocker to have many downed devices throwing off our dashboard, and there is currently no better solution…
I’m personally not a fan of this, it’s a hack to get something in and just isn’t in the nature of what LibreNMS does.
The other PR will at least tidy up the web ui a little and if it goes the way I hope, will allow people to select the actual OS of the device to provide some sane information at least.
That’s fair criticism - my php skill is pretty non-existent so I’m not defending it as some uber awesome solution, but I’d like something rather than nothing. The ideal solution would be to somehow detect, or manually set, something like an AWS service, and then handle it accordingly, but that’s a lot more work. As far as integrating cloudwatch into LibreNMS, you’d need to handle something like this anyway, because if I wanted to add an ELB ( Elastic Load Balancer) instance, or an RDS instance (Relational Database Service), you can’t get ICMP or SNMP from any of them, but you could associate an AWS
InstanceId with a device, and then use that to pull cloudwatch metrics into LibreNMS
Sorry I don’t mean the code is a hack I mean the concept. Just disabling icmp and snmp for a device is the hack part. We do need to support non-snmp based data collection at some stage but this isn’t on the cards from anyone at present.
In the meantime the linked PR seems the best way forward to get non-snmp devices added but leaving the webui largely usable for that device.
@laf - I get ya. If that PR gets accepted while keeping non-snmp as a separate option (as opposed to tied only to the
ping os OS), it should then be relatively simple to add things like
Amazon Relational Database Service and
Amazon Elastic Load Balancer added as non-discoverable OSes that have ICMP and SNMP disabled by default. But, at the end of the day, for ANY devices that you want to use service checks for, even if you are adding
126.96.36.199 as a device so you can create an alert if you can’t access it, it seems that making devices is the best way to do so.
I still don’t see the point of having multiple “icmp only” os. The only data we can retrieve from something we can ping is response time… everything else has to be user supplied, which is very much in opposition of one of the core principals of LibreNMS.
@murrant: well in this case, I want a device without ICMP OR SNMP. I associate service checks with them, which will alert me if the service goes down. I have a majority of devices that will eventually be auto-discovered, but I’d like to consolidate EVERYTHING, which would include things like RDS and ELB. As above, I am using LibreNMS to monitor the Aurora instance that LibreNMS is using for it’s database, but it doesn’t have ICMP or SNMP, so marking it as down for either of those is pointless, while having exist in LibreNMS is not.
Eventually I want to set it up so I take a device, associate an instance id with a device and then have a cloudwatch poller that will do an
aws cloudwatch describe-metrics and use the output combined with instance IDs to add cloudwatch data to LibreNMS for a device.