Download Monitorización de copias de seguridad y recursos

Document related concepts
no text concepts found
Transcript
Monitorización
de copias de seguridad
y recursos
Alberto Cárdenas Jiménez
¿Por que elegí este proyecto?
●
●
He elegido este proyecto ya que se realizaría
en python y mis conocimientos de python al
principio del proyecto eran prácticamente
nulos.
Me interesaba el tema de monitorizar las
copias de seguridad de una empresa y
monitorizar recursos de una maquina
windows.
Objetivos.
●
●
Monitorizar las copias de seguridad de una
empresa, las copias se realizan desde los
clientes hacia una estructura de directorios en el
servidor.
Monitorizar recursos de los clientes windows.
–
Uso de la CPU.
–
Espacio total y libre de la RAM.
–
Espacio total y libre del disco duro.
–
Temperatura CPU.
Monitorización copias de seguridad.
Entorno de pruebas.
●
Maquina virtual Centos 6.4 sobre KVM.
●
Servicios instalados:
–
MySQL.
–
Apache2 (Httpd).
–
PhpMyAdmin y Php5
–
Python 2.6
Monitorización copias de seguridad.
Preparando la Base de Datos.
●
Creación de la BD “linfoca_0” en MySQL.
●
Importo las 3 tablas necesarias:
–
Clientes (proporcionada por linfoca).
–
Provincias (tabla nueva y rellenada por linfoca).
–
Warning (tabla nueva y vacía)
Monitorización copias de seguridad.
Estructura de directorios.
●
●
Las copias se realizaran a las 14:30 en
/home/linfoca/public_html/cs/cs/backup/BMWe
s/provincia/idtaller
También se realizan copias cada vez que se
enciende el equipo en
/home/linfoca/public_html/cs/cs/backupTMP/B
MWes/provincia/idtaller
Monitorización copias de seguridad.
Script monitorcopia.py
●
●
●
Si la copia con fecha de hoy esta en la ruta
principal no hacer nada.
Si no esta comprobar que esta en la ruta
temporal y copiarla a la ruta principal.
Si no esta en ninguna de las dos insertar un
warning en la base de datos.
Monitorización copias de seguridad.
Script enviocorreo.py
●
●
●
Si no existe en la BD una entrada con fecha
de hoy no hace nada.
Si existe una entrada con fecha de hoy, busca
también con el mismo idtaller y la fecha de
ayer si existe una entrada, si no no hace
nada.
Si existe una entrada con fecha de hoy y ayer
con mismo idtaller enviar correo.
Monitorizar clientes windows.
●
●
Es necesario la monitorización de estos
equipos por que se encuentran en entornos
“agresivos” de temperatura y humedad.
También para estar informados del uso del
equipo ya que algunos clientes hacen usos
indebidos.
Monitorizar clientes windows.
¿Que es WMI?
●
●
Windows Management Instrumentation (WMI) es un
conjunto de extensiones del Modelo de controlador de
Windows que proporciona una interfaz de sistema
operativo a través del cual los componentes
proporcionan información y notificaciones.
WMI permite a los lenguajes de scripting como
VBScript, Windows PowerShell o Python para
administrar Windows en ordenadores personales y
servidores de Microsoft, tanto a nivel local como a
distancia. WMI está preinstalado a partir de Windows
2000 en adelante.
Monitorizar clientes windows.
Preparación del cliente.
●
●
En los clientes windows es necesario instalar:
–
Python 2.7.5.
–
Modulo WMI de python.
–
Extensión pywin32 de python.
Añadir la ruta de instalación al Path.
Monitorizar clientes windows.
Script monitorizarequipo.py
●
●
Usando algunas funciones de WMI con bucles
for obtengo los datos siguientes:
–
Carga CPU
–
Memoria RAM total y libre.
–
Espacio en disco duro total y libre.
Los resultados los guardo en un fichero de
texto con el formato indicado por linfoca.
Monitorizar clientes windows.
Problemas encontrados.
●
●
La temperatura usando WMI da problemas al
intentar conseguirla ya que no todas las BIOS
acepta la llamada de las funciones de
temperatura de WMI.
Es necesario que el fabricante de la BIOS
tenga una dll que haga referencia a la función
de temperatura de WMI.
http://social.msdn.microsoft.com/Forums/en-US/19520825-b1fc-4778-8704-c492124bc029/getting-cpu-temp
Conclusión.
●
●
●
Con este proyecto se consigue tener un
control de quien hace las copias de seguridad
diarias o no.
Tener un control del estado del equipo (no a
tiempo real) para prever posibles fallos e
intentar prevenirlos.
Con esto se consigue mejorar el servicio a los
clientes.
FIN