diff --git a/README.md b/README.md index 0ac91e1..27de647 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,25 @@ ## Gestión de logs *nginx* archivados -Consulta información sobre IP(s) disponibles en ipinfo.io con o sin token. +- Consulta información sobre IP(s) disponibles en ipinfo.io con o sin token. -Carga logs archivados de nginx en base de datos. Consulta con ipinfo.io y registra -en base de datos. - -Consultas y reportes según información en la base de datos. - -Mueve archivos ***log.?.gz*** del servidor existentes en `/var/log/nginx` al directorio -de usuario "**ruta_base**" en el servidor especificado en `./config.cfg`. Utiliza el +- Mueve archivos ***log.?.gz*** del servidor existentes en `/var/log/nginx` al directorio +de usuario **"ruta_base"** en el servidor especificado en `./config.cfg`. Utiliza el script `muevelogz.sh` (script en servidor). -Mueve los archivos ***log.?.gz*** del directorio de usuario del servidor al directorio -local "**destino_log**" especificado en `./config.cfg`. +- Mueve los archivos ***log.?.gz*** del directorio de usuario del servidor al directorio +local **"destino_log"** especificado en `./config.cfg`. -Descomprime archivos **`.gz`** y concatena los respectivos archivos de log. +- Descomprime archivos **`.gz`** y concatena los respectivos archivos de log. Borra los archivos utilizados en concatenación. Script `./muevelog.sh`. -ej. archivo de configuración `./config.cfg` -```cfg -[bash_script] -ruta_base=mi_server://home/server_user/nginx_log.old/ -destino_log=/home/server_logs/nginx_old -server_name=mi_server -server_script=//home/server_user/scripts/muevelogz.sh +- Crea base de datos ***SQLite3*** **`./ipinfo.db`** con tablas de **registro** y de **visitas**. -[iplocate] -token = '?token=1234567890abc' -``` -- ***mi_server***: parte de *ruta_base*, nombre del host según configuración - en `~/.ssh/config`. -- **ruta_base** : es la ruta en el servidor donde se mueven los logs - archivados (.gz) desde `/var/log/nginx/` (termina en `/`). -- **destino_log** : ruta donde se guardan local y temporalmente los - archivos *log.?.gz*. -- **server_name** : nombre del host según configuración en `~/.ssh/config`. -- **server_script** : ruta en el servidor, del script que mueve los *log.?.gz*. +- Carga logs archivados de nginx en base de datos. +- Consulta con ipinfo.io y registra en base de datos. + +- Consultas y reportes según información en la base de datos. -Crea base de datos ***SQLite3*** **`./ipinfo.db`** con tablas de **registro** y de **visitas**. ## Uso @@ -54,13 +35,15 @@ ej. alias `alias iploc='~/ruta/script/iplocate.py'` iploc -h - Muestra esta ayuda. - Uso para consultas: + Consultas ipinfo.io: iploc - Consulta la información de disponible en ipinfo.io. + iploc -f - Consulta info. de las IPs en (ipinfo.io). iploc -t - Consulta la info. de usando 'token' de ipinfo.io, especificado en config.cfg. + iploc -F - Consulta info. de las IPs en (token ipinfo.io). + + Consultas base de datos: iploc -d - Consulta la información de disponible en base de datos. - iploc -f - Consulta info. de las IPs en (ipinfo.io). - iploc -F - Consulta info. de las IPs en (token, ipinfo.io). iploc -D - Consulta info. de las IPs en (base de datos). Operaciones base de datos: @@ -74,7 +57,7 @@ ej. alias `alias iploc='~/ruta/script/iplocate.py'` **`iploc --sync`** Realiza el proceso de copia de archivos del servidor, extracción y concatenado. -Explicado con detalle mas arriba. +Explicado al comienzo de este documento. **`iploc -c`** Poblar tabla **visita** de la base de datos. Carga los registros en archivos de log en la tabla. @@ -84,7 +67,7 @@ Consulta a `ipinfo.io` por cada ip registrada en **visita** (una vez por ip). Guarda los datos en tabla **registro**. **`iploc -M`** -Genera mapas según vistas registradas, visitas 'infructuosas' de color rojo. Directorio `maps/`. +Genera mapas según vistas registradas. Visitas *infructuosas* de color rojo. Directorio `maps/`. ![img](./maps/map_thumb.svg) @@ -168,7 +151,7 @@ ej. formato `./archivo_IPs`. ### Sicronización manual No es necesario el uso manual del script, ya que este es llamado por `iploc --sync`. -Pero ya que existe, es conveniente tener la opción de llamar manualmente a las funciones. +Pero ya que existe, puede resultar conveniente tener la opción de llamar manualmente a las funciones. `./muevelog.sh -h` ``` @@ -203,10 +186,28 @@ Crear `alias iploc='~/nginx_data/iplocate.py'`. Modificar ruta **logdest** en `muevelogz.sh` y copiar en el servidor. ``` # logdest debe ser la misma ruta especificada en config.cfg como *ruta_base* -logdest= +logdest=/home/server_user/nginx_log.old ``` -Crear archivo de configuración según ejemplo mostrado en la primera sección -de este documento. +Crear archivo de configuración **config.cfg**. +ej. archivo de configuración `./config.cfg` +```cfg +[bash_script] +server_name=mi_server +ruta_base=mi_server://home/server_user/nginx_log.old/ +server_script=//home/server_user/scripts/muevelogz.sh +destino_log=/home/local_user/.cache/nginx_old + +[iplocate] +token = '?token=1234567890abc' +``` +- ***mi_server***: parte de *ruta_base*, nombre del host según configuración en `~/.ssh/config`. +- **ruta_base** : es la ruta en el servidor donde se mueven los logs archivados (.gz) desde +`/var/log/nginx/` (termina en `/`). +- **destino_log** : ruta donde se guardan local y temporalmente los archivos *log.?.gz*. +- **server_name** : nombre del host según configuración en `~/.ssh/config`. +- **server_script** : ruta en el servidor, del script que mueve los *log.?.gz*. + + Correr `iploc -h` para crear base de datos. @@ -224,7 +225,7 @@ Correr `iploc -h` para crear base de datos. └── 📄️ sql_alch.py ``` -Seguir los pasos explicados en **Uso**. +Seguir los pasos explicados en [Uso](#uso). ### Dependencias
diff --git a/iplocate.py b/iplocate.py index 6b085d1..a24b166 100755 --- a/iplocate.py +++ b/iplocate.py @@ -237,13 +237,15 @@ def uso(): [bold yellow]iploc -h[/bold yellow] [green]- Muestra esta ayuda.[/green] - [bold blue]Uso para consultas:[/bold blue] + [bold blue]Consultas ipinfo.io:[/bold blue] [bold yellow]iploc[/bold yellow] [blue][/blue] [green]- Consulta la información de disponible en ipinfo.io.[/green] + [bold yellow]iploc -f [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (ipinfo.io).[/green] [bold yellow]iploc -t [/bold yellow][blue][/blue] [green]- Consulta la info. de usando 'token' de ipinfo.io, especificado en config.cfg.[/green] + [bold yellow]iploc -F [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (token ipinfo.io).[/green] + + [bold blue]Consultas base de datos:[/bold blue] [bold yellow]iploc -d [/bold yellow][blue] [/blue] [green]- Consulta la información de disponible en base de datos.[/green] - [bold yellow]iploc -f [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (ipinfo.io).[/green] - [bold yellow]iploc -F [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (token, ipinfo.io).[/green] [bold yellow]iploc -D [/bold yellow][blue] [/blue] [green]- Consulta info. de las IPs en (base de datos).[/green] [bold blue]Operaciones base de datos:[/bold blue] @@ -253,7 +255,6 @@ def uso(): [bold blue]Mapa de visitas:[/bold blue] [bold yellow]iploc -M [/bold yellow][green]- Genera mapa según registro de la BD (cod. 200 y otros).[/green] - """ console.print(ayuda) diff --git a/maps/map_thumb.svg b/maps/map_thumb.svg index 8695610..accb6a7 100644 --- a/maps/map_thumb.svg +++ b/maps/map_thumb.svg @@ -4122,6 +4122,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5103,6 +5346,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Maps & Data (C) OpenStreetMap.org contributors diff --git a/muevelogz.sh b/muevelogz.sh index 3a61cbc..33e7388 100755 --- a/muevelogz.sh +++ b/muevelogz.sh @@ -1,11 +1,13 @@ #!/usr/bin/env bash # logdest debe ser la misma ruta especificada en config.cfg como *ruta_base* -logdest= -serv_user="${USER}" +logdest=/home/$USER/nginx_log.old +serv_user="${USER}" logdir=/var/log/nginx +mkdir $logdest 2>/dev/null + mueve_loggz(){ if [[ "$(ls $logdir/*.log.*.gz 2>/dev/null)" ]]; then printf 'Moviendo logs.gz de %s/\n' "${logdir}"