jueves, 22 de septiembre de 2016

Hyper-V o como reducir costes sin Vmware


Byte TI nos comunica en su entrada de actualidad la iniciativa de Microsoft de ofrecer licencias de Windows Server Datacenter a los clientes que migren su hipervisor VMware.

A falta de más datos de dicha oferta, la jugada es mala para VMware, las compañías que tengan infraestructura Windows se plantearán por qué han de pagar licencia de hipervisor adicionalmente al sistema operativo Windows, versión que además suele Datacenter para virtualizar en condiciones.

Esta medida coincide con la reciente política de VMware de elmininar la versión enterprise de su portfolio en versión 6 y la imposibilidad del downgrade de las existente a Standard (+1400€ por procesador) , lo que nos empuja a la necesidad de pagar el upgrade de enterprise a enterprise+ (+4800€/procesador ) más el consabido incremento del coste de mantenimiento.

Es cierto que VMware es el lider del mercado de hipervisores y sus productos son realmente buenos y estables pero tambien es cierto que Microsoft se ha puesto a la altura (líder en el Cuadrante Mágico de Gartner de virtualización x86) y añade funcionalidades de integración con sus productos, herramientas de gestión como SCVMM y facilidad de tránsito a la nube híbrida entre otras.

Entonces, si nuestra plataforma es Windows por qué no pasarnos a Hyper-V?, desde luego muchas PYMES se plantearán este cambio.


viernes, 17 de junio de 2016

Industrial Security Advisory - Claims of Ransomware Masquerading as an Allen-Bradley Update

Claims of ransomware masquerading as an Allen-Bradley Update

