viernes, 15 de junio de 2018

Flisol 2018 en Linux Cabal

El pasado 28 de Abril del 2018 se celebro en America Latina el Flisol, Festival de Instalación de Software Libre el evento donde simultaneamente se realizan instalaciones de Software Libre en diversas ciudades de America.

Las sedes del 2018 las podemos ver en [ Sedes Flisol en México ]
 
En la ciudad de Morelia se realizo en la UNAM Campus Morelia, me habría gustado acompañarlos pero no me fue posible, sin embargo, tuve oportunidad de asistir a la sede de Guadalajara organizada por Linux Cabal. Debo mencionar que en el 2016 también asistí a esta misma sede comparado con la de hace dos años me pareció que bajo la asistencia y la participación social pero eso no fue factor para afectar al evento.

Presencie dos muy buenas platicas, la primera de como usar Vim por Octavio Alvarez de Grupo de Usuarios Linux Tijuana donde observamos muchos secretos de este poderoso procesador de textos.

La segunda platica fue de Empresa Libre, un sistema de facturación electrónica basado en web para PyMEs desarrollado por Mauricio Baeza.




Nos vemos el proximo año en Flisol 2019.

jueves, 19 de abril de 2018

Balanceando con Citrix Netscaler

En este articulo mostrare como hacer una implementación rápida de un servicio TCP balanceado con Citrix Netscaler. Suponiendo que tenemos dos servidores con un servicio de Apache Tomcat cada uno y que ambos escuchan en el puerto 8080, requerimos lo siguiente:

  • 1 IP como IP virtual para publicar el servicio balanceado.
  • 2 IPs de los servidores a balancear.
  • puertos TCP a balancear.


El equipo utilizado en esta practica es
  • NS10.1: Build 120.13.nc
  • Citrix Netscaler MPX-8200

En la sección de "Load Balancing" tenemos la parametrizacion básica en los sub-menu de Servers, Services y Virtual Server. En el sub-menu de servers vamos a definir cada uno de los servidores que deseamos balancear es ahi donde vamos a capturar el hostname o alias, IP y algún comentario así como se muestra en la siguiente imagen. Para nuestra arquitectura básica propuesta es aquí donde definimos al host1 y host2 con sus respectivas IPs.


 En el sub-menu Services podemos definir el cada servicio que asociaremos a un servidor. Debemos ya tener documentado o planeado la siguiente informacion:
  • El nombre del servicio.
  • El protocolo a usar: TCP, UDP, DNS, HTTP, SSL, MSSQL, MYSQL, RDP, etc.
  • El puerto a usar.
  • El servidor al que asociaremos este servicio y que debimos definir en previamente.
  • Monitor, el cual es el mecanimos por el que verificaremos la salud del servicio.




Como complemento al servicio debemos asociar un monitor, el cual revisara la salud del servicio, existen monitores como validación por icmp, validación por conexión tcp, encabezados de http, encabezados por tcp, etc. Existe un listado ya definido y nosotros podemos definir nuevos monitores.

Finalmente en el sub-menu Virtual Servers, fijaremos una IP virtual para atender al servicio balanceado. Como en el caso de los servicios la información que debemos asignar es:

  • Nombre del servidor virtual.
  • Protocolo
  • El protocolo a usar: TCP, UDP, DNS, HTTP, SSL, MSSQL, MYSQL, RDP, etc.
  • El puerto a usar.
  • Debemos seleccionar los servicios que asignaremos a este Virtual Server.
  • Metodo de balanceo: Least Connection, Least Request, Least Response Time, Round Robin, etc.

De esta manera la consulta del servicio se realiza unicamente hacia la IP virtual.




viernes, 16 de marzo de 2018

Widgets en Centreon


En estos momentos me encuentro implementando una version estable de Centreon 2.7.13 por lo que la finalidad de este post es únicamente presentar la funcionalidad widgets en centreon.

Nos van a servir para mostrar rápidamente el monitoreo de recursos que puedan ser mas críticos y de rápido acceso, los elementos a colocar en el widget son parametrizables, muchas veces con patrones de búsqueda, ordenamientos, clasificados por hostgroup, etc. Entre los widgets que se pueden agregar están los siguientes:

  • Graph Monitoring: Mostrara las gráficas de algún recurso, nos da opción de parametrizar la frecuencia de actualización.
  • Host Monitoring: Muestra el monitorio de un host o conjunto de hosts dentro del widget
  • Hostgroup Monitoring: Muestra el monitoreo de un hostgroup definido previamente.
  • Service Monitoring: Muestra el monitoreo de un grupo de servicios.


Por definición un widget debe incrustarse en una vista, podemos tener varias vistas (o tabs)  en cada una de estas vistas colocar uno o mas widgets. En la siguientes dos imágenes podemos ver dos vistas: "Servicios en linea" y "Servicios para atención".

En la primera vista de servicios para atención hemos colocado dos widgets, el primero del tipo Service Monitoring donde vemos los servicios con status de Critical y Warning únicamente. El segundo widget podemos ver uno del tipo Host Monitoring.



En la segunda vista de servicios en linea hemos colocado un par de widgets del tipo Graph Monitoring donde mostramos el monitoreo del web request de un servidor supuestamente critico.



¿Cómo agregamos un nuevo widget?

En el Menu "Home" -> "Custom View" podemos ver la barra de control para la manipulacion de widgets, la barra es muy intitiva y hemos leido desde el principio seguro tendremos muy buena idea de lo como hacer estas definiciones.



Lo primero es definir un la vista, en nuestro caso definiremos una vista llamada "Vista test", durante este proceso de definición podemos iniciarla con 1, 2 y 3 columnas para colocar widgets y darle orden a nuestros elementos. Ya una vez definida la vista nos colocamos sobre ella y ahora si, agregamos el widget.






