User Tools

Site Tools


informatica:linux: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
informatica:linux:snmp [2012/11/02 12:21] javiinformatica:linux:snmp [2018/01/03 15:55] (current) javi
Line 1: Line 1:
-====== SNMP ======+======= SNMP =======
  
 snmpd traps oid snmp-net snmpd traps oid snmp-net
  
-===== Instalar el agente en GNU/Linux =====+====== Instalar el agente en GNU/Linux ======
  
 Demonio para contestar a peticiones snmp. Demonio para contestar a peticiones snmp.
Line 59: Line 59:
   snmpwalk -v 2c -c community_name localhost .1   snmpwalk -v 2c -c community_name localhost .1
  
-===== Traps en GNU/Linux =====+====== Monitorizacion personalizada ====== 
 + 
 +Se pueden definir una serie de monitores en el archivo de configuracion de SNMP que permiten devolver informacion acerca de por ejemplo archivos de logs, carga en el sistema etc... 
 + 
 +===== Logs ===== 
 + 
 +1. Editar: 
 + 
 +  sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak; sudo vim /etc/snmp/snmpd.conf 
 + 
 +Y anyadir las siguientes linea: 
 + 
 +  logmatch test_errors /tmp/log.txt 10 ERROR 
 +  logmatch test_warnings /tmp/log.txt 10 WARNING 
 + 
 +Semantica: 
 + 
 +  logmatch <name> <logfile> <refresh in seconds> <regex>  
 + 
 +2. Reiniciar el servicio SNMP: 
 + 
 +  sudo /etc/init.d/snmpd restart 
 + 
 +3. Crear el archivo de log: 
 + 
 +  touch /tmp/log.txt 
 +  echo "ERROR" >> /tmp/log.txt 
 +  echo "ERROR" >> /tmp/log.txt 
 +  echo "WARNING" >> /tmp/log.txt 
 + 
 +4. Ver el contador (se refresca cada 10 segundos segun el ejemplo): 
 + 
 +<code> 
 +snmpwalk -v 2c -c jj.com test-6.dev.jj.com .1.3.6.1.4.1.2021.16 
 + 
 +iso.3.6.1.4.1.2021.16.2.1.1.1 = INTEGER: 1 
 +iso.3.6.1.4.1.2021.16.2.1.1.2 = INTEGER: 2 
 +iso.3.6.1.4.1.2021.16.2.1.2.1 = STRING: "test_errors" 
 +iso.3.6.1.4.1.2021.16.2.1.2.2 = STRING: "test_warnings" 
 +iso.3.6.1.4.1.2021.16.2.1.3.1 = STRING: "/tmp/log.txt" 
 +iso.3.6.1.4.1.2021.16.2.1.3.2 = STRING: "/tmp/log.txt" 
 +iso.3.6.1.4.1.2021.16.2.1.4.1 = STRING: "ERROR" 
 +iso.3.6.1.4.1.2021.16.2.1.4.2 = STRING: "WARNING" 
 +iso.3.6.1.4.1.2021.16.2.1.5.1 = Counter32: 2 
 +iso.3.6.1.4.1.2021.16.2.1.5.2 = Counter32: 1 
 +iso.3.6.1.4.1.2021.16.2.1.6.1 = INTEGER: 2 
 +iso.3.6.1.4.1.2021.16.2.1.6.2 = INTEGER: 1 
 +iso.3.6.1.4.1.2021.16.2.1.7.1 = Counter32: 2 
 +iso.3.6.1.4.1.2021.16.2.1.7.2 = Counter32: 1 
 +iso.3.6.1.4.1.2021.16.2.1.8.1 = INTEGER: 2 
 +iso.3.6.1.4.1.2021.16.2.1.8.2 = INTEGER: 1 
 +iso.3.6.1.4.1.2021.16.2.1.9.1 = Counter32: 2 
 +iso.3.6.1.4.1.2021.16.2.1.9.2 = Counter32: 1 
 +iso.3.6.1.4.1.2021.16.2.1.10.1 = INTEGER: 0 
 +iso.3.6.1.4.1.2021.16.2.1.10.2 = INTEGER: 0 
 +iso.3.6.1.4.1.2021.16.2.1.11.1 = INTEGER: 10 
 +iso.3.6.1.4.1.2021.16.2.1.11.2 = INTEGER: 10 
 +iso.3.6.1.4.1.2021.16.2.1.100.1 = INTEGER: 0 
 +iso.3.6.1.4.1.2021.16.2.1.100.2 = INTEGER: 0 
 +iso.3.6.1.4.1.2021.16.2.1.101.1 = STRING: "Success" 
 +iso.3.6.1.4.1.2021.16.2.1.101.2 = STRING: "Success" 
 +</code> 
 + 
 +Si queremos ver el numero actual de veces que se encuentra la cadena para la primera entrada 'logmatch' ('test_errors' en nuestro ejemplo): 
 + 
 +  snmpwalk -v 2c -c jj.com test-6.dev.jj.com .1.3.6.1.4.1.2021.16.2.1.6.1 
 +  iso.3.6.1.4.1.2021.16.2.1.6.1 = INTEGER: 2 
 + 
 +Para la siguiente entrada: 
 + 
 +  snmpwalk -v 2c -c jj.com test-6.dev.jj.com .1.3.6.1.4.1.2021.16.2.1.6.2 
 +  iso.3.6.1.4.1.2021.16.2.1.6.1 = INTEGER: 1 
 + 
 +Etc... 
 + 
 +====== Traps en GNU/Linux ====== 
 + 
 +===== Receta nueva (ene/2018) ===== 
 + 
 +==== Recibir ==== 
 + 
 +1. Instalar paquete: 
 + 
 +sudo apt-get install snmptrapd 
 + 
 +2. Crear archivo donde se escribirán los traps: 
 + 
 +  sudo touch /var/log/snmp-traps.log 
 + 
 +3. Configurar la autenticación, en este caso le ponemos "s3cr3t" de contraseña: 
 + 
 +  sudo cp /etc/snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf.bak 
 +  sudo vim /etc/snmp/snmptrapd.conf 
 + 
 +Añadir: 
 + 
 +  doNotRetainNotificationLogs yes 
 +  authCommunity log C311n3x 
 + 
 +4. Arrancar 
 + 
 +**TODO**: arrancar como servicio. Sospecho que relacionado con esto: 
 + 
 + /etc/default/snmptrapd 
 + 
 +<code> 
 +# snmptrapd control (yes means start daemon).  As of net-snmp version 
 +# 5.0, master agentx support must be enabled in snmpd before snmptrapd 
 +# can be run.  See snmpd.conf(5) for how to do this. 
 +TRAPDRUN=no 
 +</code> 
 + 
 +  * Con autenticación y formato: 
 + 
 +  sudo snmptrapd -A -Lf /var/log/snmp-traps.log -F "%y-%m-%l %h:%j:%k a:_%a_ A:_%A_ b:_%b_ B:_%B_ N:_%N_ q:_%q_ v:_%v_ w:_%w_ W:_%W_\n" 
 +   
 +  * Sin autenticación: 
 + 
 +  sudo snmptrapd -A -Lf /var/log/snmp-traps.log --disableAuthorization=yes 
 + 
 +  * Escuchando en el puerto TCP 666: 
 + 
 +  snmptrapd -A -Lf /var/log/snmp-traps.log --disableAuthorization=yes TCP:666 
 + 
 +En Amazon no recibía los traps en el puerto por defecto, UDP 161 
 + 
 + 
 +==== Enviar ==== 
 + 
 +  * Versión 1 al puerto y protocolo por defecto: 
 + 
 +  snmptrap -v 1 -c s3cr3t example.com .1.3.6.1 localhost 6 17 '' .1.3.6.1 s "Just a test SNMP trap" 
 + 
 +  * Versión 1 al puerto TCP 666: 
 + 
 +  snmptrap -v 1 -c s3cr3t TCP:example.com:666 .1.3.6.1 localhost 6 17 '' .1.3.6.1 s "Just a test SNMP trap" 
 + 
 +===== Receta antigua =====
  
 Asumimos el siguiente escenario: Asumimos el siguiente escenario:
