User Tools

Site Tools


doc:appunti:linux:sa:snmp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:snmp [2015/01/31 22:45] – [SNMP] niccolodoc:appunti:linux:sa:snmp [2024/10/11 15:33] (current) – [Introduzione] niccolo
Line 15: Line 15:
 La gerarchia (albero) dei simboli e i loro nomi sono codificati nel RFC1066 MIB. La radice degli oggetti - se non indicata - è per convenzione ''**.iso.org.dod.internet.mgmt.mib.**'' cioè in numeri ''**.1.3.6.1.2.1.**''. Vedi a proposito man ''**variables(5snmp)**''. Nota che i nomi dei simboli distinguono le maiuscole/minuscole a differenza di quello che dice la man page. La gerarchia (albero) dei simboli e i loro nomi sono codificati nel RFC1066 MIB. La radice degli oggetti - se non indicata - è per convenzione ''**.iso.org.dod.internet.mgmt.mib.**'' cioè in numeri ''**.1.3.6.1.2.1.**''. Vedi a proposito man ''**variables(5snmp)**''. Nota che i nomi dei simboli distinguono le maiuscole/minuscole a differenza di quello che dice la man page.
  
-Per convertire i nomi degli attributi dal formato testuale a quello numerico:+ 
 +Per convertire il formato numerico di un OID nella suo nome simbolico si usa **snmptranslate**: 
 + 
 +<code> 
 +snmptranslate .1.3.6.1.2.1.25.2 
 +HOST-RESOURCES-MIB::hrStorage 
 +</code> 
 + 
 +Se non funziona verificare che sia stato installato il pacchetto **snmp-mibs-downloader** (che provvede a scaricare e installare il database dei MIBS) e commentare la riga che definisce **MIBS=** nel file **/etc/default/snmpd**. 
 + 
 +Per convertire viceversa i nomi degli attributi dal formato testuale a quello numerico:
  
 <code> <code>
Line 21: Line 31:
 .1.3.6.1.2.1.31.1.1.1.1.2 .1.3.6.1.2.1.31.1.1.1.1.2
  
-# snmptranslate .1.3.6.1.2.1.31.1.1.1.1.2+# snmptranslate -m ALL .1.3.6.1.2.1.31.1.1.1.1.2
 IF-MIB::ifName.2 IF-MIB::ifName.2
  
Line 109: Line 119:
 Come si vede il valore è disponibile sotto un MIB differente, la radice in questo caso è .1.3.6.1.4.1.2021.8.1. (UCD-SNMP-MIB::). Come si vede il valore è disponibile sotto un MIB differente, la radice in questo caso è .1.3.6.1.4.1.2021.8.1. (UCD-SNMP-MIB::).
  
-Con la nuova sintassi di **''snmpd.conf''** (da preferire ad esempio con ''snmpd'' 5.4.3) la direttiva **''exec''** viene deprecata, al suo posto si usa **''extend''**:+Con la nuova sintassi di **''snmpd.conf''** (introdotta con la versione 5.2.x e quindi da preferire ad esempio con ''snmpd'' 5.4.3) la direttiva **''exec''** viene deprecata, al suo posto si usa **''extend''**:
  
 <file> <file>
Line 307: Line 317:
 Target[temp1]:      iso.3.6.1.4.1.2021.13.16.2.1.3.1&iso.3.6.1.4.1.2021.13.16.2.1.3.1:public@localhost Target[temp1]:      iso.3.6.1.4.1.2021.13.16.2.1.3.1&iso.3.6.1.4.1.2021.13.16.2.1.3.1:public@localhost
 Factor[temp1]:      0.001 Factor[temp1]:      0.001
 +YTicsFactor[temp1]: 0.001
 Title[temp1]:       Temperature temp1 Title[temp1]:       Temperature temp1
 PageTop[temp1]:     <H1>Temperature temp1</H1> PageTop[temp1]:     <H1>Temperature temp1</H1>
Line 314: Line 325:
 Unscaled[temp1]:    dwmy Unscaled[temp1]:    dwmy
 YLegend[temp1]:     Temp C° YLegend[temp1]:     Temp C°
-ShortLegend[temp1]:  +ShortLegend[temp1]: C&deg; 
-Legend1[temp1]:     Temperature in +Legend1[temp1]:     Temperature in C&deg;
 Legend2[temp1]: Legend2[temp1]:
