# Configuración del SmartSense Server

## Introducción

Este manual describe la configuración de los componentes del lado del servidor de la aplicación *GBS SmartSense*. GBS SmartSense es una aplicación desarrollada para monitorear Clusters GBDS, permitiendo al usuario visualizar informes en tiempo real sobre la salud y el rendimiento del entorno.

El procedimiento de configuración debe realizarse solo después del paso de instalación. Para más información, consulte el [Manual de Instalación de GBS Apps](/gbs/es/componentes-web/gbsappssetup.md).

## Configuración

Los pasos de configuración son:

1. Configure el Tomcat;
2. Configure los Certificados;
3. Genere la contraseña encriptada;
4. Instale Elastic Stack (ELK);
5. Finalice las configuraciones en el archivo config.properties.

Todos los pasos se describen abajo. Un ejemplo del archivo `config.properties` puede encontrarse en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

{% hint style="danger" %}
Todas las líneas deben estar presentes en el archivo de configuración. Comentar o eliminar líneas puede causar comportamientos inesperados. Para información adicional, contacte al Equipo de Soporte de Griaule.
{% endhint %}

### Configuración del Tomcat

Edite el archivo de configuración del Tomcat para configurar los certificados y el puerto que la aplicación usará.

```sh
vi /var/lib/tomcats/smart-sense/conf/server.xml
```

Para cambiar el puerto, busque `Connector port=`. Ese es el puerto para operaciones backend.

### Configuración de Certificados

Para habilitar autenticación SSL, busque `connector port=` en el archivo `/conf/server.xml`.

Existen dos entradas. La comentada es la configuración para SSL. Quite los delimitadores de comentarios `<!--` y `-->`, luego ajuste los siguientes parámetros:

```properties
port="58194"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
```

El parámetro `port` debe ser el puerto de red deseado para la aplicación.

Cambie la ruta del `keystoreFile` y al `truststoreFile` a los valores apropiados. Haga lo mismo para el `keystorePass` y al `truststorePass`.

El parámetro `clientAuth="true"` requerrá autenticación del servidor para el cliente y del cliente para el servidor. Esto significa que el cliente necesitará importar el certificado en el navegador para poder acceder a la aplicación.

{% hint style="warning" %}
Cuando **clientAuth** está definida como *true*, el administrador del sistema debe proporcionar el archivo **certificate.pfx** a los usuarios finales.
{% endhint %}

### Cifrado de la contraseña de la Base de Datos

En el archivo `config.properties`, el parámetro `jdbc.password` es una contraseña encriptada. Para generar la contraseña encriptada, siga los siguientes pasos:

1. Vaya al siguiente directorio:

   ```sh
   cd /var/lib/tomcats/smart-sense/webapps/gbs-smart-sense-server/WEB-INF/lib
   ```
2. Ejecute el comando:

   ```sh
   java -cp gbs-common-db-<versión>.jar com.griaule.commons.util.EncryptUtil <contraseñaDeseada>
   ```
3. La contraseña encriptada aparecerá después del mensaje: *"Encrypted password is:"*

{% hint style="info" %}
Guarde la contraseña encriptada. Será usada en configuraciones posteriores.
{% endhint %}

### Archivo de Configuración de la Aplicación

Para configurar el archivo, ábralo con:

```sh
vi /var/lib/tomcats/smart-sense/conf/config.properties
```

Los cambios más importantes en este archivo son los parámetros `jdbc.url`, `jdbc.username`, `jdbc.password` y `gbds.url`Configurelos de acuerdo con su entorno.

El archivo de configuración completo se muestra en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

