Snmp
De Linuxmemo.
(→Snmp v3) |
(→Snmp v3) |
||
| Ligne 132 : | Ligne 132 : | ||
Debugging | Debugging | ||
-d dump input/output packets in hexadecimal | -d dump input/output packets in hexadecimal | ||
| - | -D TOKEN[,...] turn on debugging output for the specified TOKENs | + | -D TOKEN[,...] turn on debugging output for the specified TOKENs (ALL gives extremely verbose debugging output) |
| - | + | ||
General options | General options | ||
-m MIB[:...] load given list of MIBs (ALL loads everything) | -m MIB[:...] load given list of MIBs (ALL loads everything) | ||
Version du 11 juin 2012 à 17:07
Sommaire |
Le client
- graphique:
tkmib
~/.snmp/tkmibrc
- Ireasoning.com mibbrowser free
http://www.ireasoning.com/downloadmibbrowserfree.php
- console configuration:
/etc/snmp/snmp.conf
#mibs ALL mibs $HOME/.snmp/mibs/hpicfBasic.mib:/var/lib/mibs/ietf/SNMPv2-MIB:/var/lib/mibs/ietf/HOST-RESOURCES-MIB:/var/lib/mibs/ietf/HOST-RESOURCES-TYPES mibdirs /var/lib/mibs/iana:/var/lib/mibs/ietf
Le serveur
configuration:
Le fichier de configuration du serveur est /etc/snmp/snmpd.conf
Les directives:
LCA
- Classique (minimum) v1 et v2c
rocommunity COMMUNITY [SOURCE [OID]] rwcommunity COMMUNITY [SOURCE [OID]]
COMMUNITY est le nom de communauté SOURCE une adresse IP ou de réseau OID restreint l'accès (à cette communauté) pour tout ce qui est en dessous de l'OID.
ou bien
- View-Based Access Control Model (VACM) as defined in RFC 2575 v1 et v2c
- Cette directive spécifie le mappage à partir d'une paire "source/communauté" à un nom de la sécurité.
#com2sec [-Cn CONTEXT] NAME SOURCE COMMUNITY com2sec mynagios 192.168.0.88 public
- Cette directive définit le mappage entre le nom d'un groupe, un numéro de version SNMP, et un nom de sécurité.
#group GROUP {v1|v2c|usm|tsm|ksm} SECNAME
group mynagiosv1 v1 mynagios
group mynagiosv2c v2c mynagios
- Ceci définit la vue.
TYPE est soit inclus ou exclus. MASK est une liste d'octets hexadécimaux séparés par des '.' ou ':'. Le MASQUE par défaut "ff" s'il n'est pas spécifié.
view NAME TYPE SUBTREE [MASK] view cust1 included interfaces.ifTable.ifEntry.ifIndex.1 ff.a0 view cust2 included interfaces.ifTable.ifEntry.ifIndex.2 ff.a0
- Ceci définit les droits d'accès du groupe.
LEVEL est soit "noauth, auth, or priv". PREFX spécifie comment CONTEXTE doit être adapté par rapport au contexte de la requête entrante, soit "exact or prefix". READ, WRITE and NOTIFY specifies the view to be used for GET*, SET and TRAP/INFORM requests (although the NOTIFY view is not currently used). For v1 or v2c access, LEVEL will need to be noauth.
#access GROUP CONTEXT {any|v1|v2c|usm|tsm|ksm} LEVEL PREFX READ WRITE NOTIFY
access cust1 "" any noauth exact all none none
access cust2 "" any noauth exact all none none
Snmp v3
Source: http://blog.debianfr.net/content/configuration-snmpv3-sous-net-snmp
Un utilisateur SNMPv3 est normalement un composé d'un nom de sécurité ou « security name » et de la valeur de l'engineID.
Dans les faits, le terme est abusivement employé pour désigner directement le nom de sécurité.
La configuration d'un utilisateur SNMPv3 fait donc directement référence à un « securityName ».
Il faut également savoir qu'une partie de la configuration ne s'applique qu'à l'utilisateur appelé « Principal ». Les suivants pourront être ensuite créés à l'aide de la commande snmpusm (sous réserve que l'utilisateur « Principal » dispose des privilèges requis en écriture sur la table « usmUserTable »). Afin de composer un parallèle avec les systèmes Unix, ce premier utilisateur sera arbitrairement dénommé « root ».
- fichier de rétention
/usr/local/var/net-snmp/ par défaut en compilant Net-SNMP ; /var/net-snmp/ sous RHEL et dérivées de RedHat ; /var/lib/snmp/ pour Debian et ses dérivées comme Ubuntu.
pour créer ce premier utilisateur, il faut placer la directive « createUser » directement dans le fichier de rétention de données de Net-SNMP et non pas dans le fichier de configuration principal comme c'est l'usage pour les autres directives (c'est écrit dans le manuel).
SYNOPSIS : createUser [-e ENGINEID] username (MD5|SHA) authpassphrase [DES|AES] [privpassphrase] Exemple : createUser root SHA secretsha DES secretdes createUser [-e ENGINEID] username (MD5|SHA) authpassphrase [DES|AES] [privpassphrase] MD5 and SHA are the authentication types to use. DES and AES are the privacy protocols to use. If the privacy passphrase is not specified, it is assumed to be the same as the authentication passphrase. Note that the users created will be useless unless they are also added to the VACM access control tables described above. SHA authentication and DES/AES privacy require OpenSSL to be installed and the agent to be built with OpenSSL support. MD5 authentication may be used without OpenSSL. Warning: the minimum pass phrase length is 8 characters.]
relancer l'agent Net-SNMP.
Principal effet visible le remplacement de la ligne ainsi écrite par une autre débutant par le mot-clé « usmUser ».
- Créer un nouvel utilisateur
snmpusm [OPTIONS] cloneFrom USER CLONEFROM-USER snmpusm -v3 -u root -n "" -l authNoPriv -a MD5 -A setup_passphrase localhost create admin root
Usage: snmpusm [OPTIONS] AGENT COMMAND Version: 5.4.3 Web: http://www.net-snmp.org/ Email: net-snmp-coders@lists.sourceforge.net OPTIONS: -h, --help display this help message -H display configuration file directives understood -v 1|2c|3 specifies SNMP version to use -V, --version display package version number SNMP Version 1 or 2c specific -c COMMUNITY set the community string SNMP Version 3 specific -a PROTOCOL set authentication protocol (MD5|SHA) -A PASSPHRASE set authentication protocol pass phrase -e ENGINE-ID set security engine ID (e.g. 800000020109840301) -E ENGINE-ID set context engine ID (e.g. 800000020109840301) -l LEVEL set security level (noAuthNoPriv|authNoPriv|authPriv) -n CONTEXT set context name (e.g. bridge1) -u USER-NAME set security name (e.g. bert) -x PROTOCOL set privacy protocol (DES|AES) -X PASSPHRASE set privacy protocol pass phrase -Z BOOTS,TIME set destination engine boots/time General communication options -r RETRIES set the number of retries -t TIMEOUT set the request timeout (in seconds) Debugging -d dump input/output packets in hexadecimal -D TOKEN[,...] turn on debugging output for the specified TOKENs (ALL gives extremely verbose debugging output) General options -m MIB[:...] load given list of MIBs (ALL loads everything) -M DIR[:...] look in given list of directories for MIBs -P MIBOPTS Toggle various defaults controlling MIB parsing:
u: allow the use of underlines in MIB symbols c: disallow the use of "--" to terminate comments d: save the DESCRIPTIONs of the MIB objects e: disable errors when MIB symbols conflict w: enable warnings when MIB symbols conflict W: enable detailed warnings when MIB symbols conflict R: replace MIB symbols from latest module
-O OUTOPTS Toggle various defaults controlling output display:
0: print leading 0 for single-digit hex characters a: print all strings in ascii format b: do not break OID indexes down e: print enums numerically E: escape quotes in string indices f: print full OIDs on output n: print OIDs numerically q: quick print for easier parsing Q: quick print with equal-signs s: print only last symbolic element of OID S: print MIB module-id plus last element t: print timeticks unparsed as numeric integers T: print human-readable text along with hex strings u: print OIDs using UCD-style prefix suppression U: don't print units v: print values only (not OID = value) x: print all strings in hex format X: extended index format
-I INOPTS Toggle various defaults controlling input parsing:
b: do best/regex matching to find a MIB node h: don't apply DISPLAY-HINTs r: do not check values for range/type legality R: do random access to OID labels u: top-level OIDs must have '.' prefix (UCD-style) s SUFFIX: Append all textual OIDs with SUFFIX before parsing S PREFIX: Prepend all textual OIDs with PREFIX before parsing
-L LOGOPTS Toggle various defaults controlling logging:
e: log to standard error o: log to standard output n: don't log at all f file: log to the specified file s facility: log to syslog (via the specified facility) (variants) [EON] pri: log to standard error, output or /dev/null for level 'pri' and above [EON] p1-p2: log to standard error, output or /dev/null for levels 'p1' to 'p2' [FS] pri token: log to file/syslog for level 'pri' and above [FS] p1-p2 token: log to file/syslog for levels 'p1' to 'p2'
snmpusm commands: [options] create USER [CLONEFROM-USER] [options] delete USER [options] cloneFrom USER CLONEFROM-USER [options] activate USER [options] deactivate USER [options] [-Ca] [-Cx] changekey [USER] [options] [-Ca] [-Cx] passwd OLD-PASSPHRASE NEW-PASSPHRASE [USER] [options] (-Ca|-Cx) -Ck passwd OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [USER] snmpusm options:
-CE ENGINE-ID Set usmUserEngineID (e.g. 800000020109840301). -Cp STRING Set usmUserPublic value to STRING. -Cx Change the privacy key. -Ca Change the authentication key. -Ck Allows to use localized key (must start with 0x) instead of passphrase.
Exemple de configuration:
This last pair of settings are equivalent to the full VACM definitions: # sec.name source community com2sec sec-public 192.168.0.88 public # sec.model sec.name group mongroup v1 sec-public group mongroup v2c sec-public # incl/excl subtree [mask] view all included .1 view sysView included system # context model level prefix read write notify (unused) access mongroup "" any noauth exact all none none
ou bien
agentAddress udp:161 rocommunity public 192.168.0.88 sysLocation Sitting on the Dock of the Bay sysContact Me <me@example.org> sysServices 72 proc mountd proc ntalkd 4 proc sendmail 10 1 disk / 10000 includeAllDisks 10% load 12 10 5 trapsink localhost public iquerySecName internalUser rouser internalUser defaultMonitors yes linkUpDownNotifications yes extend test1 /bin/echo Hello, world! extend-sh test2 echo Hello, world! ; echo Hi there ; exit 35 master agentx
Les outils
- Vous pouvez voir l'arbre des OID avec:
snmptranslate -Tp
- Scli (paquet)
a collection of SNMP command line management tools
Les mibs
- Où les trouver sur notre système:
/var/lib/mibs/MIB search path $HOME/.snmp/mibs /usr/share/mibs/site /usr/share/snmp/mibs /usr/share/mibs/iana /usr/share/mibs/ietf /usr/share/mibs/netsnmp
- Paquet pour leur install/gestion:
snmp-mibs-downloader Install and manage Management Information Base (MIB) files
- Un dépot sur internet pour les télécharger
OID Linux
CPU Statistics
- Load
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1 5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2 15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
- CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 raw user cpu time: .1.3.6.1.4.1.2021.11.50.0 percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 raw system cpu time: .1.3.6.1.4.1.2021.11.52.0 percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0 raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
- Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0 Available Swap Space: .1.3.6.1.4.1.2021.4.4.0 Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0 Total RAM used: .1.3.6.1.4.1.2021.4.6.0 Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0 Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0 Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
- Disk Statistics
The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition):
disk / 100000 (or) includeAllDisks 10% for all partitions and disks
The OIDs are as follows
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1 Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1 Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1 Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1 Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1 Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1 Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
System Uptime: .1.3.6.1.2.1.1.3.0
Examples These Commands you need to run on the SNMP server Get available disk space for / on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1
this will return available disk space for the first entry in the ‘disk’ section of snmpd.conf; replace 1 with n for the nth entry Get the 1-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1 Get the 5-minute system load on the target host #snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2
Get the 15-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3
Get amount of available swap space on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.4.4.0