Agentes privados de Jitterbit en Docker
Introducción
Los ejemplos en esta página te muestran cómo ejecutar uno o más agentes privados en contenedores utilizando la imagen de Docker hub de Jitterbit. La sección de Servicio de verificación de estado explica cómo usar el servicio de verificación de estado en un contenedor en ejecución, y la sección de Recursos de solución de problemas proporciona algunos enlaces a problemas comunes y sus soluciones.
Nota
La imagen de Docker no se actualiza al mismo tiempo que los paquetes de agente de Windows o Linux. Consulta la página de etiquetas de la imagen para ver qué versiones están disponibles.
Los siguientes ejemplos muestran cómo ejecutar un solo agente:
Los siguientes ejemplos muestran cómo ejecutar múltiples agentes:
Importante
Los comandos en esta página se proporcionan con fines de prueba, o como base para un desarrollo adicional. Debes consultar la documentación de Docker para obtener información sobre cómo hacerlos adecuados para sistemas de producción.
Requisitos previos
Debes tener lo siguiente para todos los ejemplos en esta página:
-
Tu nombre de usuario y contraseña de la cuenta de Harmony.
-
El nombre de tu organización en Harmony.
Además, debes tener lo siguiente para ejecutar los ejemplos de múltiples agentes:
Inicio rápido
Este ejemplo utiliza el comando jitterbit-config para solicitar la información de registro del agente, el comando jitterbit para iniciar el agente, y tail -F para esperar y mostrar el archivo de registro del agente.
-
Selecciona Consola de Gestión > Agentes en el menú del Portal Harmony, luego agrega un grupo de agentes privado, o anota el nombre y ID de uno existente.
-
En una terminal, ejecuta este comando y responde a las solicitudes:
docker run -it jitterbit/agent sh -c "\ jitterbit-config; \ jitterbit start; \ tail -F log/jitterbit-agent.log" -
Para verificar el estado de tu agente, actualiza la página Consola de Gestión > Agentes.
-
En la terminal, presiona
Control+Cpara detener el agente, o utiliza el comandodocker container stop. -
(Opcional) Elimina el agente utilizando la Consola de Gestión. (Los agentes iniciados de esta manera no se eliminan automáticamente al detenerse.)
Registro manual con variables de entorno
En el ejemplo de inicio rápido, debes ingresar la información de registro del agente cuando se te solicite. En este ejemplo, esta información se proporciona utilizando variables de entorno.
-
Agrega un agente a tu grupo de agentes y anota su nombre.
-
Crea un archivo que contenga lo siguiente, con valores establecidos de acuerdo con la tabla a continuación:
HARMONY_ORIGIN= HARMONY_USERNAME= HARMONY_PASSWORD= HARMONY_ORG_NAME= HARMONY_AGENT_GROUP_NAME= HARMONY_AGENT_NAME=Variable Descripción del Valor HARMONY_ORIGINLa URL de inicio de sesión para tu cuenta de Harmony, https://REGION.jitterbit.com, dondeREGIONes uno dena-east,emea-westoapac-southeast.HARMONY_USERNAMETu nombre de usuario de la cuenta de Harmony. HARMONY_PASSWORDTu contraseña de la cuenta de Harmony. HARMONY_ORG_NAMEEl nombre de tu organización en Harmony. HARMONY_AGENT_GROUP_NAMEEl nombre del grupo de agentes y el nombre del entorno, separados por un guion bajo. HARMONY_AGENT_NAMEEl nombre del agente. EjemploHARMONY_ORIGIN=https://na-east.jitterbit.com HARMONY_USERNAME=example@jbexample.com HARMONY_PASSWORD=P@55w0rd HARMONY_ORG_NAME=Example Org HARMONY_AGENT_GROUP_NAME=Example Agent Group_Example Env HARMONY_AGENT_NAME=Example Agent 1 -
En una terminal, ejecuta este comando para iniciar el agente, reemplazando
FILEcon el nombre del archivo creado en el paso 2:docker run --env-file FILE jitterbit/agent -
Para verificar el estado de tu agente, actualiza la página Consola de Gestión > Agentes.
-
En la terminal, presiona
Control+Cpara detener el agente, o utiliza el comandodocker container stop. -
(Opcional) Eliminar el agente usando la Consola de Gestión. (Los agentes iniciados de esta manera no se eliminan automáticamente al detenerse.)
Registro automático con variables de entorno
Hay dos desventajas con el ejemplo de registro manual: debes agregar manualmente un agente en la Consola de Gestión, y tus credenciales de Harmony son visibles para cualquiera que tenga acceso al sistema.
Este ejemplo evita ambos problemas. Utiliza registro automático para agregar automáticamente un agente a Harmony. Los valores de registro requeridos se pasan al contenedor utilizando variables de entorno (la mayoría de las cuales están precedidas por AUTO_REGISTER). Para la autenticación, puedes usar un par de nombre de usuario/contraseña encriptado, o un token de acceso. (Ambos métodos se muestran aquí.)
-
Elige un método de autenticación:
-
En una terminal, ejecuta el siguiente comando de
jitterbit-utilspara encriptar tus credenciales, reemplazandoUSERNAMEyPASSWORDcon tu nombre de usuario y contraseña de Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORDComando de ejemplodocker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rdSalida de ejemplo$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C $003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs= -
Copia los valores para usarlos en el siguiente paso (usando la primera línea para
AUTO_REGISTER_ENCRYPTED_USERNAME, y la segunda línea paraAUTO_REGISTER_ENCRYPTED_PASSWORD). -
Crea un archivo que contenga lo siguiente, con los valores sustituidos de acuerdo con la tabla a continuación:
HARMONY_ORIGIN= AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID= AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_ENCRYPTED_USERNAME= AUTO_REGISTER_ENCRYPTED_PASSWORD=
Ejemplo de archivo de variable de entorno
HARMONY_ORIGIN=https://na-east.jitterbit.com AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID=12345 AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_ENCRYPTED_USERNAME=$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C AUTO_REGISTER_ENCRYPTED_PASSWORD=$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=Variable Descripción del valor HARMONY_ORIGINLa URL de inicio de sesión para tu cuenta de Harmony, https://REGION.jitterbit.com, dondeREGIONes uno dena-east,emea-westoapac-southeast.AUTO_REGISTER_AGENT_GROUP_IDEl número de identificación del grupo de agentes. AUTO_REGISTER_ENCRYPTED_USERNAMELa primera línea de salida de jitterbit-utils -e.AUTO_REGISTER_ENCRYPTED_PASSWORDLa segunda línea de salida de jitterbit-utils -e.-
Selecciona Consola de administración > Tokens de acceso en el menú del Portal de Harmony, luego crea un token de acceso. Elige el entorno con el que está asociado tu grupo de agentes privado, y establece el alcance en Registro de agentes.
-
Copia el token para establecer el valor de
AUTO_REGISTER_TOKENen el siguiente paso. -
Crea un archivo que contenga lo siguiente, con valores sustituidos de acuerdo con la tabla a continuación:
HARMONY_ORIGIN= AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID= AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_TOKEN=
Ejemplo de archivo de variable de entorno
HARMONY_ORIGIN=https://na-east.jitterbit.com AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID=12345 AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_TOKEN=jb_d86ec8a0-0693-4392-b345-ef4e134dab42Variable Descripción del valor HARMONY_ORIGINLa URL de inicio de sesión para tu cuenta de Harmony, https://REGION.jitterbit.com, dondeREGIONes uno dena-east,emea-westoapac-southeast.AUTO_REGISTER_AGENT_GROUP_IDEl número de identificación del grupo de agentes. AUTO_REGISTER_TOKENToken de acceso con el alcance Registro de Agentes. -
-
Ejecuta este comando para iniciar el agente privado en contenedor, donde
FILEes el nombre del archivo creado en el paso anterior:docker run --detach --env-file FILE jitterbit/agentConsejo
Para habilitar la observabilidad nativa de Jitterbit con este método, agrega
AUTO_REGISTER_AGENT_METRICS_TOKENa la lista de variables de entorno pasadas al contenedor. El valor es un token de acceso con el alcance Métrica de Agente. -
Para verificar el estado de tu agente, actualiza la página Consola de Administración > Agentes.
-
Para detener el agente, utiliza la Consola de Administración para detener el drenaje.
-
Para detener el contenedor, encuentra el ID del contenedor con
docker ps, luego usadocker container stop CONTAINER_ID.
Registro automático con el archivo register.json
Una alternativa al uso de variables de entorno es establecer los valores requeridos en un archivo register.json. Este archivo se puede colocar en un subdirectorio conf, desde donde el contenedor del agente lo lee y lo utiliza para registrar el agente. Al igual que en el ejemplo anterior, puedes autenticarte utilizando un nombre de usuario y contraseña, o un token de acceso.
-
Elige un método de autenticación:
-
En una terminal, ejecuta el siguiente comando
jitterbit-utilspara cifrar tus credenciales, reemplazandoUSERNAMEyPASSWORDcon tu nombre de usuario y contraseña de Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORDComando de ejemplodocker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rdSalida de ejemplo$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C $003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs= -
Crea un directorio y un archivo
conf/register.jsonque contenga lo siguiente, con los valores establecidos (resaltados) de acuerdo con la tabla a continuación:conf/register.json{ "cloudUrl": "https://REGION.jitterbit.com", "agentGroupId": GROUP_ID, "username": "ENCRYPTED_USERNAME", "password": "ENCRYPTED_PASSWORD", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }Parámetro Descripción del valor cloudUrlLa URL de inicio de sesión para tu cuenta de Harmony, https://REGION.jitterbit.com, dondeREGIONes uno dena-east,emea-westoapac-southeast.agentGroupIdEl número de identificación del grupo de agentes. usernameLa primera línea de salida de jitterbit-utils -e.passwordLa segunda línea de salida de jitterbit-utils -e.Ejemplo conf/register.json
{ "cloudUrl": "https://na-east.jitterbit.com", "agentGroupId": 12345, "username": "$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C", "password": "$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }
-
Selecciona Consola de gestión > Tokens de acceso en el menú del Portal Harmony, luego crea un token de acceso. Elige el entorno con el que está asociado tu grupo de agentes privado, y establece el alcance en Registro de agente.
-
Copia el token para establecer el valor de
ACCESS_TOKENen el siguiente paso. -
Crea un directorio y un archivo
conf/register.jsonque contenga lo siguiente, con los valores establecidos (resaltados) de acuerdo con la tabla a continuación:conf/register.json{ "cloudUrl": "https://REGION.jitterbit.com", "agentGroupId": GROUP_ID, "token": "ACCESS_TOKEN", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }Parámetro Descripción del valor cloudUrlLa URL de inicio de sesión para tu cuenta de Harmony, https://REGION.jitterbit.com, dondeREGIONes uno dena-east,emea-westoapac-southeast.agentGroupIdEl número de identificación del grupo de agentes. tokenToken de acceso con alcance Registro de agente. Ejemplo conf/register.json
{ "cloudUrl": "https://na-east.jitterbit.com", "agentGroupId": 12345, "token": "jb_21b0cda9-18f7-4953-bd71-8616def9d6bd", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }
-
-
Ejecuta este comando para iniciar el agente privado en contenedor:
docker run --detach --name jitterbit-agent --rm --volume ./conf:/conf --volume local_resources:/opt/jitterbit/Resources jitterbit/agentConsejo
Para habilitar la observabilidad nativa de Jitterbit con este método, agrega el parámetro
agentMetricsTokenal archivoregister.json. El valor es un token de acceso con el alcance Agente Métrico. -
Para verificar el estado de tu agente, actualiza la página Consola de Administración > Agentes.
-
Para detener el agente, utiliza la Consola de Administración para detener el drenaje.
-
Para detener el contenedor, encuentra el ID del contenedor con
docker ps, luego usadocker stop CONTAINER_ID.
El comportamiento de deregisterAgentOnDrainstop
Si deregisterAgentOnDrainstop está configurado como true, el agente se desregistra automáticamente (se elimina de Harmony) cuando se detiene. No se puede reiniciar a menos que se elimine el archivo /opt/jitterbit/Resources/credentials.txt del contenedor.
Si deregisterAgentOnDrainstop está configurado como false, el agente permanece listado como Detenido en la página Consola de Administración > Agentes. Incluso si el contenedor se detiene y se elimina, el agente puede reiniciarse si se persiste el directorio /opt/jitterbit/Resources y su archivo credentials.txt (como se hizo en el ejemplo anterior).
Múltiples agentes con docker compose
En este ejemplo, tres agentes privados con configuraciones idénticas se ejecutan en un grupo de agentes.
-
Crea un archivo de variables de entorno como se muestra arriba.
-
Crea un archivo
docker-compose.ymlque contenga lo siguiente:docker-compose.ymlservices: agent1: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent1 agent2: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent2 agent3: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent3FILE: El nombre del archivo de variables de entorno creado en el paso 1.
-
Ejecuta este comando para iniciar el grupo de agentes privados:
docker compose up -dConsejo
Ejecuta
docker compose logs -fpara ver los archivos de registro de todos los agentes, odocker statspara monitorear el uso de recursos de cada agente. -
Para verificar el estado de tu agente, actualiza la página Consola de Administración > Agentes.
-
Ejecuta este comando para detener el grupo de agentes privados y eliminar sus contenedores:
docker compose down -d
Múltiples agentes con helm y kubernetes
Jitterbit proporciona un chart de Helm que puedes usar para ejecutar un clúster de agentes utilizando Kubernetes.
-
Inicia un clúster de Kubernetes.
Consejo
En Docker Desktop, selecciona Configuración > Kubernetes > Habilitar Kubernetes.
-
Ejecuta este comando para cifrar tu nombre de usuario y contraseña de Harmony:
docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORDConsejo
Puedes usar la misma salida de ejemplos anteriores.
-
Crea un archivo
values.yamlque contenga lo siguiente, con valores sustituidos de acuerdo con la tabla a continuación:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
nameOverride: private-agent-group image: repository: jitterbit/agent pullPolicy: always agent: registerjson: cloudUrl: "https://REGION.jitterbit.com" agentGroupId: GROUP_ID username: ENCRYPTED_USERNAME password: ENCRYPTED_PASSWORD agentNamePrefix: "test" deregisterAgentOnDrainstop: true hpa: enabled: true minReplicas: 3 maxReplicas: 5 replicas: 4Línea Valor Reemplazar con 9 REGIONLa región de tu cuenta de Harmony ( na-east,emea-westoapac-southeast).10 GROUP_IDEl número de identificación del grupo de agentes. 11 ENCRYPTED_USERNAMELa primera línea de salida del paso 2. 12 ENCRYPTED_PASSWORDLa segunda línea de salida del paso 2. Precaución
Esta configuración especifica que Kubernetes debe ejecutar al menos 3 y como máximo 5 agentes si el Horizontal Pod Autoscaler está activo, o 4 agentes si no lo está. Dado que cada agente privado de Docker necesita aproximadamente 0.25 núcleos de CPU y 2 GB de memoria, debes verificar que las especificaciones de tu host puedan soportar este número de agentes. También puedes agregar un elemento
resourcespara establecer los límites de utilización de recursos. Para más detalles, consulta el ejemplo de Jitterbit en el archivovalue.yml. -
Ejecuta estos comandos para agregar y actualizar el repositorio del gráfico de Helm:
helm repo add jitterbit https://jitterbit.github.io/charts helm repo update -
Ejecuta este comando para iniciar el clúster de agentes privados:
helm upgrade -i -f values.yaml private-agent-group jitterbit/agent-groupConsejo
Ejecuta
kubectl -n default get pods --watchpara monitorear el estado del clúster, okubectl exec -it private-agent-group-0 -- curl localhost:46912/axis/v1/cdk/internal/memberspara listar los miembros del clúster del servicio en escucha. -
Ejecuta este comando para detener el clúster y eliminar los contenedores:
helm uninstall private-agent-group
Variables de entorno
Las siguientes variables de entorno son reconocidas por la imagen Docker del agente privado de Jitterbit:
| Categoría | Variable | Requerido | Predeterminado | Valores permitidos | Descripción |
|---|---|---|---|---|---|
| Inicio de sesión | HARMONY_ORIGIN | https://na-east.jitterbit.comhttps://emea-west.jitterbit.comhttps://apac-southeast.jitterbit.com | La URL de inicio de sesión para tu cuenta de Harmony. | ||
HARMONY_USERNAME | Cadena | Tu nombre de usuario de la cuenta de Harmony. | |||
HARMONY_PASSWORD | Cadena | Tu contraseña de la cuenta de Harmony. | |||
HARMONY_ORG_NAME | Cadena | El nombre de tu organización de Harmony. | |||
| Identificación del agente | HARMONY_AGENT_GROUP_NAME | Cadena | El nombre del grupo de agentes y el nombre del entorno, separados por un guion bajo. | ||
HARMONY_AGENT_NAME | Cadena | El nombre del agente. | |||
| Observabilidad | JITTERBIT_ENABLE_METRICS | DatadogElasticsearch | Habilitar observabilidad del agente privado para la plataforma especificada. | ||
DD_API_KEY | (si JITTERBIT_ENABLE_METRICS=Datadog) | Cadena | Clave API de Datadog. | ||
DD_SITE | datadoghq | Cadena | URL del sitio de Datadog. | ||
DD_HOST_NAME | Automático (del nombre de host del sistema) | Cadena | Nombre del host del agente de Datadog. | ||
ES_API_KEY | (si JITTERBIT_ENABLE_METRICS=Elasticsearch) | Cadena | Clave API de Elasticsearch. | ||
ES_URL | (si JITTERBIT_ENABLE_METRICS=Elasticsearch) | Cadena | URL de Elasticsearch. | ||
METRICS_AGENT_NAME | Automático (de la información de auto-registro) | Cadena | Nombre del agente privado. | ||
METRICS_AGENT_GROUP_NAME | Automático (de la información de auto-registro) | Cadena | Nombre del grupo de agentes privados. | ||
METRICS_ENVIRONMENT_NAME | Automático (de la información de auto-registro) | Cadena | Nombre del entorno. | ||
SKIP_METRICS_CONFIG | Cadena | Si true, no configura automáticamente las métricas de Jitterbit. (Equivalente a la opción jitterbit-config -k/--skip-metrics-config.) | |||
ENABLE_JITTERBIT_METRICS | Cadena | Si true, habilita las métricas de Jitterbit. Ignorado si SKIP_METRICS_CONFIG es true. |
Puertos
Al ejecutarse como un contenedor, se pueden exponer los siguientes puertos:
| Puerto | Descripción |
|---|---|
| 46908 | Apache HTTP |
| 46909 | Apache HTTPS |
| 46912 | Servidor Tomcat |
| 3000 | Servicio de verificación de estado |
Servicio de verificación de estado
Para ver el estado de un agente privado, mapea el puerto 3000 en el contenedor a un puerto local, luego emite una solicitud HTTP GET a localhost en el puerto mapeado. Puedes hacer esto utilizando la opción -p/--publish en los comandos docker run, o configurando la clave ports en docker compose:
docker run -p 3000:3000 <otras opciones> jitterbit/agent
services:
agent:
env_file: FILE
image: jitterbit/agent
container_name: jitterbit-agent
ports:
- "3000"
Para llamar al servicio, utiliza un navegador web o curl para hacer una solicitud en el puerto 3000:
curl -i localhost:3000
La respuesta está en formato JSON, con campos que indican (como true o false) el estado general del agente privado y el estado de los servicios individuales:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 04 Aug 2025 09:10:11 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Content-Length: 112
{"agent":true,"servers":{"apache_http":true,"apache_https":true,"tomcat_http":true,"tomcat_shutdown_http":true}}
Los códigos de respuesta HTTP son los siguientes:
| Código | Descripción |
|---|---|
| 200 | Éxito (Todos los servicios en ejecución) |
| 500 | Fallo (Uno o más servicios no están en ejecución) |
Recursos de solución de problemas
Estas secciones en la página de solución de problemas pueden ayudar al solucionar problemas de agentes privados que se ejecutan en Docker: