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 [2011/04/12 15:18] 83.247.136.12informatica:linux:snmp [2018/01/03 15:55] (current) javi
Line 1: Line 1:
-snmp snmpd oid+======= SNMP =======
  
 +snmpd traps oid snmp-net
  
-===== OID =====+====== Instalar el agente en GNU/Linux ====== 
 + 
 +Demonio para contestar a peticiones snmp. 
 + 
 +1. Instalar 
 + 
 +  sudo aptitude update; sudo aptitude install snmp snmpd -R 
 + 
 +Si se quiere sensores de temperatura: 
 + 
 +  sudo aptitude update; sudo aptitude install snmp snmpd 
 + 
 +2. Renombrar archivo de configuración original 
 + 
 +  sudo mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak 
 + 
 +3. Crear un nuevo archivo de configuración: 
 + 
 +  sudo vim /etc/snmp/snmpd.conf 
 + 
 +Con el siguiente contenido: 
 + 
 +Variables:  
 + 
 +  ***10.0.0.0/24** - Rango de IP's a las que se le permite acceso al demonio SNMP 
 +  ***community_name** - contrasenya 
 + 
 +<code> 
 +com2sec local           localhost       community_name 
 +com2sec mynetwork       10.0.0.0/24 community_name 
 + 
 +group   MyROGroup       v1      mynetwork 
 +group   MyROGroup       v2c     mynetwork 
 +group   MyROGroup       usm     mynetwork 
 + 
 +group   MyROGroup       v1      local 
 +group   MyROGroup       v2c     local 
 +group   MyROGroup       usm     local 
 + 
 +view    all     included        .1 
 + 
 +access  MyROGroup       ""      any     noauth  exact   all     none    none 
 +access  MyRWGroup       ""      any     noauth  exact   all     all     all 
 +</code> 
 + 
 +4. Guardar y salir 
 + 
 +5. Reiniciar el demonio 
 + 
 +  sudo /etc/init.d/snmpd restart 
 +  ps ax | grep snmp 
 + 
 +6. Probar: 
 + 
 +  snmpwalk -v 2c -c community_name localhost .1 
 + 
 +====== 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: 
 + 
 +^ Maquina ^ Comentario ^ Version SNMP ^ Community name ^ 
 +| servidor | Recibe el trap | 2 | community_name | 
 +| cliente | Envia el trap | 2 | - | 
 + 
 +1. (servidor) Habilitar traps. Editar: 
 + 
 +  sudo cp /etc/default/snmpd /etc/default/snmpd.bak; sudo vim /etc/default/snmpd 
 + 
 +Y anyadir/editar la siguiente linea: 
 + 
 +  TRAPDRUN=yes 
 + 
 +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 
 +  Restarting network management services: snmpd snmptrapd. 
 + 
 +Nos aseguramos que el servicio "snmptrapd" esta ahora corriendo: 
 + 
 +<code> 
 +ps ax | grep snmptrapd 
 + 4222 ?        Ss     0:00 /usr/sbin/snmptrapd -Lsd -p /var/run/snmptrapd.pid 
 + 4226 pts/0    S+     0:00 grep snmptrapd 
 +</code> 
 + 
 +4. (cliente) Creamos una MIB de prueba 
 + 
 +  sudo vim /usr/share/mibs/netsnmp/NOTIFICATION-TEST-MIB 
 + 
 +Con el siguiente contenido: 
 + 
 +<code> 
 +NOTIFICATION-TEST-MIB DEFINITIONS ::= BEGIN 
 +        IMPORTS ucdavis FROM UCD-SNMP-MIB; 
 + 
 +demonotifs OBJECT IDENTIFIER ::= { ucdavis 991 } 
 + 
 +demo-notif NOTIFICATION-TYPE 
 + STATUS current 
 +        OBJECTS { sysLocation } 
 + DESCRIPTION "Just a test notification" 
 +        ::= { demonotifs 17 } 
 + 
 +END 
 +</code> 
 + 
 +5. (cliente) Enviamos un trap: 
 + 
 +<code> 
 +snmptrap -v 2c -c community_name servidor '' NOTIFICATION-TEST-MIB::demo-notif SNMPv2-MIB::sysLocation.0 s "just here" 
 + 
 +Cannot rename /var/lib/snmp/snmpapp.conf to /var/lib/snmp/snmpapp.0.conf 
 +Cannot unlink /var/lib/snmp/snmpapp.conf 
 +read_config_store open failure on /var/lib/snmp/snmpapp.conf 
 +read_config_store open failure on /var/lib/snmp/snmpapp.conf 
 +read_config_store open failure on /var/lib/snmp/snmpapp.conf 
 +</code> 
 + 
 +Los errores pueden ignorarse, es una cuestion de permisos 
 + 
 +6. (servidor) Comprobamos que ha llegado el trap: 
 + 
 +  sudo cat /var/log/snmp_traps.log  
 + 
 +Y veremos entradas como esta: 
 + 
 +<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 y configurar [[http://snmptt.sourceforge.net/docs/snmptt.shtml|snmptt]] para un tratamiento avanzado de los traps 
 + 
 +====== 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 |
 | Version 2 | snmpwalk -v 2c -c contrasenya maquina1.dominio.com .1 |  | Version 2 | snmpwalk -v 2c -c 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 | | 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:
   # /usr/lib/nagios/plugins/check_snmp -H 10.139.56.138 -o .1.3.6.1.2.1.1.3.0 -C public   # /usr/lib/nagios/plugins/check_snmp -H 10.139.56.138 -o .1.3.6.1.2.1.1.3.0 -C public
Line 41: 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
  
  
 Ejemplos: Ejemplos:
  
 +Sistema
   Uptime - 1.3.6.1.2.1.1.3.0   Uptime - 1.3.6.1.2.1.1.3.0
  
-  Network: Si al final se le pone un número (por ejemplo .7) es la interfície+Network: Si al final se le pone un número (por ejemplo .7) es la interfície
   Signal Strength - 1.3.6.1.4.1.14988.1.1.1.1.1.4   Signal Strength - 1.3.6.1.4.1.14988.1.1.1.1.1.4
   TX Data Rate - 1.3.6.1.4.1.14988.1.1.1.1.1.2   TX Data Rate - 1.3.6.1.4.1.14988.1.1.1.1.1.2
Line 69: 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 ======
  
-Continuar:+Post tempuratura y voltage: 
 +http://forum.mikrotik.com/viewtopic.php?f=3&t=49282 
 + 
 +Desde la mikrotik sacar OID: 
 +  /interface wireless print oid 
 +  /system health print oid 
 +  /system resource print oid 
 + 
 +<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 81: Line 409:
  
 http://www.ubnt.com/forum/showthread.php?t=7186 http://www.ubnt.com/forum/showthread.php?t=7186
 +
 +====== Comandos varios ======
 +
 +http://www.net-snmp.org/wiki/index.php/TUT:snmptranslate
 +
 +====== Habilitar snmptranslate ======
 +
 +https://wiki.debian.org/SNMP
informatica/linux/snmp.1302621491.txt.gz · Last modified: 2015/04/13 20:19 (external edit)