NPM GoAccess Addon: Docker

1 minuto(s) de lectura

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!