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鈥檚, 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!