Interesante nota sobre mailing ransomware en nombre de Allen-Bradley.
(https://rockwellautomation.custhelp.com/app/answers/detail/a_id/799091)


Claims of ransomware masquerading as an Allen-Bradley Update
799091 | Date Created: 04/11/2016 | Last Updated: 04/14/2016
Access Level: Everyone     Email this page  Print  Subscribe to Updates
Version 1.0 - April 12th 2016

Rockwell Automation has learned about the existence of a malicious file called "Allenbradleyupdate.zip" that is being distributed on the internet. This file is NOT an official update from Rockwell Automation, and we have been informed that this file contains a type of ransomware malware that, if successfully installed and launched, may compromise the victim's computer. This advisory is intended to raise awareness to control system owners and operators of reports of the file's existence as a result of reports Rockwell Automation received from the Electricity Information Sharing and Analysis Center ("E-ISAC").

BACKGROUND

Ransomware is a class of malware that aims to extort money from the victim by restricting access to resources on the computer, and then demands a monetary ransom in order to remove the restrictions. The most common type is ransomware that will encrypt important files on an infected computer, rendering the files unusable without paying a ransom. Other types may restrict access to operating system functions or specific applications. Typically the user is required to pay the ransom in some form of untraceable currency, and must do so before the deadline expires and the decryption key is destroyed.

According to the September/October 2015 issue of the ICS-CERT Monitor, "Ransomware, such as Cryptolocker or TeslaCrypt, is currently one of the most prolific categories of malware growth, rising 165 percent in varieties seen between the fourth quarter of 2014 and the first quarter of 2015".

CUSTOMER RISK MITIGATIONS

Where feasible, precautions and risk mitigation strategies to this type of attack, like those listed below are recommended. When possible, multiple strategies should be employed simultaneously.

Obtain product software and firmware from Rockwell Automation’s official download portal, available at http://www.rockwellautomation.com/global/support/drivers-software-downloads.page.
Follow industry best-practices to harden your PCs and Servers, including anti-virus/anti-malware and application whitelisting solutions. These recommendations are published in KB546987.
Analyze outbound network traffic against the known indicators of compromise (IoC), available from the US-CERT portal, to identify and assess the risk of any unusual network activity.
Develop, and then deploy, backup and disaster recovery policies and procedures. Test backups on a regular schedule. 
Implement a change management system to archive network, controller and computer assets (e.g., clients, servers and applications).
Employ training and awareness programs to educate users on the warning signs of a phishing or social engineering attack, which can also serve as a vehicle for malware infection.
Minimize network exposure for all control system devices and/or systems, and ensure that they are not accessible from the Internet
Locate control system networks and devices behind firewalls, and isolate them from the business network.
Refer to http://www.rockwellautomation.com/rockwellautomation/products-technologies/network-technology/architectures.page? for comprehensive information about implementing validated architectures designed to deliver these measures.

We also recommend concerned customers continue to monitor this advisory, Rockwell Automation's Security Advisory Index at https://rockwellautomation.custhelp.com/app/answers/detail/a_id/54102, and the company public security webpage at http://www.rockwellautomation.com/security for new and relevant information relating to this matter.

Rockwell Automation remains committed to making security enhancements to our systems in the future.  For more information and for assistance with assessing the state of security of your existing control system, including improving your system-level security when using Rockwell Automation and other vendor controls products, you can visit the Rockwell Automation Security Solutions web site at http://www.rockwellautomation.com/solutions/security.

sábado, 21 de mayo de 2016

Vmware vShield endpoint vs NSX

VMWare vShield inicialmente nació como un firewall para los hipervisores de VMWare, con el tiempo se le ha dotado de numerosas capacidades y modalidades como App, Edge, Zones, Manager...y en concreto una de ellas que se ha explotado por las compañías que desarrollan software antimalware : EndPoint.

vShield EndPoint evita la necesidad de desplegar agentes antivirus en las VMs que se ejecutan sobre el host desplegando una app o vm que accede por medio de las APIs a las capas del hipervisor para analizar el tráfico. Esta solución es altamente interesante ya que simplifica la gestión de las plataformas de antivirus y nos evita el consumo de recursos innecesario en las VMs y los posibles problemas que un antivirus pueda ocasionar.

Además de que todo esto pinta bien, VMWare lo borda cuando libera el acceso a los partners y además no requiere licencia adicional de uso.  Con estos parámetros las compañías que desarrollan software antimalware lanzan sus productos incidiendo en esta solución (trend Micro, kaspersky...) ofreciendo funcionalidades adicionales como patching de sistemas operativos en VM, ... , la panacea de un administrador de sistemas... no?

Pues hasta ahora sí, pero parece que todo cambia cuando se mira de cerca... Si buscáis vShield en VMWare aparecen muchos documentos pero en el porfolio principal en el apartado de networking y seguridad sólo aparece NSX... y vshield?. vShield sigue integrado en las ediciones de vSphere pero si seguimos indagando vemos que vShield desaparecerá este año para ser sustituido por NSX.

El problema de NSX es que aún  no sabemos si es apto para todas las organizaciones, ni siquiera podemos obtener un precio y muchos partners no tienen acceso a descargar el software para probarlo, sólo algunos elegidos.

Entonces... qué pasa con estas soluciones antimalware basadas en vShield EndPoint?. Pues ya está pasando varias cosas...
  • La primera es que se han adaptado para trabajar bajo NSX ,perfecto es el futuro, pero todas las organizaciones con independencia de su tamaño podrán ir a NSX?
  • La segunda es que el despliegue de VMs sin antivirus ya es un problema con vSphere 6 pues requiere la instalación de un agente adicional en la VM.Si ya estamos en un entorno de este tipo no veo mayor problema pero si ya tenemos un despliegue de antivirus en VMs qué ganamos con esta solución?
  • La tercera es que podemos apreciar que hay partners que con la excusa de la ciberseguridad se atreven a vender soluciones de este tipo sin explicar y,  lo peor, muchas veces sin conocer los puntos que hemos abordado previamente, asesorando a clientes finales de las bondades de una solución (que las tiene y muchas) pero con un futuro incierto a corto plazo y sobre todo que puede cargar de costes altos y no necesarios a las empresas finales.





sábado, 14 de mayo de 2016

Industria 4.0 : De qué estamos hablando?

Impacto mediático

No hay duda, Industria 4.0 es el término de moda, como lo fue Big Data no hace tanto. por cierto, ¿Alguien se acuerda del brutal impacto que tuvo en la prensa diaria este término?, y ahora?.

La feria de Hannover ha sido el último catalizador mediático popular, llegando al punto álgido con la presencia del presidente de los EEUU, Barack Obama, y la canciller alemana Angela Merkel. Una buena función comercial.


Al igual que pasó con Big Data, la historia se repite, no hacemos más que oír hablar de Industria 4.0 a todos y , como siempre, no todos tienen claro de qué están hablando, es más muchos ni se acercan a la esencia, complejidad e implicaciones reales que este término conlleva, sin embargo deben vender sus productos y servicios bajo esta marca, pues es cool.

¿Qué es Industria 4.0?

Una definición de tantas podemos encontrarla en la propia Wikipedia, en ella obtenemos algunas claves y hechos necesarios para entender el término promocionado por el gobierno alemán, pero lo que de verdad define el objetivo es el cambio de paradigma industrial, la cuarta revolución Industrial.


Recordemos que la primera revolución industrial surge con el empleo de la mecanización de los trabajos industriales gracias a los avances en las máquinas de vapor, la segunda revolución llega con el cambio de los procesos hacia una producción en masa utilizando sistemas de montaje en línea y utilizando electricidad, la tercera es en la que estamos, surge con la aplicación de sistemas computerizados en procesos industriales.

El paradigma de la cuarta revolución industrial es conseguir la fábrica inteligente (Smart Factory), un concepto pretencioso aunque asequible a futuro. Es altamente probable que hayan elegido un término de marketing (Smart) cuando realmente debería haberse decantado por otro más asequible:  Auto, es decir, conseguir la autogestión y control de la fábrica en los procesos de fabricación, control y calidad llegando hasta la relación con los clientes y proveedores.

Cuales son los objetivos que persigue?

No hace falta decirlo pero el factor beneficios siempre es la clave tanto para las empresas que venden tecnología como para las que la compran para producir de modo más eficiente, es un hecho que los procesos asistidos por ordenador han logrado reducir costes de forma significativa incidiendo principalmente directamente en varios frentes:
  • Reducción de la mano de obra necesaria para desarrollar la fabricación
  • Producción intensiva, masiva y uniforme
  • Automatización de los controles de calidad sistemáticos
Si bien todo esto ya existe y está desplegado en muchos procesos industriales, también es cierto que las empresas son algo más que sus procesos productivos, son las relaciones con sus clientes, proveedores, estados, los flujos de comunicación interna ..., algo que está bajo el paraguas de las tecnologías de la información. Estas relaciones son altamente dinámicas y extremadamente críticas para el funcionamiento de la empresa (qué supone para un organización estar sin correo, internet , servicio en general durante un breve periodo de tiempo?). Este dinamismo mutuo entre las organizaciones y las tecnologías de IT ha hecho crecer y desarrollar sobremanera la cantidad de tecnologías disponibles y expandirlas como algo propio del núcleo de la empresa (redes, bbdd, dispositivos,...)

Desde la irrupción de las tecnologías de la información a escala masiva se ha creado una bicefalia entre lo que hoy se llama IT (Information Technology) y OT (Operations Technology). Dos mundos históricamente separados... pero realmente separados como todos hemos sufrido alguna vez. Sin embargo la capacidad de adaptación existente en IT así como las tecnologías manejadas son algo nuevo para el personal de  OT, los perfiles de OT no están preparados para afrontar avalancha de requerimientos que les imponen (bastante tienen con mantener y afinar el proceso no?), por otra parte el personal de IT ya conoce y utiliza desde hace tiempo las herramientas necesarias para afrontar estos requisitos aunque hay que bajar a planta para sentir las características propias de este entorno, que las tiene y muchas.

Y aquí es donde está la verdadera clave de Industria 4.0, señores, hay que "unir" estos dos perfiles y permitir que los datos fluyan entre ambos mundos y además de modo bidireccional y no, no estamos hablando de MES, estamos hablando de integración de los procesos productivos dentro del ecosistema informático de la empresa, la empresa es todo: redes, sistemas, gestión, producción, calidad.Merece la pena leer el artículo "IT vs OT: Bridging the divide" de 2013 donde explica claramente de qué estamos hablando.

Una vez dispongamos de esta integración podremos pensar en Smart y automatizar aún más los procesos volviéndolos proactivos, reflexivos y abiertos al exterior, incidiendo de nuevo en los tres factores expuestos inicialmente, nada más que eso.

Y para alcanzar este paradigma ... qué se necesita?

Pues lo primero y más difícil no son las tecnologías...no, es disponer del apoyo directo de la dirección en la definición y consecución del objetivo, sin este apoyo no será posible afrontar los cambios necesarios, que los hay, ni delegar responsabilidades entre los mundos de IT y OT.

La creación de un equipo multidisciplinar es el segundo punto, IT y OT han de converger sí, pero ya converger en IT es algo complicado, verdad? (¿alguien sabe de todo: sistemas, redes, BBDD, ...?), una vez definido el equipo de IT , OT ha de hacer lo mismo, podremos empezar a hablar aunque falta el tercer factor, el funcional. Sólo las áreas productivas y de calidad saben lo que es realmente importante en el proceso y deben formar parte del equipo.

Pero hablar de qué?,.. pues de integración de ambos sistemas, nada más y nada menos y aquí entran las tecnologías de IT, las tecnologías de proceso de OT y la experiencia de producción y calidad en determinar la importancia de la información que debe fluir.

Hace no muchos años (meses?), la gente de IT se veía denostada por la gente de OT, incluso en grandes eventos de Allen Bradley y Siemens esta separación se repetía cada segundo, "¿qué hace una persona de IT aquí?, esto no es para ellos, nosotros somos la parte seria que maneja el núcleo de la empresa", cual no es mi sorpresa, cuando tras muchos años navegando entre ambos mundos, parece industria 4.0 y se cambia el sentido de tal modo que ahora somos la posibilidad de salvación, "...hablamos de integración IT-OT es fundamental, pero es difícil encontrar personas que tengan la posibilidad de hablar en los dos mundos...hay que crearlas". No, señores, no hay que crearlas, hay que formar a personal de IT en las características propias de los procesos y de OT, que las hay, pero no son tan diferentes de las que estamos lidiando desde hace muchos años. Personalmente no deja de asombrarme oír hablar de grandes avances en productos, comunicaciones y seguridad de PLCs por gente que no tiene nada claro lo que está diciendo (IP pública/Privada por ejemplo) y que ya hemos sobrepasado hace mucho tiempo en IT, cuando existen equipos con Windows 95 e incluso OS2 críticos en más de una organización, cuando la conciencia de seguridad (security, no safety) les acaba de explotar en la cara...pero esto es otra historia.

 Si ya disponemos de este equipo y conocemos el entorno fabril hay que componer el puzle objetivo y esto empieza, por la definición de las tecnologías que debemos usar en los siguiente ámbitos:

  • Redes de comunicaciones
  • Sistemas
  • Aplicaciones y BBDD

y ... Oh! sorpresa, debemos empezar por piedra angular de todas ellas, las redes de comunicaciones.


lunes, 9 de mayo de 2016

Despliegue de un sistema de mensajería instantánea sobre Windows (III): Zabbix

OpenFire y Zabbix

Zabbix se puede configurar como un cliente XMPP por lo que las alertas se pueden automatizar para que se envíen directamente al servidor OpenFire y ser recibidas por un grupo de usuarios.

Este era uno de nuestros objetivos principales a la hora de realizar el despliegue de este sistema, ser conscientes de las alarmas provenientes de nuestros sistemas de monitorización.



Nota: Se han detectado problemas con la versión 4.0.2, sin embargo la versión 3.6.4 funciona perfectamente para este propósito.

Configuración del servidor

Antes de nada, Zabbix debe estar preparado para gestionar mensajería XMPP, esto se realiza en tiempo de configuración del servidor y antes debemos instalar las librerías necesarias de Jabber:

sudo apt-get install libiksemel3 libiksemel-dev libiksemel-utils

Y en el momento de configuración y build de la distribución debemos indicar la inclusión de Jabber:

./configure --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-jabber --with-openipmi --with-libcurl


Zabbix: Configuración de Media type 

Media Type o definición de medios de comunicación con los usuarios que Zabbix empleará:


Antes de la arroba el nombre de usuario de jabber y tras la arroba el nombre del servidor Jabber que hemos instalado.

Zabbix: Configuración de grupos

Las alertas se podrían enviar identificando a cada usuario individualmente, sin embargo la presencia de los grupos facilita en gran medida la gestión de alarmas y sobre todo la discriminación de usuarios por tipo de alarma.

Podemos generar cuantos grupos queramos y asociar a los usuarios a ellos, es a cada grupo al que le atribuimos las alarmas que le llegarán, por lo tanto podemos tener diferentes ámbitos de alarmas para diferentes grupos (por localización, por severidad, por tipo de dispositivo....).

Configuramos un grupo en el que incluiremos los usuarios que deben recibir las alertas vía Jabber.



Zabbix: Configuración de usuarios

Debemos añadir la dirección de IM a los usuarios de Zabbix, esta es la dirección que nos ha asociado el servidor openFire.


Zabbix: Configuración de triggers

Por último sólo resta configurar los triggers para que se envíen por medio de jabber, esto lo hacemos por medio de las actions :


En la pestaña conditions podemos establecer condiciones de envío de los eventos, en este caso por severidad del trigger:


Finalmente indicamos el grupo y tipo de envío (Jabber)



Con estas opciones comenzaremos a recibir las alertas de zabbix en nuestro cliente spark como una difusión.

Enlaces artículos anteriores:

Despliegue de open Fire
Spark

miércoles, 4 de mayo de 2016

Despliegue de un sistema de mensajería instantánea sobre Windows (II) : Spark

Cliente Jabber : Spark

Spark es el cliente de mensajería instantánea (XMPP) de ignite Realtime (http://www.igniterealtime.org/downloads/index.jsp), se trata del complemento perfecto para openFire.

Al igual que para OpenFire existen versiones para Windows, Linux y Mac.

Es un cliente sencillo pero altamente configurable, permite establecer diálogos entre integrantes del mismo dominio de mensajería así como incorporarse a salas (Rooms) definidas.

Obviamente debemos centrarnos mucho en los permisos de acceso que adjudiquemos para no dejar cabida a brechas de seguridad.

Incorpora funciones interesantes como posibilidad de configurar proxy, SSO y una opción interesante que es el login automático, con esta última opción no tendremos la necesidad de loggearnos con cada inicio del PC.

Pantalla de Login

Pantalla principal

ChatRoom


Gestión de avatares

El avatar es la imagen que aparecerá en nuestro usuario.




Para que un usuario pueda modificar su avatar (imagenes) se debe configurar previamente en la consola de openFire la propiedad ldap.override.avatar a true



Con esto permitiremos que el usuario pueda cambiar su imagen

En la siguiente entrega nos centraremos en la integración de OpenFire con Zabbix utilizando Spark como cliente de IM

Acceso a la entrega anterior : Despliegue de OpenFire


lunes, 2 de mayo de 2016

Despliegue de un sistema de mensajería instantánea sobre Windows (I)

Descripción

Nuestro objetivo es el despliegue de un sistema de mensajería instantánea open source en entorno Windows.

En concreto pretendemos con este post desplegar openFire de Ignite Realtime en nuestra red, openFire es un sistema de sistema de mensajería instantánea open source compilado para varios sistemas operativos, entre ellos Windows.


¿Para qué necesitamos un sistema de mensajería instántanea dentro de nuestra red?

La respuesta obvia es para facilitar la comunicación entre los integrantes de un grupo, en el caso de los departamentos de IT puede ser una herramienta extremadamente útil en casos de deslocalización física , casos en que el correo es demasiado lento para ser tratado con celeridad.

Otra ventaja de un sistema de este tipo es la recepción de alarmas de monitorización de sistemas. El gran problema de estos sistemas es saber qué algo está sucediendo y que las personas adecuadas han recibido las alarmas, derivando la salida de las alarmas de monitorización a este sistema nos aseguramos que la comunicación llega en tiempo.

En la última parte del artículo veremos como integrar Zabbix con el servidor openFire.

OpenFire/Spark

OpenFire es el servidor de mensajería instantánea y chat open source (Apache License) desarrollado por Ignite Realtime, este servidor implementa el protocolo estándar XMPP (Extensible Messaging and Presence Protocol, basado en XML)  , también conocido como Jabber.

Es un servidor sencillo pero adecuado para un entorno empresarial, sobre todo por la inclusión de seguridad y soporte de LDAP.

Spark, por su parte es el cliente de Jabber desarrollado por la misma compañía y se integra perfectamente con OpenFire.

Ademñas de Spark existen multitud de clientes de Jabber, desde un interface web que instalaremos en el propio servidor hasta clientes para Android.

Instalación del servidor: OpenFire

Utilizamos OpenFire de ignite realtime en la última versión disponible en la fecha : v4.0.2 que podremos bajar de la propia web de ignite: https://www.igniterealtime.org


Una vez descargado el instalador (aproximadamente 56 MB) procedemos a lanzarlo


Una vez finalizado vemos la ventana de control de openFire desde donde podemos arrancar y parar el servicio así como el acceso a la consola de administración.



Al ser una primera instalación debemos configurar unas cuantas cosas más :
Idioma


Dominio de mensajería, puertos y encriptación :


Configuración de la base de datos:
Optamos por una configuración sencilla con una bbdd embedida en el software.


Este punto es interesante, si disponemos de Active Directory u otros servidores LDAP podremos configurarlo en este punto:



En nuestro caso optamos por vincularlo a Active Directory:



Introducimos los datos requeridos y realizamos el test Settings, durante unos segundos largos la pantalla queda difuminada realizando el test de conexiones, una vez terminado el test con éxito continuamos.



En este punto podremos tener problemas en dos frentes:
  • Con el Domain Controller elegido
    • En el caso de sistemas en que exista más de un DC, debemos seleccionar el que ostente los roles de Global Catalog y Operation Master.
    • En las pruebas realizadas hemos tenido problemas en el paso final de añadir usuarios administradores.
  • Con las notaciones de los DN pero básicamente es:
    • Base DN: origen de la raíz de búsqueda de los objetos del Active Directorio
    • OU="UnidadOrganizativaUsuarios",DC="dominio",DC="com"
    • Administrator DN:
      • Ubicación completa hasta el usuario que será administrador del sistema de mensajería
    • Ha de tener permisos de búsqueda en el directorio.
      • CN="userLogin",OU="UnidadOrgn",...,OU="UnidadOrg1",OU="UnidadOrganizativaUsuarios",DC="dominio",DC="com"

En los Domain Controllers del Active Directory se puede encontrar la herramienta ADSI edit (dentro de Administrative tools), desde ella podemos navegar por la jerarquía del directorio y nos irá mostrando el Distinguished Name de cada objeto, los parámetros Host y administrator a los que nos referimos.

En el siguiente paso definiremos el nombre mostrado a los usuarios de Active Directorio en el sistema de mensajería así como los filtros que queramos establecer sobre los mismos.

En primera instancia nos interesa dejarlo así para probar el sistema, siempre podremos volver posteriormente a la configuración para añadir filtros.



El último paso relativo al Active Directory es establecer la proyección de los campos de Active Directory para que los recopile el sistema de mensajería.

Dejamos todo por defecto.



Para finalizar la configuración debemos establecer el/los usuarios de Active Directory que serán administradores del sistema de mensajería, para ello introducimos los nombres de usuarios del Active Directory y pulsamos Continue para finalizar el setUp.






Lanzamos la consola de administración desde un navegador y nos loggeamos con el usuario administrador definido en el punto anterior:




Existen diversos errores comunes que pueden ocasionar fallos en el arranque de la consola :

  • Permisos en el directorio de instalación de OpenFire:
    • Verificar la consola si hay errores de creación de ficheros de Log
    • Aunque no es muy ético, salimos del paso dando permisos de Update/Read a Everyone.
  • Error en la página jsp relativa a la BBDD
    • Reinicia el server...
    • Al entrar en la consola volverá a pedir parámetros de configuración pero esta vez funcionará.
  • Puertos Abiertos
    • Habilitar siempre el Firewall del server y permitir el paso de los siguientes puertos
    • 5222-5223, 5229, 5262-5263, 5269, 5275-5276, 7070-7071, 7443, 7777, 9090-9091

Instalación del servicio Windows

Para ejecutar OpenFire como servicio debe instalarse previamente, para ellos debemos abrir un command prompt como administrator (Run as Administrator) y lanzar la siguiente instrucción:




Para evitar problemas de inicio de sesión puede ser necesario modificar el servicio y autenticarlo con las credenciales de usuario con que abrimos la consola de OpenFire.

Instalar SparkWeb

SparkWeb es un servicio web que hace las veces de cliente simple de Jabber, en este caso instalamos el complemento en el mismo server que aloja OpenFire.

En nuestro caso es un Windows 2008R2 y utilizaremos IIS como webServer.

Secuencia de pasos:
  • Agregar Rol Web Server al servidor Windows 2008R2, en caso de no estar ya añadido
  • Descargar sparkWeb de la web de IgniteRealtime (http://www.igniterealtime.org/projects/index.jsp)
  • Descomprimir la carpeta y moverla dentro de c:\inetpub
  • Agregar un nuevo sitio web y establecer como página default SparkWeb.html
  • Bindings: verifica que los puertos utilizados estén libres.
  • Start webSite.
Ahora sólo falta acceder al nuevo sitio mediante un navegador web:





En siguientes entregas veremos el cliente Spark y la integración con Zabbix.

jueves, 28 de abril de 2016

vSphere: Lista de todos los discos asociados a una VM


En más de una ocasión hemos tenido que inventariar las VMs y los discos asociados, sobre todo en aquellas ocasiones en las que nos quedamos cortos de espacio en las cabinas y debemos realizar un estudio para "racionalizar" el consumo.

PowerCli nos puede ayudar, la capacidad de scripting de powerShell aplicada a los objetos de vSphere nos permite obtener esta información en formato csv para que podamos importar en Excel.

El script supone que las VMs están bajo el control de un virtualCenter.


connect-viserver <VirtualCenter> -User <Usuario> -Password <Password>
Get-vm | get-harddisk | select Parent,StorageFormat,CapacityGB,Filename |sort Parent,FileName|Export-Csv c:\temp\VmDisk.csv


Este post ha sido extraído de http://pipe2text.com/?page_id=2635 , a continuación se reproduce la nota completa.
-------------------

I recently received an alarm that some of the datastores in my VMware environment were getting close to full. While auditing the environment to see if there was any space to cleared, I noticed that several VMs had thick provisioned disks when they should have been thin provisioned. Since I was dealing with many virtual machines, it would have been way too time consuming to visit the settings if each Virtual Machine and check the hard disks using the vCenter client. Using PowerShell, I was able to pull the hard disk inventory I needed for the VMDK files so I could see where corrections could be made. In this article I will be using the “Get-Harddisk” and the “Export-Csv” cmdlets to gather the harddisk information and exporting it to a csv file for easy viewng. The Get-Harddisk cmdlet is used to gather information for virtual disks on your vSphere serves. To do anything with PowerShell in VMware you will need to install VMware vSphere PowerCLI. You will then need to open PowerCLI and connect to your VMWare vCenter server by typing “Connect-VIServer vCenterServerName”.

First I would like to start by showing you how to get the hard disk information for one virtual machine. Type the following command replacing virtualmachinename with the name of the virtual machine for which you would like to retrieve disk information.
Get-Vm virtualmachinename | Get-Harddisk | Format-List
When executing the command above, it will return the following properties in for each virtual disk associated with the virtual machine specified.
StorageFormat
Persistence
DiskType
Filename
CapacityKB
CapacityGB
ParentId
Parent
Uid
ConnectionState
ExtensionData
Id
Name
Client
 
Now lets say that all this information is not important and you only want to see certain properties. In the following command I will select the “Parent” property to show the virtual machine name, the storage format, and filename to see the VMDK filename. Im am also piping it to the “Export-Csv” cmdlet to send the results to a csv file named “disks.csv” located in the “c:\output” directory. Type the following command replacingvirtualmachinename with the name of the virtual machine for which you would like to retrieve disk information.
Get-vm virtualmachinename | get-harddisk | select Parent,StorageFormat,Filename | Export-Csv c:\output\disks.csv –NoTypeInformation
In this next command I get the disk information for all virtual machines with all the default properties and export it to a csv file creating a disk inventory.
get-vm | get-harddisk | Export-Csv c:\output\disks.csv –NoTypeInformation
Finally, as shown earlier, if we do not want to see all properties, we can simply select the ones we need. In the following command I will get the disk information for all virtual vachines but only select the Parent, StorageFormat and Filename properties.
get-vm | get-harddisk | select Parent,StorageFormat,Filename | Export-Csv c:\output\disks.csv –NoTypeInformation
I hope this helps. If you would like any more information about the Get-Harddisk cmdlet, you can simply type “Get-Help Get-Harddisk”. If you have any questions or feedback, please leave a comment.

lunes, 25 de abril de 2016

Oracle: Cursores abiertos

En más de una ocasión nos hemos encontrado con alguna aplicación con errores o fallos en el código que no cierran adecuadamente los cursores abiertos contra la BBDD, para determinar tanto el número como las sesiones y máquinas causantes de este problema que puede "tirarnos" la BBDD tenemos la  siguiente nota extraída de Oracle que reproducimos al final.

Es altamente recomendable monitorizar con Zabbix estos valores de forma sencilla para determinar problemas antes de que ocurran, sobre todo en las fases iniciales de producción de los proyectos.


A partir de la nota podemos obtener queries útiles como las siguientes:

Query Genérica para ver los cursores abiertos por sesión, aplicación, máquina y cuenta

select  a. USER_NAME , a.sid , a. sql_text, p.PROGRAM, s. MODULE, s.MACHINE, count( *) as "OPEN CURSORS"
from v$open_cursor a,
     v$session s,
     v$process p
where s.SID = a.SID
  and s.paddr = p.addr
Group by a. user_name, a.sid, p.PROGRAM, s. MODULE, a. sql_text,s. MACHINE

Queries y cursores abiertos por query
select sid , sql_text, count( *) as "OPEN CURSORS" , USER_NAME
from v$open_cursor
Group by sid, sql_text, user_name

Sesiones con cursores abiertos
select a.value, s. username, s.sid, s. serial#
from v$sesstat a, v$statname b, v$session s
where a. statistic# = b.statistic# 
  and s.sid=a.sid
  and b.name = 'opened cursors current'
  and s.username is not null;

Cursores abiertos y máximo definido en parámetro de BBDD
SELECT  max(a.value) as highest_open_cur, p.value as max_open_cur
FROM v$sesstat a, v$statname b, v$parameter p
WHERE  a. statistic# = b.statistic# 
and b.name = 'opened cursors current'
and p.name= 'open_cursors'
group by p.value;




Similar to any application that uses Oracle Database as backend repository, Oracle Identity Manager runs several SQL statements. For every SQL statement execution in Oracle Database, certain area in the memory is allocated. Oracle PL/SQL allows you to name this area. This private SQL area is called context area or cursor. These cursors take up space in the shared pool, which is essential memory component of Oracle Database, specifically in the library cache. To keep a renegade session from filling up the library cache or clogging the CPU with millions of parse requests, the OPEN_CURSORS database parameter must be set to limit the cursors.
The OPEN_CURSORS parameter sets the maximum number of cursors that each session can have open, per session. For example, if the value of OPEN_CURSORS is set to 1000, then each session can have up to 1000 cursors open at one time.
Sometimes, the number of cursors in the database exceeds the maximum limit, and as a result, the following error is thrown:
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01000: maximum open cursors exceeded ORA-00604: error occurred at recursive SQL level 1
To troubleshoot the open cursors issue:
  1. Login to the SYS schema (or any schema with DBA privilege) of the database.
  2. Find out the session that is causing the error by using the following SQL statement:
    select a.value, s. username, s.sid, s. serial# 
    from v$sesstat a, v$statname b, v$session s 
    where a. statistic# = b.statistic#  
      and s.sid=a.sid 
      and b.name = 'opened cursors current' 
      and s.username is not null;

    ct a.value, s.username, s.sid, s.serial# from v$sesstat a, v$statname b, v$session s where a.statistic# = b.statistic#  and s.sid=a.sid and b.name = 'opened cursors current' and s.username is not null;
    The output displays the details of all sessions. You can see the maxed out session IDs.
  3. To display which queries are causing maxing out of open cursors, run the following SQL statement:
    select  sid ,sql_text, count(*) as "OPEN CURSORS", USER_NAME from v$open_cursor where sid in ($);
    
    The top queries that are opening maximum cursors and are not closing subsequent cursors gracefully are displayed.
    If some code is running above SQL queries, then check that Java Statement, Resultset, or connection are closing properly or not if they have access to the code. If the code is not closing the connections, then close all the open connections properly so that you can save memory leaks in the code and save database memory.
  4. To verify if you have set the value of the OPEN_CURSORS parameter high enough, monitor v$sesstat for the maximum opened cursors current, as shown:
    SELECT  max(a.value) as highest_open_cur, p.value as max_open_cur FROM v$sesstat a, v$statname b, v$parameter p WHERE  a.statistic# = b.statistic#  and b.name = 'opened cursors current' and p.name= 'open_cursors' group by p.value;
    
    If your sessions are running close to the limit, then increase the value of the OPEN_CURSORS parameter.