netinsystems/netin-ds-fh-server-local
NetinDS Firehose - Server Local.
1.1K
netin-ds-fh-server-local:
container_name: netin-ds-fh-server-local
ports:
- '29000:29000'
expose:
- 29000/tcp
image: 'netinsystems/netin-ds-fh-server-local'
cpu_count
cpu_percent
mem_limit
environment:
networks:
Configuración general de NetinDS-Firehose - Server Local
CONFIG_ARTIFACT_ID
default(netin-ds-fh-server-local
): nombre identificativo del artefacto. Es utilizado en por la interfaz OpenC2, asi como en otros procesos de identificación del propio artefacto contra los subsistemas de NetinDS (bases de datos, conexión contra streams de datos ...).CONFIG_STREAM_HIGH_WATER_MARK
default(500
): indica el tamaño de los buffers internos del Firehose, utilizados para las funciones de backpressure. Los Firehose cuentan con varios buffers de procesamiento, por lo que el tamaño total del buffer depende de la suma de todos ellos, y del tipo de dato a procesar.CONFIG_AMQP_QUEUE_ALARMS
default(stream.alarms::alarms.realtime
): identificación de la cola de datos de donde deben consumirse las alarmas y eventos provenientes de los NetinDS-Agents.CONFIG_AMQP_QUEUE_DEVICES
default(stream.devices::devices.realtime
): identificación de la cola de datos de donde deben consumirse los dispositivos provenientes de los NetinDS-Agents.CONFIG_LEGACY_MODE
default(false
): en el modo legacy, las alarmas con CoT (Cause of Transmission) went
son eliminadas de la base de datos que alberga el estado actual del sistema.
En sistemas con una gran cantidad de alarmas, es recomendable activar este modo con el objetivo de reducir el numero de entradas en la base datos.
CONFIG_GONE_ALARMS_CLEANUP_INTERVAL
default(1800000
): intervalo de tiempo, en milisegundos, entre los procesos de limpieza de alarmas envejecidas la base datos. Se considera alarma envejecida aquellas cuyo ultimo evento fue debido a un CoT went
y ocurrió hace hace mas tiempo que el indicado en CONFIG_GONE_ALARMS_AGING_TIME
. En caso de indicar un valor 0
, no se realiza ningún proceso de limpieza de alarmas.CONFIG_GONE_ALARMS_AGING_TIME
default(3600000
): indica el tiempo, en milisegundos, que debe haber transcurrido desde un último evento con CoT went
para considerar que una alarma esta envejecida.CONFIG_MULTITHREADING_WORKERS
default(os.cpus - 1
): indica el número de hilos que debe utilizar el artefacto en la ejecución. Por defecto el artefacto creara un hilo por core de la CPU donde se este ejecutando, pero puede controlarse el número de hilos mediante la variable de entorno CONFIG_MULTITHREADING_WORKERS. Para cada hilo se creara un endpoint de health distinto, cada uno de ellos servido en un puerto diferente mediante el siguiente algoritmo: CONFIG_HEALTH_PORT + 10 + nº de hilo, por lo que para el valor por defecto del artefacto (29000) y pidiendo que se generen 3 hilos tendríamos un total de 4 procesos que podemos monitorizar en los puertos 29000 (hilo principal), 29010, 29011 y 29012.CONFIG_HEALTH_PORT
default(29000
): puerto sobre el que se ofrece el REST API de observability de NetinDS. Dicha REST API se ofrecerá en los endpoints:
http://127.0.0.1:{CONFIG_HEALTH_PORT}/v1/health
: estado de los subcomponentes internos del Firehose.http://127.0.0.1:{CONFIG_HEALTH_PORT}/v1/metrics
: métricas del Firehose en formato prometheus.http://127.0.0.1:{CONFIG_HEALTH_PORT}/v1/registers
: registro de los últimos trabajos de publicación hacia el servidor que acabarón con algún tipo de error. El tamaño de este listado puede configurarse mediante la variable de entorno: CONFIG_CONFLICT_BUFFER_LENGTH
, cuyo valor por defecto es 100
.
No se recomienda modificación de la variable
CONFIG_CONFLICT_BUFFER_LENGTH
si no se sabe lo que se esta haciendo.
http://127.0.0.1:{CONFIG_HEALTH_PORT}/v1/openc2
: registro de los últimos mensajes OpenC2 que ha recibido o emitido esta instancia. El tamaño de este listado puede configurarse mediante la variable de entorno: CONFIG_FIREHOSE_MAX_OC2_REGISTERS
, cuyo valor por defecto es 100
.
No se recomienda modificación de la variable
CONFIG_FIREHOSE_MAX_OC2_REGISTERS
si no se sabe lo que se esta haciendo.
CONFIG_HEALTH_HOST
default(localhost
): dirección IP sobre la que se asocia el REST API de observability.CONFIG_HEALTH_MODE
default(http
): modo de funcionamiento del REST API de observability. Las opciones validas son http
o https
, esta ultima obliga a la configuración de certificados para el servidor.CONFIG_HEALTH_FILE_CERT_PATH
default(certs/cert.pem
): ruta al fichero de certificado para el servidor. Solo se usa en modo https
.CONFIG_HEALTH_FILE_KEY_PATH
default(certs/key.pem
): ruta al fichero de clave privada. Solo se usa en modo https
.Configuración del servicio OpenC2
CONFIG_OPENC2_LOOKUP_INTERVAL
default(60000
): indica el intervalo de tiempo para el envío de la solicitudes query features
. Esta solicitudes son enviadas a modo de descubrimiento de interlocutores, los Firehose interactúan con estos interlocutores para la sincronización de alarmas y dispositivos.CONFIG_OPENC2_LOOKUP_MAX_DELAY
default(30000
): Tiempo máximo durante el cual se esperan respuestas para solitudes de descubrimiento. Este tiempo debe ser coherente con la variable CONFIG_OPENC2_LOOKUP_INTERVAL
, es decir, debe ser siempre menor.CONFIG_OPENC2_ALARM_DELETE_MAX_DELAY
default(30000
): tiempo máximo durante el cual se esperan respuestas para cualquier solicitud, excepto query features
.CONFIG_FIREHOSE_MAX_OC2_REGISTERS
default(100
): tamaño máximo de listado de mensajes recibidos y emitidos por esta instancia.Configuración del registro de eventos (logger) @netin-js\logger
CONFIG_LOGGER_CONSOLE_ENABLE
default(false
): habilitación del logger de consola.CONFIG_LOGGER_CONSOLE_LEVEL
default('info'
): nivel de registro.CONFIG_LOGGER_FILE_ENABLE
default(true
): habilitación del logger de fichero.CONFIG_LOGGER_FILE_LEVEL
default('info'
): nivel de registro.CONFIG_LOGGER_FILE_FILE_NAME
default('logs/${CONFIG_ARTIFACT_ID}'
): nombre del fichero de registro.CONFIG_LOGGER_FILE_MAX_FILES
default(10
): cantidad maxima de ficheros (rotacional).CONFIG_LOGGER_FILE_MAX_SIZE
default(10 * 1000000
): tamaño máximo en bytes del archivo.CONFIG_LOGGER_FILE_ZIPPED
default(true
): indica que todos los ficheros logs se comprimen, excepto el que se está escribiendo actualmenteCONFIG_LOGGER_FILE_JSON
default(false
): indica si el formato es json o string, por defecto es string.CONFIG_LOGGER_FLUENTD_ENABLE
default(false
): habilitación del logger mediante fluentd.CONFIG_LOGGER_FLUENTD_LEVEL
default('info'
): nivel de registro.CONFIG_LOGGER_FLUENTD_HOST
default('localhost'
): host donde se encuentra el servicio fluentd.CONFIG_LOGGER_FLUENTD_PORT
default(28930
): host donde se encuentra el servicio fluentd.CONFIG_LOGGER_FLUENTD_TIMEOUT
default(5000
): configura el tiempo de inactividad del socket.CONFIG_LOGGER_FLUENTD_ACK_RESPONSE
default(true
): cambia el protocolo a at-least-one. El logger esperara por el ack del servicio.CONFIG_LOGGER_FLUENTD_RECONNECT_INTERVAL
default(5000
): configura el intervalo de reconexión en milisegundos.CONFIG_LOGGER_FLUENTD_EVENT_MODE
default('Message'
): configura el modo en el que son tratados los eventos. Son soportados Message
, PackedForward
y CompressedPackedForward
. Ver Event Modes.CONFIG_LOGGER_FLUENTD_TLS
default(false
): habilita el uso de TLS en este socket.CONFIG_LOGGER_FLUENTD_FLUSH_INTERVAL
default(2000
): no tiene efecto en Message Mode. El logger almacena los eventos y los envía en cada intervalo de flush.CONFIG_LOGGER_FLUENTD_MESSAGE_SEND_QUEUE_SIZE
default(100 * 1024 * 1024
): no tiene efecto en Message Mode. Tamaño de la cola de mensajes en bytes.Los niveles de registro, al ser niveles apilados, cada nivel complementa al nivel anterior mostrando mayor detalle del mismo evento o flujo. Usar el nivel adecuado para cada tipo de registro es de gran importancia, especialmente en sistemas en producción donde un alto nivel de registros pueden reducir en gran medida el rendimiento de los sistemas:
error
: Cualquier error que es fatal para la operación, aunque no tiene porque serlo para el servicio o la aplicación. Este tipo de errores requieren de la intervención de los administradores del sistema ó usuarios para corregir el problema.warn
: Eventos que pueden provocar comportamientos no deseados en el sistema, el sistema trata de recuperarse por si mismo del evento, pero se podrían producir comportamiento extraños en la aplicación.info
: Información util para los usuarios administradores del sistema (inicio/parada de servicio, version de la aplicación, conexiones con recursos externos ...)verbose
: Información util para conocer todos los pasos realizados por una aplicación, orientada a usuarios administradores que tratan de conocer la toma de decisiones el fundamento de la toma de decisiones o la razón base de los eventos de una aplicación o sistema.debug
: - Información que es util para el diagnostico de los sistemas ó servicios, no solo para desarrolladores (configuraciones, modos de funcionamiento ...).silly
: - Información especifica de utilizada para trazar el comportamiento del código en una funcionalidad especifica.Configuración del acceso la base de datos actuales
CONFIG_MONGO_ADDR
default(mongodb://127.0.0.1:28900/netin
): URL donde se encuentra la base de datos de configuración del agente de NetinDS.CONFIG_MONGO_SERVER_SELECTION_TIMEOUT
default(5000
): tiempo máximo de espera en el proceso de selección de un server para realizar una operación. Solo es utilizado si la base de datos de configuración esta trabajando en modo cluster.CONFIG_MONGO_MIN_POOL_SIZE
default(4
): tamaño mínimo de la pila de conexiones contra la base de datos.CONFIG_MONGO_KEEP_ALIVE
default(true
): habilita el keepalive en la conexiones contra la base de datos permaneciendo de este modo establecidas.CONFIG_MONGO_KEEP_ALIVE_INITIAL_DELAY
default(10000
): tiempo de espera antes inicial el keepalive en las conexiones contra la base de datos.CONFIG_MONGO_CONNECTION_TIMEOUT
default(10000
): tiempo máximo de espera ante un intento de conexión con la base de datos.CONFIG_MONGO_SOCKET_TIMEOUT
default(10000
): tiempo máximo de espera en las peticiones de envió o recepción sobre el socket utilizado para conectarse con la base de datos.Configuración del acceso al broker de NetinDS-Server
Pese a que se ofrece una gran cantidad de variables de entorno para la configuración de la conexión con el broker de Netin-DS, a continuación se indican cuales son las mas relevantes:
CONFIG_AMQP_USER_NAME
default('consumer'
): nombre de usuario con los permisos de consumidor que se utilizara en la conexión del Firehose.CONFIG_AMQP_PASSWORD
default(undefined
): contraseña asociada al usuario con permisos de consumidor.CONFIG_AMQP_HOST
default('127.0.0.1'
): host donde se encuentra el broker de NetinDS-Server.CONFIG_AMQP_HOSTNAME
default(undefined
): nombre del host donde se encuentra el broker.CONFIG_AMQP_PORT
default(5672
): puerto donde se ofrece el servicio AMQP por parte del broker de NetinDS-Server.CONFIG_AMQP_TRANSPORT
default('tcp'
): las opciones posibles son: 'tcp' | 'tls' | 'ssl'
.CONFIG_AMQP_CA_PATH
default(undefined
): cuando el modo transporte (CONFIG_AMQP_TRANSPORT
) seleccionado es tls
, indica la ruta al certificado de la CA.CONFIG_AMQP_CLIENT_CERT_PATH
default(undefined
): cuando el modo transporte (CONFIG_AMQP_TRANSPORT
) seleccionado es tls
, indica la ruta al certificado del cliente.CONFIG_AMQP_CLIENT_KEY_PATH
default(undefined
): cuando el modo transporte (CONFIG_AMQP_TRANSPORT
) seleccionado es tls
, indica la ruta a la key del certificado de cliente.CONFIG_AMQP_REQUEST_CERT
default(false
): cuando el modo transporte (CONFIG_AMQP_TRANSPORT
) seleccionado es tls
, indica la necesidad de solicitar los certificados de cliente.CONFIG_AMQP_REJECT_UNAUTHORIZED
default(false
): cuando el modo transporte (CONFIG_AMQP_TRANSPORT
) seleccionado es tls
, indica si debe rechazarse los certificados autofirmados.El resto de variables indicadas exigen un profundo conocimiento de los sistemas NetinDS y no se recomienda su modificación por personal no experto.
CONFIG_AMQP_CONTAINER_ID
default(${CONFIG_ARTIFACT_ID}
): identificador del container AMQP utilizado. Es utilizado como identificador de consumidores/productores en ActiveMQ-Artemis.CONFIG_AMQP_ID
default(undefined
): identificador de la conexión dentro del propio container.CONFIG_AMQP_RECONNECT
default(5000
): puede ser un número entero o un booleano. En caso de ser un numero entero indica el tiempo, en milisegundos, entre los intentos de reconexión. Si el valor es false
no intentara reconectar, y si es true
intentara reconectar atendiendo a los valores de CONFIG_AMQP_RECONNECT_LIMIT
, CONFIG_AMQP_INITIAL_RECONNECT_DELAY
y CONFIG_AMQP_MAX_RECONNECT_DELAY
.CONFIG_AMQP_RECONNECT_LIMIT
default(undefined
): limite intentos de reconexión, aplicable cuando CONFIG_AMQP_RECONNECT
es true
.CONFIG_AMQP_INITIAL_RECONNECT_DELAY
default(30000
): tiempo, en milisegundos, hasta el primer intento de reconexión. Aplicable cuando CONFIG_AMQP_RECONNECT
es true
o un número.CONFIG_AMQP_MAX_RECONNECT_DELAY
default(60000
): máximo tiempo entre reintentos de reconexión, aplicable cuando CONFIG_AMQP_RECONNECT
es true
.CONFIG_AMQP_MAX_FRAME_SIZE
default(undefined
): tamaño máximo del telegrama en bytes que se admite, si no se indica valor, existe limite de 4GB.CONFIG_AMQP_NON_FATAL_ERRORS
default(amqp:connection:forced
): errores, que en caso de ser recibidos cuando se produce un cierre de la conexión no deben evitar que se produzca una reconexión.CONFIG_AMQP_SENDER_NAME
default(undefined
): nombre del enlace, debe ser único para contenedor.CONFIG_AMQP_SENDER_SETTLE_MODE
default(2
): indica el modo de resolución de los mensajes en el remitente:0
: el remitente enviará todas las entregas inicialmente no resueltas al destinatario.1
: el remitente enviará todas las entregas resueltas al destinatario.2
: el remitente PUEDE enviar una mezcla de entregas resueltas y no resueltas al destinatario.CONFIG_AMQP_SENDER_AUTO_SETTLE
default(true
): indica si los mensajes enviados deben resolverse automáticamente una vez que el par los resuelve.CONFIG_AMQP_RECEIVER_NAME
default(undefined
): nombre del enlace, debe ser único para contenedor.CONFIG_AMQP_RECEIVER_SETTLE_MODE
default(0
): indica el modo de resolución de los mensajes en el receptor:0
: el receptor resuelve espontáneamente todas las transferencias entrantes.1
: el receptor resuelve solo resolverá después de enviar la disposición al remitente y recibir una disposición que indique la resolución de la entrega por parte del remitente.CONFIG_AMQP_RECEIVER_CREDIT_WINDOW
default(0
): Una ventana de "captación previa" que controla el flujo de mensajes a través de este receptor. Se debe usar un valor de 0
para desactivar el control de flujo automático y que sea el Firehose quien lo administra.CONFIG_AMQP_RECEIVER_AUTO_ACCEPT
default(false
): indica si los mensajes recibidos deben ser automáticamente aceptados.CONFIG_AMQP_RECEIVER_AUTO_SETTLE
default(true
): indica si los mensajes enviados deben resolverse automáticamente una vez que el par los resuelve.Como en el resto de los repositorios de Netin Systems, toda colaboración es siempre bien recibida.
Si cree que existe un error cree un bug aportando toda la información posible.
Si quiere realizar un nuevo aporte, cree una nueva rama, respetando en todo momento el flujo de versiones establecido por GitFlow, realice sus modificaciones en ella y solicite la aprobación de las mismas mediante Pull Request, rellenando correctamente la plantilla del mismo.
Copyright 2021 Network Intelligence S.L. All rights reserved.
Note: All information contained herein is, and remains the property of Network Intelligence S.L. and its suppliers, if any. The intellectual and technical concepts contained herein are property of Network Intelligence S.L. and its suppliers and may be covered by European and Foreign patents, patents in process, and are protected by trade secret or copyright. Dissemination of this information or the reproduction of this material is strictly forbidden unless prior written permission is obtained from Network Intelligence.
docker pull netinsystems/netin-ds-fh-server-local