Line 75: Line 212:
   TRAPDRUN=yes   TRAPDRUN=yes
  
-2. (servidor) Reiniciar el servicio SNMP:+2. Editar: 
 + 
 +  sudo cp /etc/snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf.bak; sudo vim /etc/snmp/snmptrapd.conf 
 + 
 +Y anyadir/editar las siguientes lineas: 
 + 
 +<code> 
 +authCommunity log community_name 
 +logoption f /var/log/snmp_traps.log 
 +doNotLogTraps yes 
 +</code> 
 + 
 +'community_name' es el SNMP community name del servidor 
 + 
 +3. (servidor) Reiniciar el servicio SNMP:
  
   sudo /etc/init.d/snmpd restart   sudo /etc/init.d/snmpd restart
Line 88: Line 239:
 </code> </code>
  
-3. (cliente) Creamos una MIB de prueba+4. (cliente) Creamos una MIB de prueba
  
   sudo vim /usr/share/mibs/netsnmp/NOTIFICATION-TEST-MIB   sudo vim /usr/share/mibs/netsnmp/NOTIFICATION-TEST-MIB
Line 109: Line 260:
 </code> </code>
  
-4. (cliente) Enviamos un trap:+5. (cliente) Enviamos un trap:
  
 <code> <code>
Line 123: Line 274:
 Los errores pueden ignorarse, es una cuestion de permisos Los errores pueden ignorarse, es una cuestion de permisos
  
