Este script sirve para que nos notifique cuando los interfaces ha tenido más de X errores de TX o RX en un periodo de tiempo.
Está diseñado para un CCR1036, pero lógicamente se puede adaptar a cualquier otro modelo.
Lo que hace es crear una variable con los errores que tiene cada interface y lo almacena. Tenemos que configurar un scheduler para que se ejecute cada X tiempo. Si la diferencia entre el valor de ahora y el antiguo es superior a lo establecido en la variable máximo permitido nos mandará un correo.
Acordarse de cambiar la dirección de correo que está implementada a fuego en el código como variable al principio del código.
######
###### Script para el gestionar el estado de los
###### interfaces. Controla tanto los errores de
###### TX como RX y si varian mas de lo indicado
###### en maximo permitido, lo manda la a direccion
###### de correo que pongais.
######
###### www.alferez.es
######
:local maximopertimido 5
:local correo "MICORREO@GMAIL.COM";
:global erroresrxsfp1;
:global erroresrxsfp2;
:global erroresrxeth1;
:global erroresrxeth2;
:global erroresrxeth3;
:global erroresrxeth4;
:global erroresrxeth5;
:global erroresrxeth6;
:global erroresrxeth7;
:global erroresrxeth8;
:global errorestxsfp1;
:global errorestxsfp2;
:global errorestxeth1;
:global errorestxeth2;
:global errorestxeth3;
:global errorestxeth4;
:global errorestxeth5;
:global errorestxeth6;
:global errorestxeth7;
:global errorestxeth8;
:local erroresnuevosrxsfp1 [/interface ethernet get [ find default-name=sfp-sfpplus1 ] rx-fcs-error];
:local erroresnuevosrxsfp2 [/interface ethernet get [ find default-name=sfp-sfpplus2 ] rx-fcs-error];
:local erroresnuevosrxeth1 [/interface ethernet get [ find default-name=ether1 ] rx-fcs-error];
:local erroresnuevosrxeth2 [/interface ethernet get [ find default-name=ether2 ] rx-fcs-error];
:local erroresnuevosrxeth3 [/interface ethernet get [ find default-name=ether3 ] rx-fcs-error];
:local erroresnuevosrxeth4 [/interface ethernet get [ find default-name=ether4 ] rx-fcs-error];
:local erroresnuevosrxeth5 [/interface ethernet get [ find default-name=ether5 ] rx-fcs-error];
:local erroresnuevosrxeth6 [/interface ethernet get [ find default-name=ether6 ] rx-fcs-error];
:local erroresnuevosrxeth7 [/interface ethernet get [ find default-name=ether7 ] rx-fcs-error];
:local erroresnuevosrxeth8 [/interface ethernet get [ find default-name=ether8 ] rx-fcs-error];
:local erroresnuevostxsfp1 [/interface ethernet get [ find default-name=sfp-sfpplus1 ] tx-fcs-error];
:local erroresnuevostxsfp2 [/interface ethernet get [ find default-name=sfp-sfpplus2 ] tx-fcs-error];
:local erroresnuevostxeth1 [/interface ethernet get [ find default-name=ether1 ] tx-fcs-error];
:local erroresnuevostxeth2 [/interface ethernet get [ find default-name=ether2 ] tx-fcs-error];
:local erroresnuevostxeth3 [/interface ethernet get [ find default-name=ether3 ] tx-fcs-error];
:local erroresnuevostxeth4 [/interface ethernet get [ find default-name=ether4 ] tx-fcs-error];
:local erroresnuevostxeth5 [/interface ethernet get [ find default-name=ether5 ] tx-fcs-error];
:local erroresnuevostxeth6 [/interface ethernet get [ find default-name=ether6 ] tx-fcs-error];
:local erroresnuevostxeth7 [/interface ethernet get [ find default-name=ether7 ] tx-fcs-error];
:local erroresnuevostxeth8 [/interface ethernet get [ find default-name=ether8 ] tx-fcs-error];
if (($erroresrxsfp1-$erroresnuevosrxsfp1 > $maximopertimido) || ($erroresnuevostxsfp1-$errorestxsfp1 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: sfp1 con errores") body="El interface tenia $erroresrxsfp1 errores de RX y ha subido a $erroresnuevosrxsfp1 de RX y $errorestxsfp1 errores de TX y ha subido a $erroresnuevostxsfp1 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxsfp2-$erroresrxsfp2 > $maximopertimido) || ($erroresnuevostxsfp2-$errorestxsfp2 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: sfp2 con errores") body="El interface tenia $erroresrxsfp2 errores de RX y ha subido a $erroresnuevosrxsfp2 de RX y $errorestxeth8 errores de TX y ha subido a $erroresnuevostxsfp2 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth1-$erroresrxeth1 > $maximopertimido) || ($erroresnuevostxeth1-$errorestxeth1 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth1 con errores") body="El interface tenia $erroresrxeth1 errores de RX y ha subido a $erroresnuevosrxeth1 de RX y $errorestxeth1 errores de TX y ha subido a $erroresnuevostxeth1 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth2-$erroresrxeth2 > $maximopertimido) || ($erroresnuevostxeth2-$errorestxeth2 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth2 con errores") body="El interface tenia $erroresrxeth2 errores de RX y ha subido a $erroresnuevosrxeth2 de RX y $errorestxeth2 errores de TX y ha subido a $erroresnuevostxeth2 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth3-$erroresrxeth3 > $maximopertimido) || ($erroresnuevostxeth3-$errorestxeth3 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth3 con errores") body="El interface tenia $erroresrxeth3 errores de RX y ha subido a $erroresnuevosrxeth3 de RX y $errorestxeth3 errores de TX y ha subido a $erroresnuevostxeth3 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth4-$erroresrxeth4 > $maximopertimido) || ($erroresnuevostxeth4-$errorestxeth4 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth4 con errores") body="El interface tenia $erroresrxeth4 errores de RX y ha subido a $erroresnuevosrxeth4 de RX y $errorestxeth4 errores de TX y ha subido a $erroresnuevostxeth4 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth5-$erroresrxeth5 > $maximopertimido) || ($erroresnuevostxeth5-$errorestxeth5 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth5 con errores") body="El interface tenia $erroresrxeth5 errores de RX y ha subido a $erroresnuevosrxeth5 de RX y $errorestxeth5 errores de TX y ha subido a $erroresnuevostxeth5 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth6-$erroresrxeth6 > $maximopertimido) || ($erroresnuevostxeth6-$errorestxeth6 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth6 con errores") body="El interface tenia $erroresrxeth6 errores de RX y ha subido a $erroresnuevosrxeth6 de RX y $errorestxeth6 errores de TX y ha subido a $erroresnuevostxeth6 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth7-$erroresrxeth7 > $maximopertimido) || ($erroresnuevostxeth7-$errorestxeth7 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth7 con errores") body="El interface tenia $erroresrxeth7 errores de RX y ha subido a $erroresnuevosrxeth7 de RX y $errorestxeth7 errores de TX y ha subido a $erroresnuevostxeth7 de TX, revisalo porque esto no pinta nada bien.";
}
if (($erroresnuevosrxeth8-$erroresrxeth8 > $maximopertimido) || ($erroresnuevostxeth8-$errorestxeth8 > $maximopertimido)) do {
/tool e-mail send to=$correo subject=([/system identity get name]." URGENTE: eth8 con errores") body="El interface tenia $erroresrxeth8 errores de RX y ha subido a $erroresnuevosrxeth8 de RX y $errorestxeth8 errores de TX y ha subido a $erroresnuevostxeth8 de TX, revisalo porque esto no pinta nada bien.";
}
if ((\$erroresnuevosrxeth8-\$erroresrxeth8 > \$maximopertimido) || (\$erroresnuevostxeth8-\$errorestxeth8 > \$maximopertimido)) do {
:set erroresrxsfp1 $erroresnuevosrxsfp1;
:set erroresrxsfp2 $erroresnuevosrxsfp2;
:set erroresrxeth1 $erroresnuevosrxeth1;
:set erroresrxeth2 $erroresnuevosrxeth2;
:set erroresrxeth3 $erroresnuevosrxeth3;
:set erroresrxeth4 $erroresnuevosrxeth4;
:set erroresrxeth5 $erroresnuevosrxeth5;
:set erroresrxeth6 $erroresnuevosrxeth6;
:set erroresrxeth7 $erroresnuevosrxeth7;
:set erroresrxeth8 $erroresnuevosrxeth8;
:set errorestxsfp1 $erroresnuevostxsfp1;
:set errorestxsfp2 $erroresnuevostxsfp2;
:set errorestxeth1 $erroresnuevostxeth1;
:set errorestxeth2 $erroresnuevostxeth2;
:set errorestxeth3 $erroresnuevostxeth3;
:set errorestxeth4 $erroresnuevostxeth4;
:set errorestxeth5 $erroresnuevostxeth5;
:set errorestxeth6 $erroresnuevostxeth6;
:set errorestxeth7 $erroresnuevostxeth7;
:set errorestxeth8 $erroresnuevostxeth8;