Para incrustar un nuevo widget primero debemos indicar de que tipo sera, con las imágenes mostradas anteriormente podemos darnos una idea de los resultados que podemos tener. Una vez agregado el componente podemos parametrizarlo con la barra superior derecha del widget, la llave mecánica indica modificar.






Una observación importante es que estos widgets no vienen activos inicialmente por lo que hay que cargarlos al centreon en el menu "Administration" -> "Extensions" -> "Widgets". Los circulos rojos indican que el widget esta activo mientras que el engrane indica que no esta activo y si lo necesitamos debemos activarlo dandole clic.



jueves, 16 de marzo de 2017

Comandos de Supervivencia en Windows Server

Debido a mi actual trabajo, en los últimos años he tenido mas acercamiento a Windows Server y definitivamente no fue tan fácil ya que te acostumbras a tus herramientas GNU que cuando te lo cambian es como volver a empezar casi desde cero.

Dicho lo anterior, les traigo el siguiente listado de comandos de supervivencia básica que he documentado en los últimos años para Windows Server 2003, 2018 y 2012 (No powershell).

Problemas con Remote Desktop

Cuando he tenido problemas para ingresar por remote desktop, algunas veces reiniciando el servicio de Remote Desktop o terminal services logramos volver a ingresar al servidor. A continuación muestro como el proceso su no se presenta ningún problema.

sc \\IP_ADDRS STOP TERMSERVICE
sc \\
IP_ADDRS START TERMSERVICE 

Si por alguna razón el servicio se queda en status de "STOPPING" al momento de detener el servicio aun podemos matar el proceso usando fuerza bruta, primero debemos conseguir el identificar del proceso, luego matar el proceso y despues iniciar el servicio.

sc \\
IP_ADDRS queryex termservice
taskkill /s
IP_ADDRS /u Administrator /PID
sc \\
IP_ADDRS START TERMSERVICE



Ahora supongamos que tenemos un servidor en otra ciudad a 300km de distancia y no podemos ingresar al sistema operativo por remote desktop, el servidor no tiene configurada o simplemente no tiene una interface de  administración como la iLO o el IMM y tampoco contamos con un ingeniero en sitio. Despues de agotar varias opciones solo queda intentar el reinicio remoto y espera que levanta bien todo el sistema operativo y escritorio remoto. Con el siguiente comando se nos muestra un cuadro de dialogo para reiniciar uno o varios servidores.


shutdown /i




Sesiones de usuarios y terminal services.
Por default windows server acepta dos usuarios simultáneos por remote desktop, si alguien quiere mas usuarios simultáneos debe comprar licenciamiento. En windows server 2003 muchas veces llegamos a tener problemas para ingresar ya que una sesion iniciada y no cerrada impide que alguien mas ingrese. La manera de ver que usuarios no cerraron bien su sesion y cerrarles la misma es con los comandos qwinsta y rwinsta.

qwinsta /server:IP_ADDRS

La tercer columna nos muestra el identificador de sesion, con este identificador podemos finalizar una sesion.

rwinsta /server:
IP_ADDRS 3




Puertos de red abiertos

En todo momento resulta útil conocer que puertos están abiertos en el sistema, pero resulta mas útil conocer que procesos abrieron cada puerto.

#Conexiones establecidas y el PID que lo atiende
netstat -oan

#Puertos abiertos en modo LISTENING
netstat -an | find /i "listening"


Depuración de espacio en disco

Aunque siempre es posible depurar usando herramientas como ccleaner y remover aplicaciones que ya no usamos, existen unos directorios asociados las actualizaciones y services packs del sistema operativo. Estos deben ejecutarse como administrador.

#Archivos viejos de Service pack anteriores ya no usados
Dism /online /cleanup-image /spsuperseded
#Archivos viejos de actualizaciones ya no usados.
Dism /online /Cleanup-Image /StartComponentCleanup       

Para el caso de que tengamos archivos muy viejos que ya no se usan podemos borrarlos, colocandonos en el directorio donde se encuentran todos esos archivos, ejecutamos el siguiente comando donde borrariamos todos los archivos con antigüedad mayor a 45 días. Esto resulta ideal para una aplicación que escribe logs diariamente.

forfiles /m *.* /d -45 /c "cmd /c del @file"


Windows Update, reinicio no programado

Si por alguna razón se nos quedaron los windows update encendidos configurados para actualizarse de manera automática, muy probablemente nos reiniciara el servidor sin darnos cuenta hasta afectar alguna plataforma de la empresa. La recomendación es controlar estas actualizaciones, permitiendo que se descarguen o no pero lo mas importante es que seamos nosotros quienes definamos el momento en que estas se realizan. Una manera de evitarlo, es decir, cancelar el reinicio automatico de windows server podemos dar de baja el servicio como se indica:

sc stop wuauserv


Información rapida de usuarios en dominio

Si queremos conseguir informacion mas rapida de un usuario de dominio sin ingresar al domain controller o sin tener instalado la aplicacion de Active Directory, podemos consultar de la siguiente manena

net user /DOMAIN USERNAME


Ligas simbólicas
Confieso que esto me sorprendió mucho, nunca pensé que en Windows se podría crear ligas simbólicas dentro de la misma unidad de disco o incluso hacia otro volumen. Esto puede resultar útil cuando el volumen no viene de una SAN y no se puede crecer. Una solución puede ser agregar mas disco local y con una liga simbólica escribir en el nuevo disco local añadido. Con el parametro /D definimos la liga simbólica y usamos rutas absolutas para el origen como el destino.


mklink /D c:\dell\logs e:\dell\logs


Uptime

Si queremos saber desde cuando esta corriendo un windows server podemos ejecutar el comando siguiente y ver la parte de "Statistics Since".

net stats server