{% hint style="info" %}
Recuerde reemplazar la contraseña cifrada generada en la sección [Cifrado de la contraseña de la Base de Datos](#criptografia-da-senha-do-banco-de-dados) en este archivo.
{% endhint %}

#### Configuraciones de SmartSense

El último paso es configurar la IP y el puerto de la aplicación que el usuario final irá a acceder. Debe ser la misma IP y puerto configurados en la sección [Configuración del Tomcat](#configuracao-do-tomcat).

```properties
smart-sense.ip=<ip>
smart-sense.port=<port>
smart-sense.protocol=<protocol>
```

{% hint style="warning" %}
Asegúrese de que los parámetros de configuración `smart-sense.ip`, `smart-sense.port` y `smart-sense.protocol` estén correctamente especificados en el archivo `config.properties`. En muchos casos, la IP será la misma para varias aplicaciones. Sin embargo, cada aplicación tendrá un puerto **distinto y único**.
{% endhint %}

#### Nodos (opcional)

Opcionalmente, en lugar de usar la [interfaz gráfica de SmartSense](/gbs/es/aplicaciones/smartsense.md), puede configurar los nodos que serán monitoreados insertándolos directamente en la tabla `smartsense.hosts` en la base de datos. Para hacer esto, ejecute el siguiente comando en la base de datos, reemplazando los *placeholders* por los valores correctos:

```sql
INSERT INTO smartsense.hosts (hostname,ip,port,active) VALUES ('<server_hostname>','<ip>','<smartsense agent port>',1);
COMMIT;
```

## Instalando Elastic Stack (ELK)

Vaya a [Manual de Instalación del ELK](/gbs/es/herramientas-auxiliares/elk.md) para instrucciones detalladas sobre cómo instalar y configurar Elastic Stack.

## Finalizando las Configuraciones

Después de completar todos los pasos de configuración, vuelva al [Manual de Instalación de GBS Apps - Sección de Configuración](/gbs/es/componentes-web/gbsappssetup.md#configuracoes).

## Ejemplo del Archivo de Configuración

Esta sección muestra un ejemplo del archivo `config.properties`.

```properties
# *********************************************************************
#
#         /$$$$$$  /$$      /$$  /$$$$$$  /$$$$$$$  /$$$$$$$$
#        /$$__  $$| $$$    /$$$ /$$__  $$| $$__  $$|__  $$__/
#       | $$  \__/| $$$$  /$$$$| $$  \ $$| $$  \ $$   | $$
#       |  $$$$$$ | $$ $$/$$ $$| $$$$$$$$| $$$$$$$/   | $$
#        \____  $$| $$  $$$| $$| $$__  $$| $$__  $$   | $$
#        /$$  \ $$| $$\  $ | $$| $$  | $$| $$  \ $$   | $$
#       |  $$$$$$/| $$ \/  | $$| $$  | $$| $$  | $$   | $$
#        \______/ |__/     |__/|__/  |__/|__/  |__/   |__/
#
#
#
#         /$$$$$$  /$$$$$$$$ /$$   /$$  /$$$$$$  /$$$$$$$$
#        /$$__  $$| $$_____/| $$$ | $$ /$$__  $$| $$_____/
#       | $$  \__/| $$      | $$$$| $$| $$  \__/| $$
#       |  $$$$$$ | $$$$$   | $$ $$ $$|  $$$$$$ | $$$$$
#        \____  $$| $$__/   | $$  $$$$ \____  $$| $$__/
#        /$$  \ $$| $$      | $$\  $$$ /$$  \ $$| $$
#       |  $$$$$$/| $$$$$$$$| $$ \  $$|  $$$$$$/| $$$$$$$$
#        \______/ |________/|__/  \__/ \______/ |________/
#
# *********************************************************************

# DATABASE (RDB)
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://<host-ip>:3306/smartsense?useSSL=false
jdbc.username=griaule
jdbc.password=CDrt8vbewA2YAubPNOLZkw==
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

# GBDS CONNECTION
gbds.url=http://<host-ip>:8085
gbds.user=gbds.authenticate
gbds.key=Griaule.123
gbds.logLevel=INFO
gbds.timeout=300

# SMARTSENSE - GUI
smart-sense.ip=<host-ip>
smart-sense.port=8126
smart-sense.protocol=http
locale=en_us

# SMARTSENSE - CONFIGURATION

fingerprint.useSDK=true
useLatentExtrator.fingerprint=true
useLatentExtrator.palmprint=false
image.convert.useJnbis=true
server.standalone.port=8085

gbds.smartSenseUser=smart_sense_server
sync.logLevel=INFO
same.user.simultaneous.login=false
notification.delay=5

poolingLoadBalancing.time=60
poolingLoadBalancing.active=true
poolingLoadBalancing.last=

# SMARTSENSE - ELK CONFIGURATION

linkEnroll=
linkIdentify=
linkIdentifyLatent=
linkUpdate=
linkVerify=

consumerQueue.active=true
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/gbs/es/componentes-web/smartsenseconfig.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
