La automatización, a partir de herramientas basadas en la nube, y la integración de plataformas fueron las claves para que Grupo...
Amazon Servicio Elasticsearch
Amazon Web Services, se ha estado moviendo para proporcionar servicios que hacen más del trabajo pesado para los desarrolladores y administradores, a cambio de un precio más alto. La compañía ha lanzado un producto nuevo: Amazon Servicio Elasticsearch , diseñado para que sea más fácil para los desarrolladores implementar el motor de búsqueda de código abierto y el análisis Elasticsearch popular que vive en la nube AWS.
Elasticsearch es un motor de búsqueda y análisis, en tiempo real y distribuido, que encaja perfecto dentro del entorno de la nube. Está orientado a documentos y no requiere un esquema a definir por adelantado. Además, no solo es compatible con consultas tanto estructuradas como no estructuras y con series temporales sino que también sirve como sustrato para otras aplicaciones y herramientas de visualización, incluída Kibana.
Creación de un dominio
Como siempre, se puede crear un dominio utilizando la Interfaz para líneas de comando de AWS (Command Line Interface – CLI), Herramientas de AWS para Windows PowerShell o la API del Servicio Elasticsearch de AWS. Hacer clic en “Comenzar” e ingresar un nombre para el dominio (ej. my-es-cluster):
Seleccionar un tipo y recuento de instancia (ambos pueden cambiarse luego de ser necesario):
Algunas pautas para elegir los tipos de instancias apropiadas:
- T2 – Desarrollo (Dev) y prueba (test) (también sirven para los nodos principales dedicados – dedicated master nodes).
- R3 – Cargas de procesos pesadas para lectura o con consultas complejas (ej.: agregaciones anidadas).
- I2 – Almacenamiento de datos a gran escala y alta escritura.
- M3 – Cargas de lectura/escritura equilibradas.
Al Activar el nodo principal dedicado (Enable dedicated master), Amazon ES creará un nodo principal independiente para el clúster. Este nodo no retiene datos ni responde a las peticiones de carga. Recomendamos activar esta opción y utilizar, al menos, tres nodos principales para garantizar la máxima estabilidad del clúster. Además, los clústeres deben estar siempre conformados por nodos principales impares para protegerse de casos de disociación (split brain).
Al activar la zona de detección (Enable zone awareness), Amazon ES distribuirá los nodos a través de múltiples Zonas de Disponibilidad (Availability Zones) en la región para aumentar la disponibilidad. Al elegir esta opción, se deben configurar réplicas utilizando el Índice API de Elasticsearch; también se puede utilizar la misma API para crear nuevos índices.
Utilizar almacenamiento (SSD) de uso general EBS para los nodos de datos. Los datos también se pueden almacenar en la instancia o utilizar otro tipo de volumen EBS, lo que permite almacenar más datos y ejecutar instancias menos costosas. Sin embargo, el almacenamiento dentro de la instancia ofrece mejor rendimiento de escritura. Se pueden ejecutar grandes conjuntos de datos en instancias I2 (tienen hasta 1,6 terabytes de almacenamiento SSD por nodo).
A continuación, hay que establecer las políticas de acceso. En este caso, se definieron políticas muy abiertas para simplificar las pruebas (¡no hacer esto en el clúster!). Se pueden utilizar plantillas basadas en IPs o en usuarios, como así también un asistente para crear una política de mayor restricción.
Por último, revisar la configuración y hacer clic en “Confirmar y crear”:
El clúster tarda unos minutos en crearse y se incluye dentro del Dashboard del Servicio Elasticsearch (se agregaron algunos documentos antes de tomar esta captura de pantalla):
¡Y listo!
Cargar de documentos
Al seguir los pasos en “Divirtiéndose: Python y Elasticsearch, 1era parte” se puede instalar la librería de Python para Elasticsearch y localizar el punto final del clúster en la Consola de Administración de AWS (AWS Management Console).
Seguir las pautas que figuran en entrada del blog. Luego, pegar el código Python en un archivo y crear algunos datos de ejemplo. El nuevo índice aparece en la consola:
Consultar un documento
Con los datos ya cargados, hacer clic en el link de Kibana para el clúster y ver qué más se puede hacer:
Kibana (v4) se abre en otra pestaña y se puede configurar para indexar los posts:
Kibana confirma los campos en el dominio:
A partir de eso, se puede utilizar Kibana para visualizar los datos.
La versión 3 de Kibana se encuentra disponible y se accede mediante _plugin / kibana3 / hasta el final del clúster.
Otros beneficios
Se puede escalar el clúster por medio del CLI (aws ES Update-elasticsearch-dominio de configuración), API (UpdateElasticsearchDomainConfig), o por consola. Sólo se necesita establecer la nueva configuración y Amazon ES crea el nuevo clúster y copia los datos sin ningún tiempo de inactividad.
Se pueden dirigir los registros desde CloudWatch hacia Amazon ES al crear un dominio Amazon ES, navegar la Consola de Registros de CloudWatch y hacer clic en Suscribirse a Lambda/Amazon ES, siguiendo los pasos del asistente:
El asistente ayuda a configurar un patrón para filtrar la suscripción de los registros de entrada (el patrón es opcional, pero permite definir un esquema). A continuación aparecen ejemplos de dashboards de Kibana con diferentes tipos de registros, junto con los patrones de filtro necesarios para dirigir los registros a Amazon ES:
- VPC Flow Dashboard: utilizar este patrón de filtro para asignar las entradas del registro.
- Lambda Dashboard: utilizar este patrón para diagramar las entradas del registro.
- CloudTrail Dashboard: no se necesita ningún patrón de filtro; las entradas del registro poseen un formato de auto-identificación de JSON.
Amazon ES es compatible con el plugin de análisis UCI y Kuromoji, que en general pueden configurarse a través de la API de Mapeo de Elasticsearch. Amazon ES no permite plugins comerciales, tales como Shield o Marvel. Los equivalentes son Administración de Identidad y Acceso (IAM) y CloudWatch.
Amazon ES realiza una captura del clúster todos los días de forma automática y la almacena durante 14 días; luego, se pueden contactar con AWS para restaurar el clúster desde una copia de seguridad almacenada. Se puede establecer la hora del día para la copia de seguridad a través de la «hora de captura automática». Además, se puede utilizar la API de Elasticsearch Snapshot para realizar una captura del clúster y guardarla en el S3 o restaurar una captura de Elasticsearch (Amazon ES o autogestionada) a un clúster de Amazon ES desde el S3.
Cada dominio de Amazon ES también reenvía 17 indicadores independientes a CloudWatch. Estos parámetros se encuentran en la pestaña de monitoreo de la Consola de Amazon ES o CloudWatch. Las métricas de Estado del clúster (verde, amarillo y rojo) muestran el estado del clúster subyacente: verde significa que todos los fragmentos se asignan a un nodo; amarillo significa que al menos un fragmento de la réplica no está asignado a un nodo y rojo significa que al menos un fragmento primario no está asignado a un nodo. Es común que un clúster esté amarillo cuando un solo nodo y replicación de datos se establezcan en 1 (Logstash lo realiza por defecto). La solución más simple es agregar otro nodo al clúster.
La utilización de la CPU está afectada directamente por el proceso de peticiones (lectura o escritura). Cuando esta métrica se encuentra alta, se debe aumentar la replicación y agregar instancias al clúster para permitir el procesamiento paralelo adicional. Del mismo modo, para la presión de Memoria JVM, aumentar el contar de instancias o cambiar a instancias R3. Establecer las alarmas de CloudWatch en estas métricas para mantener el 10-20% de almacenamiento y CPU libre en todo momento.
Con Nubity podrás monitorear y delegar la administración de todos tus servidores y aplicaciones para mejorar el performance y evitar caídas de la infraestructura TI de tu negocio.
Si quieres conoce más información, te invitamos a entrar aquí: https://goo.gl/0jxcjZ
Fuente por Jeff Barr en 01 Octubre 2015 en Amazon Servicio Elasticsearch.