Montando mod_cluster en Docker

By | May 13, 2019

Escribiendo los últimos posts de mod_cluster estuve echando un vistazo a la web del proyecto y acabé dando con la imagen que tienen para montar mod_cluster en un contenedor docker. Básicamente es una imagen con un Apache y mod_cluster embebidos listos para su uso, lo que nos quita de tener que compilar el módulo o bajar los binarios como veníamos haciendo tradicionalmente.

Continue reading

Monitorización de uso y temperatura de CPU y gráficas Nvidia en Grafana

By | May 8, 2019

Con el recolector de métricas Collectd podemos obtener fácilmente datos relativos a consumo, frecuencia y temperatura de CPU. Estos datos los volcamos en InfluxDB para su posterior representación en Grafana tal y como vimos hace tiempo.

Por otra parte en cuanto a métricas de tarjetas gráficas Nvidia, Collectd no cuenta con un plugin nativo en estos momentos, pero podemos hacer uso del plugin exec para recopilar las métricas necesarias con ayuda de scripts adicionales hechos a medida.

Continue reading

Enviando los logs de mod_security a Elasticsearch con Filebeat

By | April 11, 2019

Si queremos enviar los logs de mod_security con Filebeat, el principal problema es que tienen formato multilínea y para complicar algo más las cosas los logs se estructuran en diversas secciones (A-Audit Log Header, B-Request Headers, etc…) que, aunque nos dan diversa información sobre una transacción registrada, hacen que el parseo con grok sea bastante complejo. Afortunadamente mod_security permite generar los logs de auditoría en formato JSON, por lo que podemos enviar la información ya estructurada a nuestro stack ELK. Configuramos la siguiente directiva:

Continue reading

Administración de Docker Swarm con Portainer

By | March 30, 2019

Portainer nos proporciona una GUI web desde la que administrar un clúster de Docker Swarm: operatividad de contenedores (parada, reinicio, etc…), gestión de stacks, servicios, plantillas de imágenes, volúmenes para persistencia de datos…

En mi entorno parto de 4 nodos, 2 de ellos master y otros dos workers. Los 4 están configurados para poder servir peticiones de mis contenedores:

[root@docker-master1 ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
olw40ii82gslxgfjtmy5h2ncr *   docker-master1      Ready               Active              Leader              18.09.1
lvvjz6c4bfe4ez16kzkyuc31o     docker-master2      Ready               Active              Reachable           18.09.1
q8em4kafthkm1phkuuab48eau     docker-worker1      Ready               Active                                  18.09.1
hb4ylcxtchc6kevimak7wxr9e     docker-worker2      Ready               Active                                  18.09.1

Continue reading