-5. (servidor) Comprobamos que ha llegado el trap:+6. (servidor) Comprobamos que ha llegado el trap:
  
-  sudo cat /var/log/daemon.log | grep snmptrapd+  sudo cat /var/log/snmp_traps.log 
  
 Y veremos entradas como esta: Y veremos entradas como esta:
  
-  Nov  2 13:18:00 servidor snmptrapd[4222]: No access configuration dropping trap.+<code> 
 +2012-11-02 14:09:20 cliente [UDP: [10.0.0.5]:49782->[10.0.0.6]]: 
 +iso.3.6.1.2.1.1.3.0 = Timeticks: (6747914) 18:44:39.14 iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.2021.991.17 iso.3.6.1.2.1.1.6.0 = STRING: "just here" 
 +</code>
  
-**TODO** Instalar snmptt hacer algo con ese trap+**TODO** Instalar y configurar [[http://snmptt.sourceforge.net/docs/snmptt.shtml|snmptt]] para un tratamiento avanzado de los traps
  
-===== OID =====+====== OID ======
  
 | Windows | .1.3.6.1.4.1.9600.1.1.5.1.1.48 | Total CPU (User?) | | Windows | .1.3.6.1.4.1.9600.1.1.5.1.1.48 | Total CPU (User?) |
 | Windows | .1.3.6.1.4.1.9600.1.1.5.1.1.49 | Total CPU (User?) | | Windows | .1.3.6.1.4.1.9600.1.1.5.1.1.49 | Total CPU (User?) |
  
-===== Consultas =====+ 
 +| GNU/Linux | .1.3.6.1.4.1.2021.13.15.1.1.1 | UCD-DISKIO-MIB::diskIONRead | 
 +| GNU/Linux | .1.3.6.1.4.1.2021.13.15.1.1.6 | UCD-DISKIO-MIB::diskIOWrites | 
 + 
 +====== Consultas ======
  
 | Version 1 | snmpwalk -v 1 -c contrasenya maquina1.dominio.com .1 | | Version 1 | snmpwalk -v 1 -c contrasenya maquina1.dominio.com .1 |
Line 144: Line 302:
 | Version 3 | snmpwalk -v 3 -a MD5 -A contrasenya -l authPriv -u usuario -x DES -X contrasenya maquina1.dominio.com .1 | | Version 3 | snmpwalk -v 3 -a MD5 -A contrasenya -l authPriv -u usuario -x DES -X contrasenya maquina1.dominio.com .1 |
  
-===== Nanostation =====+====== Nanostation ======
  
 Con Nagios: Con Nagios:
Line 172: Line 330:
  
 Per veure les interfícies per recolectar: Per veure les interfícies per recolectar:
-  # snmpwalk -v1 -c public 10.139.56.138 .1.3.6.1.2.1.2.2.1.2 
  
 +  # snmpwalk -Os -c public -v 1 10.140.53.35 1.3.6.1.2.1.2.2.1.2
   iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"   iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
-  iso.3.6.1.2.1.2.2.1.2.2 = STRING: "eth0+  iso.3.6.1.2.1.2.2.1.2.2 = STRING: "venet0" 
-  iso.3.6.1.2.1.2.2.1.2.3 = STRING"wifi0" + 
-  iso.3.6.1.2.1.2.2.1.2.STRING"ath0"+Trànsit. L'últim número es la interfície. Si hi ha 3 sortirien 3: 
 +  IN: 
 +  # snmpwalk -Os -c public -v 1 10.140.53.35 iso.3.6.1.2.1.2.2.1.10 
 +  iso.3.6.1.2.1.2.2.1.10.1 = Counter32: 44295734 
 +  iso.3.6.1.2.1.2.2.1.10.2 Counter321208746161 
 + 
 +  OUT: 
 +  # snmpwalk -Os -c public -v 1 10.140.53.35 iso.3.6.1.2.1.2.2.1.16 
 +  iso.3.6.1.2.1.2.2.1.16.1 Counter3244295734 
 +  iso.3.6.1.2.1.2.2.1.16.2 = Counter32: 1130004646
  
  
Line 201: Line 368:
   Free memory - 1.3.6.1.4.1.10002.1.1.1.1.2.0   Free memory - 1.3.6.1.4.1.10002.1.1.1.1.2.0
  
-===== Mikrotik =====+====== Mikrotik ======
  
 Post tempuratura y voltage: Post tempuratura y voltage:
Line 211: Line 378:
   /system resource print oid   /system resource print oid
  
-===== Enlaces =====+<code> 
 +[admin@Escorxador] > interface wireless print oid  
 + 0 ;;; Omni 
 +   tx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.2.3 rx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.3.3 ssid=.1.3.6.1.4.1.14988.1.1.1.3.1.4.3  
 +   bssid=.1.3.6.1.4.1.14988.1.1.1.3.1.5.3 client-count=.1.3.6.1.4.1.14988.1.1.1.3.1.6.3 frequency=.1.3.6.1.4.1.14988.1.1.1.3.1.7.3  
 +   band=.1.3.6.1.4.1.14988.1.1.1.3.1.8.3 noise-floor=.1.3.6.1.4.1.14988.1.1.1.3.1.9.3 overall-ccq=.1.3.6.1.4.1.14988.1.1.1.3.1.10.3  
 + 
 + 1 tx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.2.15 rx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.3.15 ssid=.1.3.6.1.4.1.14988.1.1.1.3.1.4.15  
 +   bssid=.1.3.6.1.4.1.14988.1.1.1.3.1.5.15 client-count=.1.3.6.1.4.1.14988.1.1.1.3.1.6.15 frequency=.1.3.6.1.4.1.14988.1.1.1.3.1.7.15  
 +   band=.1.3.6.1.4.1.14988.1.1.1.3.1.8.15 noise-floor=.1.3.6.1.4.1.14988.1.1.1.3.1.9.15 overall-ccq=.1.3.6.1.4.1.14988.1.1.1.3.1.10.15  
 + 
 + 2 ;;; Troncal Sant Simo 
 +   tx-rate=.1.3.6.1.4.1.14988.1.1.1.1.1.2.14 rx-rate=.1.3.6.1.4.1.14988.1.1.1.1.1.3.14 strength=.1.3.6.1.4.1.14988.1.1.1.1.1.4.14  
 +   ssid=.1.3.6.1.4.1.14988.1.1.1.1.1.5.14 bssid=.1.3.6.1.4.1.14988.1.1.1.1.1.6.14 frequency=.1.3.6.1.4.1.14988.1.1.1.1.1.7.14  
 +   band=.1.3.6.1.4.1.14988.1.1.1.1.1.8.14 tx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.2.14 rx-rate=.1.3.6.1.4.1.14988.1.1.1.3.1.3.14  
 +   ssid=.1.3.6.1.4.1.14988.1.1.1.3.1.4.14 bssid=.1.3.6.1.4.1.14988.1.1.1.3.1.5.14 client-count=.1.3.6.1.4.1.14988.1.1.1.3.1.6.14  
 +   frequency=.1.3.6.1.4.1.14988.1.1.1.3.1.7.14 band=.1.3.6.1.4.1.14988.1.1.1.3.1.8.14 noise-floor=.1.3.6.1.4.1.14988.1.1.1.3.1.9.14  
 +   overall-ccq=.1.3.6.1.4.1.14988.1.1.1.3.1.10.14  
 +</code> 
 + 
 +====== Enlaces ======
  
 http://www.ubnt.com/forum/showthread.php?t=13543 http://www.ubnt.com/forum/showthread.php?t=13543
Line 223: Line 410:
 http://www.ubnt.com/forum/showthread.php?t=7186 http://www.ubnt.com/forum/showthread.php?t=7186
  
-===== Comandos varios =====+====== Comandos varios ======
  
 http://www.net-snmp.org/wiki/index.php/TUT:snmptranslate http://www.net-snmp.org/wiki/index.php/TUT:snmptranslate
 +
 +====== Habilitar snmptranslate ======
 +
 +https://wiki.debian.org/SNMP
informatica/linux/snmp.1351858896.txt.gz · Last modified: 2015/04/13 20:19 (external edit)