[prev in list] [next in list] [prev in thread] [next in thread]
List: lm-sensors
Subject: [lm-sensors] helpful list of starting points on getting lmsensors
From: barrow_dj () yahoo ! com (D ! J ! Barrow)
Date: 2006-10-27 12:20:49
Message-ID: 20061027122050.39829.qmail () web51106 ! mail ! yahoo ! com
[Download RAW message or body]
Collected by a colleague of mine at work.
may be useful in constructing a readme.
/home/mmm/help/snmp
#--ucdsnmp now known as net-snmp (5.)
http://www.net-snmp.org/
~ $ snmpwalk -Cc vlan1 public
system.sysDescr.0 = 5.1.4.70.R03 Service Release, February 16, 2004.
system.sysObjectID.0 = OID: enterprises.6486.800.1.1.2.1.1.1.1
system.sysUpTime.0 = Timeticks: (370339500) 42 days, 20:43:15.00
system.sysContact.0 = Alcatel Internetworking, www.ind.alcatel.com
system.sysName.0 = OMNI7700-THALES
system.sysLocation.0 = THALES-COMPUTERS-Toulon
system.sysServices.0 = 72
interfaces.ifNumber.0 = 76
interfaces.ifTable.ifEntry.ifIndex.1001 = 1001
interfaces.ifTable.ifEntry.ifIndex.1002 = 1002
...
takes several minutes. See snmpcmd(1) for all options.
can also walk cetia:
snmpwalk -Cc cetia public
snmpwalk localhost public
snmpget
Scalars must have oid ending 0.
#--commands
http://www.net-snmp.org/tutorial/tutorial-5/commands/index.html
1. snmptranslate: learning about the MIB tree.
2. snmpget: retrieving data from a host.
3. snmpgetnext: retrieving unknown indexed data.
4. snmpwalk: retrieving lots of data at once!
5. snmptable: displaying table.
6. snmpset: peforming write operations.
7. snmptrap: Sending and receiving traps, and acting upon them.
1. Sending and receiving SNMPv3 TRAPs and INFORMs
8. Common command options:
1. Using and loading MIBS
2. SNMPv3 Options
3. Customized Output Formats
#--snmpd
demon agent. gathers data locally, replies to requests for data.
#--snmptrapd
demon listens for incoming traps. logs its, sends email, runs script.
#--example code
http://www.net-snmp.org/tutorial/tutorial-5/toolkit/index.html
# Programming a simple application.
# Programming a asynchronous application.
# How to program a mib module to serve information described by an SNMP
MIB, and how to compile it into the net-snmp snmpd agent.
# Compiling a mib module to be used as a dynamically loaded shared object.
# Writing a subagent program to attach to the master SNMP agent.
# Extend the agent using perl and the NetSNMP::agent perl module.
# Letting mib2c generate code for you.
#--snmp traps perl munger
http://www.snmptt.org/docs/snmptt.shtml
SNMP Trap Translator, eg run a script when a trap received by snmptrapd.
#--suse 9
/etc/init.d/snmpd start
#--mrtg
http://www.net-snmp.org/tutorial/tutorial-5/mrtg/index.html
mrtg is useful cos it provides an snmpd.conf to monitor system info and
network use, disk space, free memory,
eg User vs Idle CPU usage
#--simple application
http://www.net-snmp.org/tutorial/tutorial-5/toolkit/index.html
~/snmp/tutorial/
to get a var from a host
snmpdemoapp.c: uses v3 authentication. see DEMO_USE_SNMP_VERSION_3
link with -lsnmp
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
init_snmp("myapp");
struct snmp_session session: address of remote
snmp_sess_init(&session);
session.peername = strdup("remote hostname");
session.version = SNMP_VERSION_1;
session.community = "public";
session.community_len = strlen(session.community);
struct snmp_session *ss;
ss = snmp_open(&session); // socket. if(ss==0) ok
struct snmp_pdu pdu;
pdu = snmp_pdu_create(SNMP_MSG_GET); // empty packet
oid anOID[MAX_OID_LEN]; size_t anOID_len = MAX_OID_LEN;
// eg get system.sysDescr.0: one of these 3:
read_objid(".1.3.6.1.2.1.1.1.0", anOID, &anOID_len);
get_node("sysDescr.0", anOID, &anOID_len);
read_objid("system.sysDescr.0", anOID, &anOID_len);
// as its a get, need to pair null value to oid
snmp_add_null_var(pdu, anOID, anOID_len); // copy to pdu
struct snmp_pdu *response;
status = snmp_synch_response(ss, pdu, &response); // send it. wait reply
if (status == STAT_SUCCESS)
if(response->errstat == SNMP_ERR_NOERROR) // ok
else snmp_errstring(response->errstat))
else snmp_sess_perror("snmpget", ss);
if ok
struct variable_list *vars;
for(vars = response->variables; vars; vars = vars->next_variable)
print_variable(vars->name, vars->name_length, vars);
if (vars->type == ASN_OCTET_STR)
char *sp = malloc(1 + vars->val_len);
memcpy(sp, vars->val.string, vars->val_len);
sp[vars->val_len] = '\0';
snmp_free_pdu(response); snmp_close(ss);
#--writing a MIB
http://www.simpleweb.org/ietf/rfcs/rfcbytopic.html
Structure of Management Information Version 2 (SMIv2)
http://tools.ietf.org/html/rfc2578
Textual Conventions for .. SNMPv2
rfc1903.txt
Concise MIB definitions
http://www.simpleweb.org/ietf/rfcs/complete/rfc1212.txt
Structure and Identification of Management Information for TCP/IP-based ..
http://www.simpleweb.org/ietf/rfcs/complete/rfc1155.txt
ASN.1
http://en.wikipedia.org/wiki/Abstract_syntax_notation
http://www.columbia.edu/~ariel/ssleay/layman.html
Not all basic types of ASN.1 are allowed in MIBs. Principally
INTEGER,OBJECT IDENTIFIER,OCTET STRING,
built up with SEQUENCE and SEQUENCE OF.
In particular, no floating point!
Whitespace ignored. -- comment until -- or eol.
"string of ascii only" can have \n\r.
'01010000'b binary (multiple of 8)
'ffaabb00'h hex (multiple of 2)
Objects are in groups. The whole of a group must be implemented.
If an object class can have multiple instances, need to declare a table.
Each column is a class attribute. Use <~20 columns so can fit in a pdu.
macro call:
<descriptor> <macro> <clauses> ::= <value>
where descriptor starts lowercase, best <32chars, no -.
partial entry:
mynameforobject OBJECT-TYPE
SYNTAX INTEGER
UNITS "RMS Volts"
MAX-ACCESS read-write
STATUS current <-- as opposed to obsolete, deprecated
DESCRIPTION "blah blah"
::= { parentname 1 } <-- oid, parent plus new subindex 1, 2,...
if an entry is like an enum, list the possible values, 0 is not allowed!
SYNTAX INTEGER { disabled(1), enabled(2), muted(3) }
SYNTAX INTEGER (1..2147483647)
can add info on how to print, if integer value:
DISPLAY-HINT "d"
format is either "x" "o" "b" for hex octal binary, or "d-<shift>" where
shift is number of decimal places to shift, eg d-3 => 1234 prints as 1.234
For OCTET STRING, format is <repeat><bytes>{xdoa}[<char>]<fillchar>
For a string value, of some max len 32 say:
SYNTAX DisplayString (SIZE (0..31)) <--ascii
SYNTAX OCTET STRING (SIZE(12)) <--binary data
SYNTAX BITS ?
SYNTAX TimeTicks <--time in secs*100 since some epoch
SYNTAX Gauge <--non-negative with some fixed max
SYNTAX NetworkAddress <--IP
SYNTAX PhysAddress <--mac
SYNTAX Counter <--non-negative monotonic increasing with wrap
SYNTAX Counter64 <--64 bits
SYNTAX OBJECT IDENTIFIER <--an oid?
lists:
SYNTAX SEQUENCE { <type1>, ..., <typeN> }
tables:
SYNTAX SEQUENCE OF <entry>
rfc1903 talks of TEXTUAL-CONVENTION macro to allow you to create new type
of thing that says how to display it too. Eg DateAndTime, TruthValue.
Hundredths ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d-2"
SYNTAX INTEGER (0..10000)
start with example rfc1628 UPS-MIB
wget http://www.ietf.org/rfc/rfc1628.txt
run smistrip on it
or look for mibs on http://www.simpleweb.org/ietf/mibs/
http://www.mibsearch.com/
(pay: http://www.mibdepot.com/index.shtml)
see my /home/mmm/snmp/RACK-MIB.txt based on UPS-MIB
Add your mib to snmp.conf
mibs +MY-MIB
Put your mib in the search path: $HOME/.snmp/mibs /usr/share/snmp/mibs
Check you can find your oid fieldname
snmptranslate -IR MyVoltage
(for testing can use "-m +MY-MIB" cmd args, or export MIBS=+MY-MIB,
and set MIBDIRS search path)
#--mib2c: MFD: MIBs For Dummies
converts a mib description to prototype C files to implement an agent.
~/snmp/tutorial/
http://www.net-snmp.org/tutorial/tutorial-5/toolkit/mfd/if-mib/ifTable/index.html
tutorial using predefined ifTable oid.
mib2c-update can update your app when you change your mib later.
You need to
. write a mib
. generate code with mib2c on toplevel node
. Implement a netsnmp_container for data access
. Implement GET request functions
. Implement SET request functions
You can run your agent as a subagent of main snmp (using AgentX),
or compile as dynamic loadable module, or compile with main snmp src.
mib2c -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][q][-S VAR=VAL] MIBNODE
using a configfile:
mib2c.scalar.conf <-your fn called for each get
mib2c.int_watch.conf <-tie vars to scalars, no sideeffect
mib2c.iterate.conf <-table
mib2c.create-dataset.conf <-table no side effect to set
mib2c.array-user.conf <-table index direct to data, but sideeffect
mib2c.column_defines.conf <-generate defines for columns
mib2c.column_enums.conf
Software generated for agent has 4 contexts or structs:
User Context. your handle
MIB context. hold mib index for row
Data Context. data needed to get/set a value.
Row Request Context. groups the other 3.
netsnmp_container interfaces to your data store.
either: first request for table calls cache_load(netsnmp_container)
later requests use cached values for a time
or: any request, calls get_next() repeatedly loops over all items.
or: you wrap a netsnmp_container around your existing data fetch
full snmp agent api:
http://www.net-snmp.org/dev/agent/group__handler.html
On qemu, need to install
gw1:/data/RPMS-RHEL4-U3/RedHat/RPMS/net-snmp-perl-5.1.2-11.EL4.6.i386.rpm
#++++ --example agent with no side effect. get/set integer var--
http://www.net-snmp.org/dev/agent/scalar__int_8c-example.html
file: myscalar_int.c
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
static int example1 = 42; /* default value */
void init_myscalar_int(void){ // function name must match init_FILENAME() !!
oid my_registration_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 2, 1, 1, 0 };
netsnmp_register_int_instance("my example int variable",
my_registration_oid,
OID_LENGTH(my_registration_oid),
&example1, NULL);
}
#--
http://www.nagiosexchange.org/Demosites.138.0.html?&tx_netnagext_pi1%5Bowner%5D=JdYidMBHR1QW3MIdPHvnyrSDzMJpq9fPSYzU5UfpU3Q%3D
#--
http://www.net-snmp.org/tutorial/tutorial-5/index.html
http://www.net-snmp.org/docs/FAQ.html
#--monitor apache internals
http://freshmeat.net/projects/mod-apache-snmp/
#--perl
http://snmp-info.sourceforge.net/
SNMP::Info gives an object oriented interface to information obtained
through SNMP
#--
http://freshmeat.net/projects/braa/
Braa is a tool for making SNMP queries.
http://sourceforge.net/projects/snarl-snmp
#--standard mibs http://www.ietf.org/rfc/rfc2737.txt
IF-MIB 2233 The Interfaces Group MIB using SMIv2
Entity MIB rfc2737 for many of a kind?
MIBII 1213 for Network Management of TCP/IP-based internets
EtherLike-MIB 2665
IGMP-MIB 2993 Architectural Implications of NAT
RMON-MIB 1757 Remote Network Monitoring
#--example MIBs listed by cisco for a product:
Standard MIBs
? IF-MIB (RFC-2233)
? ENTITY-MIB (RFC-2737)
? MIBII (RFC1213)
? EtherLike-MIB (RFC-2665)
? IGMP-MIB (RFC-2993)
? RMON-MIB (RFC-1757)
Expression MIBs SNMPv2-SMI
? SNMPv2-TC
? SNMPv2-MIB
? IANAifType-MIB
Simple Network Management Protocol (SNMP) v3 MIBs
? SNMP-FRAMEWORK-MIB (RFC-2571)
? SNMP-MPD-MIB (RFC-2572)
? SNMP-NOTIFICATION-MIB (RFC-2573)
? SNMP-TARGET-MIB (RFC-2573)
? SNMP-USM-MIB (RFC-2574)
? SNMP-VACM-MIB (RFC-2575)
DOCSIS? and EuroDOCSIS MIB
? DOCS-IF-MIB (v2 Rev04)
? DOCS-CABLE-DEVICE-MIB (RFC-2669)
? DOCS-BPI-PLUS-MIB (Rev 5)
? DOCS-QOS-MIB (Rev 4)
? DOCS-CABLE-DEVICE-TRAP-MIB
? DOCS-SUBMGT-MIB (Rev 2)
Cisco DOCSIS MIBs
? CISCO-CABLE-WIDEBAND-MIB
? CISCO-DOCS-EXT-MIB
? CISCO-DOCS-REMOTE-QUERY-MIB
? CISCO-DOCS-QOS-EXT-MIB
? CISCO-CABLE-SPECTRUM-MIB
? CISCO-CABLE-AVAILABILITY-MIB
? CISCO-DOCS-EXT-CAPABILITY-MIB
Cisco Generic MIBs
? CISCO-SYSLOG-MIB
? CISCO-SMI-MIB
? CISCO-TC-MIB
? CISCO-PRODUCTS-MIB
? CISCO-FLASH-MIB
? CISCO-CONFIG-MAN-MIB
? CISCO-CONFIG-COPY-MIB
? CISCO-MEMORY-POOL-MIB
? CISCO-BULK-FILE-MIB
? CISCO-SONET-MIB
? CISCO-TCP-MIB
? CISCO-RTTMON-MIB
? CISCO-FTP-CLENT-MIB
? CISCO-IPMROUTE-MIB
? CISCO-QUEUE-MIB
? CISCO-IMAGE-MIB
? CISCO-ENVMON-MIB
? CISCO-ENTITY-VENDORTYPE-OID-MIB
? CISCO-PRODUCTS-MIB
#--pmp6
rpm -qi net-snmp
Version : 5.1.2
/usr/share/snmp/mibs/UCD-SNMP-MIB.txt
/usr/share/snmp/mibs/SNMP-COMMUNITY-MIB.txt
/usr/share/snmp/mibs/IP-MIB.txt
/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt
/usr/share/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt
/usr/share/snmp/mibs/HOST-RESOURCES-TYPES.txt
/usr/share/snmp/mibs/DISMAN-SCRIPT-MIB.txt
/usr/share/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
/usr/share/snmp/mibs/SNMP-TARGET-MIB.txt
/usr/share/snmp/mibs/IPV6-UDP-MIB.txt
/usr/share/snmp/mibs/HCNUM-TC.txt
/usr/share/snmp/mibs/SNMPv2-TM.txt
/usr/share/snmp/mibs/LM-SENSORS-MIB.txt
/usr/share/snmp/mibs/IPV6-TCP-MIB.txt
/usr/share/snmp/mibs/IPV6-MIB.txt
/usr/share/snmp/mibs/SNMP-FRAMEWORK-MIB.txt
/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt
/usr/share/snmp/mibs/IP-FORWARD-MIB.txt
/usr/share/snmp/mibs/RMON-MIB.txt
/usr/share/snmp/mibs/IANAifType-MIB.txt
/usr/share/snmp/mibs/INET-ADDRESS-MIB.txt
/usr/share/snmp/mibs/SNMPv2-TC.txt
/usr/share/snmp/mibs/RFC-1215.txt
/usr/share/snmp/mibs/SNMP-PROXY-MIB.txt
/usr/share/snmp/mibs/IF-INVERTED-STACK-MIB.txt
/usr/share/snmp/mibs/NET-SNMP-TC.txt
/usr/share/snmp/mibs/SMUX-MIB.txt
/usr/share/snmp/mibs/SNMPv2-CONF.txt
/usr/share/snmp/mibs/UDP-MIB.txt
/usr/share/snmp/mibs/NOTIFICATION-LOG-MIB.txt
/usr/share/snmp/mibs/RFC1155-SMI.txt
/usr/share/snmp/mibs/IPV6-ICMP-MIB.txt
/usr/share/snmp/mibs/UCD-IPFWACC-MIB.txt
/usr/share/snmp/mibs/IF-MIB.txt
/usr/share/snmp/mibs/IPV6-TC.txt
/usr/share/snmp/mibs/SNMP-NOTIFICATION-MIB.txt
/usr/share/snmp/mibs/SNMP-USM-AES-MIB.txt
/usr/share/snmp/mibs/NET-SNMP-MIB.txt
/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
/usr/share/snmp/mibs/UCD-DEMO-MIB.txt
/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt
/usr/share/snmp/mibs/TCP-MIB.txt
/usr/share/snmp/mibs/SNMPv2-MIB.txt
/usr/share/snmp/mibs/IANA-LANGUAGE-MIB.txt
/usr/share/snmp/mibs/AGENTX-MIB.txt
/usr/share/snmp/mibs/EtherLike-MIB.txt
/usr/share/snmp/mibs/UCD-DLMOD-MIB.txt
/usr/share/snmp/mibs/SNMP-MPD-MIB.txt
/usr/share/snmp/mibs/UCD-DISKIO-MIB.txt
/usr/share/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
/usr/share/snmp/mibs/SNMPv2-SMI.txt
/usr/share/snmp/mibs/RFC1213-MIB.txt
grep -i temperature /usr/share/snmp/mibs/*
/usr/share/snmp/mibs/LM-SENSORS-MIB.txt
# vva has changed
PMP6/pmp-base-config/pmp-base-config/usr/share/powermp/etc/snmp/snmpd.conf
so community "public" is read-only?
added systemview.
#diff -U1 /var/pmp-backup/snmpd.conf.20060719-083424 /etc/snmp/snmpd.conf
+# laTable
+view systemview included .1.3.6.1.4.1.2021.10
+# systemStats
+view systemview included .1.3.6.1.4.1.2021.11
-syslocation Unknown (edit /etc/snmp/snmpd.conf)
-syscontact Root <root at localhost> (configure /etc/snmp/snmp.local.conf)
+syslocation PowerMP Rack
+syscontact Root <root at powermp>
# ls -l /etc/snmp/snmpd.conf /var/net-snmp/snmpd.conf \
/var/pmp-backup/snmpd.conf.20060719-083424
/usr/share/powermp/etc/snmp/snmpd.conf
-rw-r--r-- 1 root root 18646 Jul 19 08:34 /etc/snmp/snmpd.conf
-rw-r--r-- 1 root root 18646 Jul 5 15:30 /usr/share/powermp/etc/snmp/snmpd.conf
got copied to above.
-rw-r--r-- 1 root root 18579 Jul 19 08:34 /var/pmp-backup/snmpd.conf.20060719-083424
-rw------- 1 root root 661 Aug 16 18:05 /var/net-snmp/snmpd.conf
created by demon. ignore.
#--man snmpd.conf
EXTENSIBLE-MIB
Net-SNMP agent reports via queries to the 1.3.6.1.4.1.2021 section of the MIB.
All below this OID has structure:
.1 -- index. table's index numbers for each of the DIRECTIVES below.
.2 -- name. name of given entry. ought to be unique
.100 -- errorFlag. int 1 if entry in error
.101 -- errorMsg. DISPLAY-STRING describing error if 1.
.102 -- errorFix. if 1 and errorFlag==1 exec the program named in config.h
DIRECTIVES
proc NAME [MAX [MIN]]
if ps -e dont show process NAME, then set .100=1 and set .101
procfix NAME PROG ARGS
run this command when .101:=1
exec [MIBNUM] NAME PROG ARGS
run this command and .100:=exitcode .101=first-line-of-stdout.
if MIBNUM (numeric) given, MIBNUM.100.0:=exitcode and
MIBNUM.101.1=stdout-line-1
MIBNUM.101.2=stdout-line-2 etc
execfix NAME PROG ARGS
run when .102:=1
disk PATH [MINSPACE|MINPERCENT%]
if diskspace<min(kb) or min%(%) .100:=1 and .101:=msg
includeAllDisks MINPERCENT%
load MAX1 [MAX5 [MAX15]]
load average 1 5 15 minutes average>max set .100:=1 etc
file FILE [MAXSIZE]
kbytes. 20 files can be monitored.
global errors are in .101.1.100 .101.
SUB-AGENTS
AGENTX
master agentx
AgentXSocket addr
listen address. default /var/agentx/master. eg localhost:705
AgentXTimeout timeout. default 1 second
AgentXRetries retries. default 5
SMUX
DYNAMICALLY LOADABLE MODULES
dlmod NAME FILENAME
expects to find in abs file FILENAME a routine init_NAME
compile FILENAME as .so -fPIC -shared
for debug try launch: snmpd -f -L -Ddlmod,<NAME>
ACCESS CONTROL
rouser USER [noauth|auth|priv [OID]]
rwuser ditto
wrappers for group, access, and view directives
rocommunity COMMUNITY [SOURCE [OID]]
rwcommunity ditto
wrappers for com2sec, group, access, and view
com2sec NAME SOURCE COMMUNITY
source/community to security name mapping. first matching entry used.
SOURCE: hostname, subnet (IP/MASK or IP/BITS), "default"
group NAME MODEL SECURITY
securitymodel/securityname to group map.
MODEL: v1, v2c, usm
access NAME CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY
map group/security model/security level to a view.
MODEL: any, v1, v2c, usm
LEVEL: noauth, auth, priv
PREFX: exact or prefix. match of CONTEXT against incoming pdu
READ, WRITE and NOTIFY are views
view NAME TYPE SUBTREE [MASK]
define a view. can repeat on same name.
TYPE included, excluded
MASK hexoctet.hexoctet... or hexoctet:hexoctet:...
bitmask to apply bit by bit from left to each oid number (eg ... .1 80)
IPv6 version: com2sec6 rocommunity6 rwcommunity6
example: from localhost only, rw all, community name: powermp
com2sec mylocal localhost powermp
group myrwgroup any mylocal
view all included .1 80
access myrwgroup "" any noauth 0 mylocal mylocal mylocal
example: readonly community: public
com2sec notConfigUser default public
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
access MyRWGroup "" any noauth 0 all all all
DISMAN-EVENT-MIB
for sending traps on errors. buggy. generated once ("edge not level").
agentSecName NAME
a rouser name to be used for scanning for trap event.
monitor [OPTIONS] NAME EXPRESSION
monitor yourself.
EXPRESSION: oid !=, ==, <, <=, >, >= integer
for -t?: oid low high
NAME your arbitrary name
-t: threshold ie trap if value>high or value<low.
-r FREQUENCY: each F seconds. default 600
-u SECNAME: a rouser name to be used for scanning for trap event.
-o OID: include this value in trap call
-e EVENTNAME: name of notificationEvent
notificationEvent NAME NOTIFICATIONOID [[-w] OID_OBJECT ...]
event to attach to a monitor -e NAME.
example:
rouser me
monitor -u me -o sysUpTime.0 -o hrSWRunName "biggie" hrSWRunPerfMem > 10000
check hrSWRunPerfTable of running processes and send out trap for any
using over 10M of memory.
snmptrapd would produce eg:
2002-04-05 13:33:53 localhost.localdomain [udp:127.0.0.1:32931]:sysUpTimeInstance \
= Timeticks: (1629) 0:00:16.29 snmpTrapOID.0 = OID: mteTriggerFired mteHotTrigger \
= biggie mteHotTargetName = mteHotContextName = mteHotOID = OID: hrSWRunPer \
fMem.1968 mteHotValue = 28564 hrSWRunName.1968 = "xemacs"
SETTING SYSTEM INFORMATION
syslocation STRING
syscontact STRING
sysname STRING
these objects usually rw. setting them makes them ro.
PASS-THROUGH CONTROL
pass MIBOID EXEC
#--man snmp.conf
/etc/snmp/snmp.conf -- not found on pmp6
mibdirs [+]mib-dir:...
replace or add to PATH to look for mibs
mibs [+]mib-token:... or ALL
mibfile file
#--snmpd
-c configfile
-C no default config
-d dump hex packets
-Dtoken debug print for token. -D for all.
-V Symbolically dump SNMP transactions
-f dont fork
-g gid run as group
-u uid
-Lf<file> log to file
-r dont need to be root
-X run as AgentX subagent
[udp|tcp:]hostname[:port] listen here instead of udp:161
[unix:]pathname
#---/usr/share/snmp/mibs/
#--man snmptrapd
receives and logs SNMP TRAPs
#--snmpwalk
If you are unsure of the correct row number within a specific table,
snmpwalk -v 2c -c public -m ALL localhost prNames
-m MIBLIST
-c community
-v 1 | 2c | 3
-d Dump packets
#--dump configured mibs. doesnt query snmp, just reads config files
snmptranslate oid
-Td Print full details of the specified OID.
-Tp Print a graphical tree, rooted at the specified OID.
-Ta Dump the loaded MIB in a trivial form.
-Tl Dump a labeled form of all objects.
-To Dump a numeric form of all objects.
-Ts Dump a symbolic form of all objects.
-Tt Dump a tree form of the loaded MIBs (mostly useful for
-On print numeric oid
-IR
snmptranslate -Tl | pg
#
.iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).ucdavis(2021).ucdExperimental(13).lmSensors(16).lmSensorsMIB(1)
snmptranslate -Tos
#.1.3.6.1.4.1.2021.13.16
#.iso.org.dod.internet.private.enterprises.ucdavis.ucdExperimental.lmSensors
#---------------------------------------------------------------------
#--play. try get sensors to be read
# need to scan and init sensors:
sensors-detect # perl script, writes file: /etc/sysconfig/lm_sensors
# on pentxm(-1) get in this file (plus comments)
cat >>/etc/sysconfig/lm_sensors <<\!
# Generated by sensors-detect on Thu Aug 17 16:22:48 2006
MODULE_0=i2c-i801
MODULE_1=adm1021
!
# seems to be running by default:
chkconfig --list lm_sensors
lm_sensors 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ sensors
max1617-i2c-0-29
Adapter: SMBus I801 adapter at 1880
Board: +34?C (low = -55?C, high = +127?C)
CPU: +30?C (low = -55?C, high = +127?C)
# need to permit access to default view else get:
# LM-SENSORS-MIB::lmSensors = No more variables left in this MIB View...
# lmSensors is .1.3.6.1.4.1.2021.13.16
echo 'view systemview included .1.3.6.1.4.1.2021.13' >mysnmpd.conf
snmpd -f -r -D -V -c mysnmpd.conf udp:16000 >log 2>&1 &
tail -f log &
# snmpwalk -d -v 2c -c public -m ALL udp:16000 lmSensors
snmpwalk -v 2c -c public -m ALL udp:16000 lmSensors
node1:~ $ snmpwalk -v 2c -c public -m ALL udp:16000 lmSensors
LM-SENSORS-MIB::lmMiscSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmMiscSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmMiscSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmMiscSensorsDevice.1 = STRING: Board
LM-SENSORS-MIB::lmMiscSensorsDevice.2 = STRING: CPU
LM-SENSORS-MIB::lmMiscSensorsDevice.3 = STRING: alarms
LM-SENSORS-MIB::lmMiscSensorsValue.1 = Gauge32: 34000
LM-SENSORS-MIB::lmMiscSensorsValue.2 = Gauge32: 31000
LM-SENSORS-MIB::lmMiscSensorsValue.3 = Gauge32: 128000
LM-SENSORS-MIB::lmSensors = No more variables left in this MIB View (It is past the \
end of the MIB tree)
# load some library. dont need for lmsensors, compiled in
if false
then echo dlmod sensors /usr/lib/libsensors.so.3 >~/snmpd.conf
snmpd -c ~/snmpd.conf -f -r -D -V udp:16000 >log 2>&1 &
# dlmod: dlmod_load_module sensors: /usr/lib/libsensors.so.3
# dlsym failed: can't find 'init_sensors'
else ldd /usr/sbin/snmpd|grep sensors
# libsensors.so.3 => /usr/lib/libsensors.so.3 (0x00111000)
fi
# list compiled in options and mibs
snmpd -Dmib_init -H 2>&1 | pg
# mib_init: initializing: lmSensors
#--enterprise private numbers
http://dragon/phpwiki/index.php/SNMP
http://www.iana.org/assignments/enterprise-numbers (2Mbytes)
ask for new id:
http://www.iana.org/cgi-bin/enterprise.pl
20885
Thales Computers
Gerard Cristau
gcr at thalescomputers.fr
D.J. Barrow Linux kernel developer
email: dj_barrow at ariasoft.ie
email(work) denis.barrow at thalescomputers.fr
Work: +33-498-163412
Home: +353-22-47196.
Mobile (IRL) +353-(0)86 1715438
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic