I use this approach to get the temperatures of my Raspberry Pi
processors remotely.
My snmpd.conf file contains this line:
extend temp /usr/local/bin/snmp_temperature.sh
The shell script it points to is just this:
#!/bin/bash
/bin/sed 's:\([0-9]\{2\}\)\([0-9]\{3\}\):\1.\2:'
/sys/class/thermal/thermal_zone0/temp
If I walk the tree I get this:
$ snmpwalk -v 2c -c secret localhost .1.3.6.1.4.1.8072.1.3
iso.3.6.1.4.1.8072.1.3.2.1.0 = INTEGER: 1
iso.3.6.1.4.1.8072.1.3.2.2.1.2.4.116.101.109.112 = STRING:
"/usr/local/bin/snmp_temperature.sh"
iso.3.6.1.4.1.8072.1.3.2.2.1.3.4.116.101.109.112 = ""
iso.3.6.1.4.1.8072.1.3.2.2.1.4.4.116.101.109.112 = ""
iso.3.6.1.4.1.8072.1.3.2.2.1.5.4.116.101.109.112 = INTEGER: 5
iso.3.6.1.4.1.8072.1.3.2.2.1.6.4.116.101.109.112 = INTEGER: 1
iso.3.6.1.4.1.8072.1.3.2.2.1.7.4.116.101.109.112 = INTEGER: 1
iso.3.6.1.4.1.8072.1.3.2.2.1.20.4.116.101.109.112 = INTEGER: 4
iso.3.6.1.4.1.8072.1.3.2.2.1.21.4.116.101.109.112 = INTEGER: 1
iso.3.6.1.4.1.8072.1.3.2.3.1.1.4.116.101.109.112 = STRING: "54.230"
iso.3.6.1.4.1.8072.1.3.2.3.1.2.4.116.101.109.112 = STRING: "54.230"
iso.3.6.1.4.1.8072.1.3.2.3.1.3.4.116.101.109.112 = INTEGER: 1
iso.3.6.1.4.1.8072.1.3.2.3.1.4.4.116.101.109.112 = INTEGER: 0
iso.3.6.1.4.1.8072.1.3.2.4.1.2.4.116.101.109.112.1 = STRING: "54.230"
The last four OIDs of 116.101.109.112 translates to "temp" as appears in
the extend configuration. The '4' before that I believe marks the
boundary of the offical OID tree (for which the values before it are
documented) and the user defined OID values (the "temp" in this case")
There's also a pass through method that requires a bit more effort on
the scripting side but provides a bit more flexibility.
On 2018-08-10 11:20, Todor Fassl wrote:> Ah, now I am starting to get it.
Post by Todor Fassl via AleIt occurs to me that this is a good approach in general for solving all
kinds of system monitoring problems. Like I once worked for a web
hosting service. We stored info about each account in a file within the
account. But how to get to that info remotely? We considered picking a
port number, inventing our own protocol, and writing a TCP/IP server.
Should have just added it to snmp and used snmp's own security protocols
to protect it. Before that I worked for a company that wrote drivers for
medical scanners. We *did* pick a port number and invent our own
protocol to get status info from the scanner.
The beauty of the thing, besides not re-inventing the wheel, is that
standard tools like nagios could be used to monitor the data.
I'll have to do some research.
You create your own OID table entry. Use the extend or pass-through
capability of snmpd and a shell script to generate an SNMP table or tree
output and then obtain it starting with the base tree
NET-SNMP-EXTEND-MIB::nsExtensions (.1.3.6.1.4.1.8072.1.3)
Post by Todor Fassl via AleWell, I am not too worried about being able to calculate it. What I
cannot figure out is how to get to the numbers remotely.
Post by Jerald Sheets via AleWhy not pull the number of file handles you have: "sysctl fs.file-nr"
and compare it to current open file handles “lost |wc -l” and do a
multi-graph for the metrics. Then, also subtract the two and alert
when you get below whatever threshold you want?
I think you should be able to knock that out in BASH or Perl.
—j
Post by Todor Fassl via AleUltimately, what I want to do is to configure nagios to alert me when
a server is getting low on file handles. There are a couple of
scripts on the nagios web site but they look kind of hokey.
I think all I should have to do is cut/pasete the right SNMP object
identifier into the nagios snmp plugin. But how to find that oid?
_______________________________________________
Ale mailing list
https://mail.ale.org/mailman/listinfo/ale
See JOBS, ANNOUNCE and SCHOOLS lists at
http://mail.ale.org/mailman/listinfo
_______________________________________________
Ale mailing list
https://mail.ale.org/mailman/listinfo/ale
See JOBS, ANNOUNCE and SCHOOLS lists at
http://mail.ale.org/mailman/listinfo