-LegendI[temp1]:     Temp &nbsp;+LegendI[temp1]:     Temp C&deg;&nbsp;
 LegendO[temp1]: LegendO[temp1]:
 </file> </file>
 +
 +It seems that MRTG does not support UTF-8 (even version 2.17.4), so the configuration file should be encoded in ISO_8859-1. Special characters used in HTML output should be encoded properly.
  
 See this article: [[http://www.eric-a-hall.com/software/cacti-netsnmp-lmsensors/|lmSensors/Net-SNMP Sensor Readings ]]. See this article: [[http://www.eric-a-hall.com/software/cacti-netsnmp-lmsensors/|lmSensors/Net-SNMP Sensor Readings ]].
  
-===== MIBs e Debian Squeeze =====+===== MIBs e Debian (Squeeze e successive) ===== 
 + 
 +Vedere il [[https://wiki.debian.org/SNMP|wiki Debian]].
  
 Tradizionalmente i file contenenti i MIBs di [[http://www.ietf.org/|IETF]] e di [[http://www.iana.org/|IANA]] venivano distribuiti con il pacchetto **''libsnmp-base''**, per problemi di licenza questo non è più possibile (dalla versione net-snmp 5.4.2.1~dfsg-1). Tradizionalmente i file contenenti i MIBs di [[http://www.ietf.org/|IETF]] e di [[http://www.iana.org/|IANA]] venivano distribuiti con il pacchetto **''libsnmp-base''**, per problemi di licenza questo non è più possibile (dalla versione net-snmp 5.4.2.1~dfsg-1).
Line 337: Line 352:
 </file> </file>
  
-Stessa cosa bisogna farla per il demone snmpd, commentando una riga in **''/etc/default/snmpd''**:+Stessa cosa bisogna farla per il demone snmpd, aggiungendo una riga in **''/etc/default/snmpd''**:
  
 <file> <file>
-# Don't load any MIBs by default. +export MIBS=UCD-SNMP-MIB
-# You might comment this lines once you have the MIBs downloaded. +
-#export MIBS=+
 </file> </file>
  
Line 400: Line 413:
 rocommunity6 public default rocommunity6 public default
 </file> </file>
 +
 +===== SNMP con systemd su Debian 9 e seguenti =====
 +
 +**Debian 9 Stretch** utilizza il sistema di init **systemd** invece del vecchio //sysvinit//. Le personalizzazioni all'avvio non si fanno più in ''/etc/default/snmpd''.
 +
 +La risoluzione degli OIDs nella loro descrizione testuale richiede sempre l'installazione del pacchetto non-free **snmp-mibs-downloader**. Invece di impostare la variabile d'ambient **MIBS** si deve modificare il file **/etc/snmp/snmp.conf**, commentando (disattivando) la riga:
 +
 +<file>
 +#mibs :
 +</file>
 +
 +Eventuali personalizzazioni dei parametri di snmpd non si fanno più con la variabile d'ambiente **SNMPDOPTS**, bisogna piuttosto creare il file **/etc/systemd/system/snmpd.service**, prendendo come esempio quello predefinito ''/lib/systemd/system/snmpd.service''. Il file personalizzato prevale su quello di sistema (basta eseguire **systemctl daemon-reload**). Pare che non sia necessario aggiornare i link simbolici, ad esempio quello contenuto in ''/etc/systemd/system/multi-user.target.wants/''.
 +
 +Ecco ad esempio come modificare la riga **ExecStart** per diminuire il logging e sopprimere tutte le righe **Connection from UDP** che riempiono il syslog (nota: si modifica **%%-Lsd%%** in **%%-LSwd%%**):
 +
 +<file>
 +ExecStart=/usr/sbin/snmpd -LSwd -Lf /dev/null -u Debian-snmp -g Debian-snmp
 +    -I -smux,mteTrigger,mteTriggerConf -f -p /run/snmpd.pid
 +</file>
 +
 +In alternativa a **sostituire completamente il file unit** (cioè il file /etc/systemd/system/snmpd.service) è possibile creare un file **override** con solo le modifiche necessarie. Il file override deve stare nella directory **/etc/systemd/system/snmpd.service.d/** e può chiamarsi **local.conf** (è possibile averne più di uno). Fare attenzione al parametro **ExecStart** che deve essere svuotato prima di essere definito nuovamente:
 +
 +<file>
 +[Service]
 +Environment="MIBS="
 +ExecStart=
 +ExecStart=/usr/sbin/snmpd -LSwd -Lf /dev/null -u Debian-snmp -g Debian-snmp
 +    -I -smux,mteTrigger,mteTriggerConf -f -p /run/snmpd.pid
 +</file>
 +
 +===== Spazio disco =====
 +
 +Per monitorare lo spazio disco esistono due famiglie di OID diversi: **UCD-SNMP-MIB** e **HOST-RESOURCES-MIB**.
 +
 +==== UCD-SNMP-MIB ====
 +
 +Ci sono tre OID della famiglia **UCD-SNMP-MIB** normalmente utilizzati per monitorare lo spazio disco disponibile:
 +
 +  * UCD-SNMP-MIB::dskUsed
 +  * UCD-SNMP-MIB::dskAvail
 +  * UCD-SNMP-MIB::dskTotal
 +
 +Ognuno di essi viene indicizzato con un intero che rappresenta una partizione in uso al sistema operativo. Per interrogare il server SNMP si può usare la riga di comando:
 +
 +<code>
 +snmpwalk host.domain.org -v2c -c public UCD-SNMP-MIB::dskAvail
 +</code>
 +
 +Sul server si deve aver abilitato questo OID con una direttiva **disk** per ogni filesystem montato oppure con la direttiva **includeAllDisks**. Ciascuna direttiva è seguita da **MINPERCENT%**, valore che può essere interrogato dal client con l'OID **UCD-SNMP-MIB::dskMinPercent**. Ad esempio si possono aggiungere le seguenti righe al file di configurazione **/etc/snmp/snmpd.conf**:
 +
 +<file>
 +# Disk Monitoring
 +# 10MBs required on root disk, 5% free on /var, 10% free on all other disks
 +disk       /     10000
 +disk       /var  5%
 +includeAllDisks  10%
 +</file>
 +
 +==== HOST-RESOURCES-MIB ====
 +
 +Esistono anche gli OID della famiglia **HOST-RESOURCES-MIB** per interrogare lo spazio disco; lo spazio disponibile deve essere calcolato come differenza fra dimensione totale e spazio usato:
 +
 +  * HOST-RESOURCES-MIB::hrStorageSize
 +  * HOST-RESOURCES-MIB::hrStorageUsed
 +  * HOST-RESOURCES-MIB::hrStorageDescr
 +
 +Per attivare questi OID sul server non è necessario alcuna direttiva particolare nel file di configurazione **/etc/snmp/snmpd.conf**.
  
doc/appunti/linux/sa/snmp.1422740752.txt.gz · Last modified: 2015/01/31 22:45 by niccolo