NPM GoAccess Addon: Docker
NPM vimos que es un proxy inverso y sobre dicha base vamos a trabajar esta entrada.
Lo que vamos a realizar es la integración de GoAccess mediante un docker sobre NPM, para poder consultar de forma detallada los logs de nuestros microservicios.
Los logs que consulta son los que siguen el siguiente patrón:
- proxy-host-*_access.log.gz
- proxy-host-*_access.log
- proxy-host-*.log
Y gracias a ellos tendremos información muy útil de forma visual desde el estado de consultas, número de visitantes, origen de visitantes, navegador usado, IP’s, sistemas operativos, …
Instalación
NPM
Requisito obligatorio tener instalado Docker: NPM
GoAccess Addon
Vamos a tomar la base de configuración del docker de NPM para configurar el addon. En primer nos dirigimos a la ruta donde alojamos el proyecto:
cd $HOME/docker/npm
Hacemos un backup del fichero de configuración:
cp docker-compose.yml docker-compose.old
Definimos un upgrade del mismo con las nuevas variables:
cat << EOF >> $HOME/docker/npm/docker-compose.yml
goaccess:
image: xavierh/goaccess-for-nginxproxymanager:latest
container_name: GoACCESS_NPM
volumes:
- './datos/logs/:/opt/log/:ro'
ports:
- '82:7880'
environment:
- PUID=0
- PGID=0
- TZ=Europe/Madrid
- SKIP_ARCHIVED_LOGS=False
- BASIC_AUTH=True
- BASIC_AUTH_USERNAME=Empalador
- BASIC_AUTH_PASSWORD=Nocturno
restart: always
EOF
NOTA: Si quieres montar el servicio en una arquitectura ARM sustituye la variable xavierh/goaccess-for-nginxproxymanager:latest por justsky/goaccess-for-nginxproxymanager:latest
Vamos a repasar los principales parámetros que hemos añadido sobre la anterior base, para poder adaptarlos a nuestro sistema y configuración especifica:
Parámetro | Función |
---|---|
./datos/logs/:/opt/log/:ro |
Ruta donde NPM almacena los logs y consulta en modo lectura |
82:7880 |
Puerto de gestión Web :82 |
PUID=0 |
Habilitamos persmisos de root para consultar logs |
PGID=0 |
Habilitamos persmisos de root para consultar logs |
TZ=Europe/Madrid |
Zona horaria Europa/Madrid |
SKIP_ARCHIVED_LOGS=False |
Habilitamos consultar todos los logs, incluso los comprimidos |
BASIC_AUTH=True |
Habilitamos acceso con usuario y contraseña al servicio |
BASIC_AUTH_USERNAME=Empalador |
Usuario creado para acceso, recomiendo cambiarlo |
BASIC_AUTH_PASSWORD=Nocturno |
Contraseña creada para acceso, recomiendo cambiarla |
restart: always |
Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio |
Una vez configurado, levantamos nuevamente el servicio para ser reconfigurado y ejecutado:
docker-compose up -d
Si consultamos el estado del docker, veremos que los logs han sido cargados:
En mi caso, el servicio estaría disponible en la dirección web http://192.168.1.90:82
Nginx Proxy Manager
Configuramos dominios y certificados:
Y listo!