====== Monitorización GIS ======
{{indexmenu_n>20}}
===== Pandora FMS GIS =====
Un **mapa GIS** es una representación visual de la localización geográfica de los agentes de la instalación de Pandora FMS. Con este mapa se puede observar la posición actual, así como un pequeño resumen histórico de las posiciones de los agentes.
Para poder utilizar los mapas GIS se deben tener configurados los agentes, el servidor y la consola.
===== Instalación =====
==== Configuración del Agente ====
El archivo ''pandora_agent.conf'' de los [[:es:documentation:pandorafms:installation:05_configuration_agents|Agentes Software]] cuenta con unos parámetros para configurar el posicionamiento del dispositivo:
* Longitud.
* Latitud.
* Altitud.
* Descripción de posición.
Puede utilizarse también el parámetro ''gis_exec'' para indicar la ruta de un //script// que devuelva las coordenadas del dispositivo en una cadena con el formato "latitud,longitud,altitud".
Ejemplo:
# Agent position parameters
# Those parameters define the geographical position of the agent
# gis_exec: Call a script that returns a string with "latitude,longitude,altitude"
# i.e.: 41.377,-5.105,2.365
#gis_exec /tmp/gis.sh
# latitude
latitude 40.37346827
# longitude
longitude -3.6418548
# altitude
altitude 637
# Position description
position_description Madrid, Vallecas
==== Configuración del Servidor ====
Las funcionalidades GIS deben ser habilitadas en el servidor con el parámetro ''[[:es:documentation:pandorafms:installation:04_configuration#activate_gis|activate_gis]]'' . Cuando este indicador esté fijado en ''1'' , el servidor procesará toda la información GIS recibida de los agentes.
Con el posicionamiento de datos existe la posibilidad de almacenar posiciones del agente en Pandora FMS, pero estos datos provienen de una fuente que no es completamente fiable, y puede provocar que un agente sin cambios de posición significativos envíe información de cambio de localización. Para evitar esto, el parámetro [[:es:documentation:pandorafms:installation:04_configuration#location_error|location_error]] fija la distancia que se considera como la //misma// posición. Esto es una tolerancia al error en el umbral de la posición, y mientras que la localización del agente se mantenga en ese umbral, no se considerará que haya algún cambio de posición.
**Discovery server e información sobre localización:**
Utilizando un algoritmo de geolocalización inverso y una base de datos con la relación de direcciones IP e información de posicionamiento, el Discovery server puede //calcular// la posición de los agentes descubiertos. Para ello, bien puede usar un fichero formateado de [[http://www.maxmind.com/app/geolitecity|MaxMind GeoIP GeoLiteCity]], o un par de tablas en la base de datos con esa información.
Así pues, hay dos parámetros que definen este comportamiento del Discovery server: el ''[[:es:documentation:pandorafms:installation:04_configuration#recon_reverse_geolocation_file|recon_reverse_geolocation_file]]'', utilizado para señalar el fichero con la información de la geolocalización inversa (utilizando el formato MaxMind GPL ''GeoLiteCity.dat'' ), y el parámetro ''[[:es:documentation:pandorafms:installation:04_configuration#recon_location_scatter_radius|recon_location_scatter_radius]]''. El algoritmo calculará una posición aproximada para los agentes y estos se dispondrán al azar alrededor de las posiciones calculadas, tomando en cuenta el radio indicado en ''recon_location_scatter_radius'' .
También puede usarse el servicio de geolocalización inversa que proporciona el API de Google® u Openstreet Maps®.
* Puede activar la geolocalización inversa de Google® poniendo el parámetro ''[[:es:documentation:pandorafms:installation:04_configuration#google_maps_description|google_maps_description]]'', a ''1'' .
* Puede activar la geolocalización inversa de Openstreet Maps® poniendo el parámetro ''[[:es:documentation:pandorafms:installation:04_configuration#openstreetmaps_description|openstreetmaps_description]]'', a 1.
* Tenga mucho cuidado usando esta funcionalidad porque **disminuye el rendimiento del servidor de Pandora FMS**.
* Tenga también también en cuenta que necesita **acceso a Internet** para usar el API Google® u Openstreet Maps® y que, por supuesto, esta funcionalidad depende de la disponibilidad de los proveedores de estos servicios.
**Ejemplo de Configuración:**
# Flag to activate GIS (positional information for agents and maps) by default it is deactivated
activate_gis 1
# Radius of the Error in meters to consider two gis locations as the same location.
location_error 10
# Recon reverse geolocation file (databases with the reverse geolocation information using
# MaxMind GPL GeoLiteCity.dat format).
# Comment it to disable the IP geolocation on agent creation.
recon_reverse_geolocation_file /usr/local/share/GeoIP/GeoLiteCity.dat
# Radius (in meters) of the circle in where the agents will be place randomly when found by a recon task
# The center of the cicle is guessed by geolocating the IP.
recon_location_scatter_radius 1000
# This enables realtime reverse geocoding using Google Maps public api.
# This requires internet access, and could have performance penalties processing GIS
# information due the connetion needed to resolve all GIS input.
google_maps_description 1
# This enables realtime reverse geocoding using Openstreet Maps public api.
# This requires internet access, and could have performance penalties processing GIS
# information due the connetion needed to resolve all GIS input.
# You can alter the code to use a local (your own) openstreet maps server.
openstreetmaps_description 1
Existe un //plugin// que recalcula la localización GIS de los agentes. La ruta por defecto del plugin es (el usuario puede personalizar dicha ruta):
/usr/share/pandora_server/util/agent_gis_update.pl
==== Configuración de la Consola ====
En la Consola, para utilizar las funcionalidades GIS, primero deberá estar activado en la configuración principal. Vaya al menú **Management** → **Setup** → **Setup** → **General setup**. Haga clic en **Enable GIS features** y luego pulse el botón ** Update**. Con esto estarán disponibles algunas secciones nuevas de la interfaz de usuario (por ejemplo **Operation** → **Topology maps** → **GIS Maps**).
=== Configuración Básica ===
En **Setup** → **Setup** → **GIS map connection** definirá las conexiones que pueden ser utilizadas con **map servers **para proporcionar mapas para las funcionalidades GIS.
* **Group**: El grupo al que pertenece la conexión. **Aunque el usuario quien está creando la conexión de mapa GIS no pertenezca explícitamente** al grupo **TODOS** ([[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#el_grupo_22all22_28todos2fcualquiera29|ALL]]), aún así podrá asignar el grupo **ALL** como grupo al que pertenece la conexión.
* **Number of zoom levels**: El número de niveles de aumento (//zoom//) definido en el mapa.
* **Default zoom level**: El nivel de aumento por defecto recomendado para el mapa (que se puede redefinir en el mapa) y es el nivel de //zoom// utilizado cuando el mapa está desplegado.
Una vez que los parámetros básicos están configurados, el administrador debe seleccionar un tipo de conexión y, dependiendo del tipo, existirán diferentes opciones.
=== OpenStreetMap ===
La instalación por defecto de Pandora FMS tiene una conexión predefinida con [[http://www.openstreetmap.org/|OpenStreetMap®]], por lo que los usuarios pueden probar y ver directamente las funcionalidades GIS.
Para usar un tipo de mapa OpenStreet®, el único parámetro que se necesita es la URL del **title server**, tal como se muestra en esta imagen:
{{ :wiki:pfms-setup-setup-gis_map_connection-create_new-openstreetmaps.png }}
Ejemplos:
http://tiles.example.com/${z}/${x}/${y}.png
http://tile.example.com/${z}/${x}/${y}.png
Puede consultar una [[https://wiki.openstreetmap.org/wiki/Tile_servers|lista oficial de servidores en el sitio web de OpenStreetMap®]], siga atentamente las instrucciones de nombrado y acreditación.
=== Google Maps ===
Pandora FMS también incluye la conexión a Google Maps®. Para ello, es necesario que una **contraseña** válida sea obtenida desde Google® (ver [[https://developers.google.com/maps/documentation/directions/#api_key|Google Maps API policy ]]) y sea colocada en el campo correspondiente de la definición de la conexión.
{{ :wiki:pfms-setup-setup-gis_map_connection-create_new-google.png }}
Con esta contraseña es posible definir varias conexiones utilizando diferentes tipos de mapas base: //Hybrid//, //Physical// o //Satelite//.
Es posible que esta contraseña tarde varios minutos en funcionar tras ser obtenida.
=== Imagen Estática ===
Otro tipo de conexión provista es utilizar una **Static Image** como mapa. Para utilizar este tipo de mapa, la imagen debe estar como EPSG:4326 (WGS84).
En este caso los parámetros que se necesitan para la definición del mapa son **url** de la imagen, la **altura** y el **ancho** de la imagen, y los límites posicionales (//longitud// y //latitud//) de los bordes de la imagen (derecha, izquierda, parte superior y parte inferior).
=== Servidor WMS ===
Si el servidor de Pandora FMS está en un lugar sin acceso directo a Internet no es posible usar un servicio de mapas en línea. También puede preferir utilizar su propio servidor de mapas para tener mayor flexibilidad, ir más rápido, o definir su propio tipo de [[:es:documentation:pandorafms:introduction:03_glossary#mosaico|mosaicos]].
Desde la versión 723 es posible añadir conexiones a servidores WMS (Web Map Service), tales como [[http://geoserver.org/|GeoServer]]. Para ello, es necesario introducir la dirección en la que se provee el servicio y el nombre o nombres de las capas a obtener de él.
{{ :wiki:pfms-setup-setup-gis_map_connection-create_new-wms_server.png }}
Puede ver cómo realizar una instalación y configuración mínima de un servidor GeoServer en [[:es:documentation:pandorafms:technical_annexes:13_geoserver_installation|este anexo técnico]].
=== Centro del Mapa y Posición por Defecto ===
Lo último que hay que definir en una conexión de mapa es el //centro// del mapa y la //posición por defecto// para agentes sin datos posicionales. Para definirlos, es posible previsualizar el mapa y hacer clic en él para fijar estos parámetros, dependiendo de cuál (**Map centre** o **Default position for agents without GIS data**) se haya seleccionado con el selector **Change in the Map**.
En este mapa de previsualización es posible desplazarse utilizando las flechas verdes de la parte superior izquierda, cambiar el nivel de //zoom// con los iconos **//+//** y **//-//** , o usar la //lupa// para verlo en //zoom// completo.
También es posible fijar la posición introduciendo los valores en sus celdas de entrada correspondientes (el separador decimal es el punto).
{{ :wiki:connection_configruation_set_center_default.png }}
Una vez que todos los parámetros de conexión hayan sido fijados, será posible guardar la conexión para utilizarla en el configurador de mapas pulsando en el botón **Save**.
==== GIS Maps ====
Una vez que haya definido las conexiones, estas podrán utilizarse para definir mapas en el menú **GIS Maps**.
El menú lleva al usuario a una pantalla con mapas definidos, donde es posible editar un mapa, visualizar el mapa, fijar el mapa por defecto (//default map//) o borrar un mapa.
Mapa de muestra:
{{ :wiki:pfms-topology_maps-gis_maps-list_of_gis_maps_sample.png }}
Existe también un botón para crear nuevos mapas (botón **Create**).
Debe establecerse un **mapa por defecto**, que será el empleado en la vista del agente para mostrar su posición.
**Crear un Mapa GIS**
Cuando esté en la página de creación del mapa, lo primero que tiene que hacer es añadir un nombre (**Map Name**) y una //conexión// de mapa (**Add Map connection**), seleccionando alguna de las que ya están disponibles. Es posible añadir más de una, que estará disponible después como capa base (solo una de ellas puede estar activa al mismo tiempo).
{{ :wiki:gis_map_builder_main.png }}
Después seleccionar la conexión (o cuando la conexión por defecto del mapa se cambia) la consola de Pandora FMS le preguntará si quiere usar los datos por defecto de la conexión para el mapa. En caso afirmativo la consola rellenará (o actualizará) **todos los datos de posicionamiento** con los ya definidos en la conexión, y el usuario tendrá que fijar únicamente el //nivel zoom por defecto//. Si se rechaza el uso de los valores por defecto, **no se realizará ningún cambio** y simplemente se añadirá la conexión.
**Definición de Capa**
Cuando los parámetros básicos del mapa hayan sido fijados, será el momento de definir las capas (**LAYERS**) del mapa que se utilizarán para seleccionar qué elementos mostrar en el mismo. **Si es el mapa por defecto** es innecesario definir capa alguna porque se utilizará para mostrar la posición del agente en la vista de agentes.
Cada mapa tiene una o más capas para mostrar los agentes. Cada capa puede mostrar los //agentes de un grupo//, una //lista de agentes// y/o //un grupo con un agente como representante//. De este modo es fácil fijar los agentes que se mostrarán en cada capa.
Las capas se pueden configurar como //visibles// u //ocultas//, y es posible:
* Seleccionar el grupo con el selector para añadir sus agentes.
* Añadir agentes con la celda de manera individual.
* Añadir un grupo con un único agente como representante.
Una vez se ha creado un grupo en una capa con su agente representante, no se puede generar otro grupo igual con otro agente.
Una vez que la capa está configurada (estará completamente guardada, con el mapa completo, al hacer clic en el botón **Save map**) será desplazada a la columna de la izquierda de las capas definidas, donde es posible //ordenarlas// (mover hacia arriba y hacia abajo), //borrarlas// o //editarlas// de nuevo.
Una vez que termine con la definición de las capas del mapa, puede guardarlas todas con el botón **Save map** (botón **Update map** en el caso de la edición de un mapa).
===== Operación =====
==== Mapas GIS ====
El menú de mapas GIS despliega todos los mapas definidos. Cada uno puede visualizarse desplegando el mapa con los parámetros definidos en el mapa. A su vez, una vez abierto, cada mapa se puede editar pulsando cobre el botón de **Setup** ubicado en el borde superior.
{{ :wiki:pfms-topology_maps-gis_maps-list_of_gis_maps-setup_gear.png }}
=== Desplazarse por el mapa ===
Los controles para el mapa incluyen cuatro flechas verdes en la esquina superior izquierda que permiten desplazarse por el mapa en cada una de las direcciones. Con los iconos + y - para aumentar y disminuir el nivel de //zoom//, y una //barra de zoom// para seleccionar directamente el nivel deseado.
Arrastrando el mapa también es posible desplazarse.
Se puede hacer clic sobre los agentes mostrados en el mapa para obtener más información acerca del agente (y una vez que el globo con la información extra se despliegue, el nombre del agente es un enlace a la **vista de agente**).
{{ :wiki:pfms-topology_maps-gis_maps-list_of_gis_maps-control_navigation.png }}
=== Capas ===
Si pulsamos sobre el botón **+** de la derecha se abrirán los controles de capas. Despliega una caja verde donde es posible seleccionar la capa base (la //conexión al servidor de mapa//, si se hubiese definido más de una para el mapa), y ver qué capas están **visibles**.
{{ :wiki:pfms-topology_maps-gis_maps-list_of_gis_maps-control_layers.png }}
También existe una capa especial definida por el sistema llamada Jerarquía de agentes (**Agent hierarchy**). Si esta capa se puede visualizar, mostrará lineas punteadas de rojo conectando un agente con su agente padre (si ambos están visibles).
=== Filtros ===
Encima del mapa hay opciones de filtrado por el estado de los agentes:
* Ok
* Critical
* Warning
* Other
=== Refrescar el Mapa ===
Al lado de los botones de filtro hay una casilla combo llamada **Refresh** para seleccionar el rango de actualización del mapa. El mapa emplea llamadas AJAX para refrescar los agentes en el mapa utilizando el periodo elegido.
==== Vista de Agente ====
La vista de agente de la consola de Pandora FMS también tiene funcionalidades GIS. Lo primero que aparece en la vista principal es la localización del agente en términos de //longitud//, //latitud// y //altitud//.
=== Vista Histórica GIS ===
Hay un botón en la barra superior (siempre que GIS esté activado) que muestra la **vista GIS** del agente.
Esta vista muestra la posición del agente en el **mapa por defecto**, en una tabla con toda la información reportada por el agente, incluyendo un sistema de geolocalización inversa que muestra la dirección del agente con la calle, la ciudad y el país donde se encuentra.
{{ :wiki:pandroid_gis22.png?800 }}
==== Configuración del Agente GIS ====
Entre las pestañas de administración del agente, hay una opción para fijar de modo manual la posición del agente. También la pestaña //agent manage// tiene algunos parámetros que afectan a las funcionalidades GIS.
=== Actualizar datos GIS ===
En la pestaña //agent manage// hay una opción llamada **Update new GIS data**. Si está activada, el servidor actualizará toda la información posicional recibida del agente y dejará de usar los últimos valores válidos para este agente. //Al estar inactiva// esta opción, es útil si un agente esté reportando una posición errónea o haya que situarlo en un lugar fijo.
=== Posición manual del agente ===
La pestaña **Gis Data** muestra el mapa por defecto. Es posible hacer clic en él para definir la nueva posición del agente, o bien fijarla utilizando el formulario de la parte inferior del mapa.
{{ :wiki:pos_manual.png }}
Fijar //manualmente// la posición del agente activará también la opción de ignorar nuevos datos GIS (**Ignore new GIS data** - que luego tomará valor contrario en la [[:es:documentation:pandorafms:monitoring:20_gis#actualizar_datos_gis|opción "Update new GIS data"]] - ), para así evitar que el siguiente paquete de datos con información posicional del agente reajuste de nuevo la posición.
Si esta no es esta la conducta deseada, recuerde desactivar la opción **Ignore new GIS data** antes de pulsar el botón **Update**.
[[:es:documentation:start|Volver al Índice de Documentación Pandora FMS]]