Agentes privados Jitterbit no Docker
Introdução
Os exemplos nesta página mostram como executar um ou mais agentes privados em contêiner usando a imagem do Docker hub da Jitterbit. A seção Solução de Problemas explica como usar o serviço de verificação de integridade em um contêiner em execução e apresenta alguns problemas comuns e suas soluções.
Nota
A imagem do Docker não é atualizada ao mesmo tempo que os pacotes de agente para Windows ou Linux. Consulte a página de tags da imagem para ver quais versões estão disponíveis.
Os seguintes exemplos mostram como executar um único agente:
Os seguintes exemplos mostram como executar múltiplos agentes:
Importante
Os comandos nesta página são fornecidos para fins de teste ou como base para desenvolvimento adicional. Você deve consultar a documentação do Docker para obter informações sobre como torná-los adequados para sistemas de produção.
Pré-requisitos
Você deve ter o seguinte para todos os exemplos nesta página:
-
Seu nome de usuário e senha da conta Harmony.
-
O nome da sua organização Harmony.
Além disso, você deve ter o seguinte para executar os exemplos de múltiplos agentes:
Início rápido
Este exemplo usa o comando jitterbit-config para solicitar as informações de registro do agente, o comando jitterbit para iniciar o agente e tail -F para aguardar e mostrar o arquivo de log do agente.
-
Selecione Console de Gerenciamento > Agentes no menu do Portal Harmony, em seguida, adicione um grupo de agentes privado, ou anote o nome e o ID de um existente.
-
Em um terminal, execute este comando e responda aos prompts:
docker run -it jitterbit/agent sh -c "\ jitterbit-config; \ jitterbit start; \ tail -F log/jitterbit-agent.log" -
Para verificar o status do seu agente, atualize a página Console de Gerenciamento > Agentes.
-
No terminal, pressione
Control+Cpara parar o agente, ou use o comandodocker container stop. -
(Opcional) Exclua o agente usando o Console de Gerenciamento. (Agentes iniciados dessa forma não são removidos automaticamente quando parados.)
Registro manual com variáveis de ambiente
No exemplo de início rápido, você deve inserir as informações de registro do agente quando solicitado. Neste exemplo, essas informações são fornecidas usando variáveis de ambiente.
-
Adicione um agente ao seu grupo de agentes e anote seu nome.
-
Crie um arquivo contendo o seguinte, com valores definidos de acordo com a tabela abaixo:
HARMONY_ORIGIN= HARMONY_USERNAME= HARMONY_PASSWORD= HARMONY_ORG_NAME= HARMONY_AGENT_GROUP_NAME= HARMONY_AGENT_NAME=Variável Descrição do Valor HARMONY_ORIGINA URL de login para sua conta Harmony, https://REGION.jitterbit.com, ondeREGIONé um dosna-east,emea-westouapac-southeast.HARMONY_USERNAMESeu nome de usuário da conta Harmony. HARMONY_PASSWORDSua senha da conta Harmony. HARMONY_ORG_NAMEO nome da sua organização Harmony. HARMONY_AGENT_GROUP_NAMEO nome do grupo de agentes e o nome do ambiente, separados por um sublinhado. HARMONY_AGENT_NAMEO nome do agente. ExemploHARMONY_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 -
Em um terminal, execute este comando para iniciar o agente, substituindo
FILEpelo nome do arquivo criado na etapa 2:docker run --env-file FILE jitterbit/agent -
Para verificar o status do seu agente, atualize a página Console de Gerenciamento > Agentes.
-
No terminal, pressione
Control+Cpara parar o agente, ou use o comandodocker container stop. -
(Opcional) Exclua o agente usando o Console de Gerenciamento. (Agentes iniciados dessa forma não são removidos automaticamente quando parados.)
Registro automático com variáveis de ambiente
Existem duas desvantagens no exemplo de registro manual: você deve adicionar manualmente um agente no Console de Gerenciamento, e suas credenciais do Harmony estão visíveis para qualquer pessoa com acesso ao sistema.
Este exemplo evita ambos os problemas. Ele usa registro automático para adicionar automaticamente um agente ao Harmony. Os valores de registro necessários são passados para o contêiner usando variáveis de ambiente (a maioria das quais é precedida por AUTO_REGISTER). Para autenticação, você pode usar um par de nome de usuário/senha criptografado ou um token de acesso. (Ambos os métodos são mostrados aqui.)
-
Escolha um método de autenticação:
-
Em um terminal, execute o seguinte comando
jitterbit-utilspara criptografar suas credenciais, substituindoUSERNAMEePASSWORDpelo seu nome de usuário e senha do Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORDComando de exemplodocker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rdSaída de exemplo$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C $003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs= -
Copie os valores para usar na próxima etapa (usando a primeira linha para
AUTO_REGISTER_ENCRYPTED_USERNAMEe a segunda linha paraAUTO_REGISTER_ENCRYPTED_PASSWORD). -
Crie um arquivo contendo o seguinte, com os valores substituídos de acordo com a tabela abaixo:
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=
Exemplo de arquivo de variável de ambiente
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=Variável Descrição do valor HARMONY_ORIGINA URL de login para sua conta Harmony, https://REGION.jitterbit.com, ondeREGIONé um dosna-east,emea-westouapac-southeast.AUTO_REGISTER_AGENT_GROUP_IDO número de identificação do grupo de agentes. AUTO_REGISTER_ENCRYPTED_USERNAMEA primeira linha da saída de jitterbit-utils -e.AUTO_REGISTER_ENCRYPTED_PASSWORDA segunda linha da saída de jitterbit-utils -e.-
Selecione Console de Gerenciamento > Tokens de Acesso no menu do Portal Harmony, em seguida, crie um token de acesso. Escolha o ambiente com o qual seu grupo de agentes privado está associado e defina o escopo como Registro de Agente.
-
Copie o token para definir o valor de
AUTO_REGISTER_TOKENna próxima etapa. -
Crie um arquivo contendo o seguinte, com valores substituídos de acordo com a tabela abaixo:
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=
Exemplo de arquivo de variável de ambiente
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-ef4e134dab42Variável Descrição do valor HARMONY_ORIGINA URL de login para sua conta Harmony, https://REGION.jitterbit.com, ondeREGIONé um dosna-east,emea-westouapac-southeast.AUTO_REGISTER_AGENT_GROUP_IDO número de identificação do grupo de agentes. AUTO_REGISTER_TOKENToken de acesso com escopo Registro de Agente. -
-
Execute este comando para iniciar o agente privado em contêiner, onde
FILEé o nome do arquivo criado na etapa anterior:docker run --detach --env-file FILE jitterbit/agentDica
Para habilitar a observabilidade nativa do Jitterbit com este método, adicione
AUTO_REGISTER_AGENT_METRICS_TOKENà lista de variáveis de ambiente passadas para o contêiner. O valor é um token de acesso com escopo Métrica do Agente. -
Para verificar o status do seu agente, atualize a página Console de Gerenciamento > Agentes.
-
Para parar o agente, use o Console de Gerenciamento para parar a drenagem do agente.
-
Para parar o contêiner, encontre o ID do contêiner com
docker ps, e depois usedocker container stop CONTAINER_ID. -
Se
AUTO_REGISTER_DEREGISTER_ON_DRAINSTOPestiver definido comotrue, o agente é removido automaticamente quando parado. Caso contrário, exclua o agente no Console de Gerenciamento.
Registro automático com o arquivo register.json
Uma alternativa ao uso de variáveis de ambiente é definir os valores necessários em um arquivo register.json. Este arquivo pode ser colocado em um subdiretório conf, de onde o contêiner do agente o lê e o utiliza para registrar o agente. Assim como no exemplo anterior, você pode se autenticar usando um nome de usuário e senha, ou um token de acesso.
-
Escolha um método de autenticação:
-
Em um terminal, execute o seguinte comando
jitterbit-utilspara criptografar suas credenciais, substituindoUSERNAMEePASSWORDpelo seu nome de usuário e senha do Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
-
docker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rd
$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C
$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=
- Crie um diretório e um arquivo
conf/register.jsoncontendo o seguinte, com valores definidos (destacados) de acordo com a tabela abaixo:
({
"cloudUrl": "https://REGION.jitterbit.com",
"agentGroupId": GROUP_ID,
"username": "ENCRYPTED_USERNAME",
"password": "ENCRYPTED_PASSWORD",
"agentNamePrefix": "test",
"deregisterAgentOnDrainstop": false,
"retryCount": 10,
"retryIntervalSeconds": 5
}
| Parâmetro | Descrição do valor |
|---|---|
cloudUrl | A URL de login para sua conta Harmony, https://REGION.jitterbit.com, onde REGION é uma das opções na-east, emea-west ou apac-southeast. |
agentGroupId | O número de identificação do grupo de agentes. |
username | A primeira linha da saída de jitterbit-utils -e. |
password | A segunda linha da saída de jitterbit-utils -e. |
??? tip "Exemplo conf/register.json"
```json
{
"cloudUrl": "https://na-east.jitterbit.com",
"agentGroupId": 12345,
"username": "$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C",
"password": "$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=",
"agentNamePrefix": "test",
"deregisterAgentOnDrainstop": false,
"retryCount": 10,
"retryIntervalSeconds": 5
}
```
=== "Token de acesso"
1. Selecione **Management Console > Access Tokens** no menu do Portal Harmony, em seguida, [crie um token de acesso](/pt/management-console/access-tokens/#create). Escolha o [ambiente](/pt/management-console/environments/) com o qual seu grupo de agentes privados está associado e defina o escopo como **Registro de Agente**.
2. Copie o token para definir o valor de `` na próxima etapa.
2. Crie um diretório e arquivo `conf/register.json` contendo o seguinte, com os valores definidos (destacados) de acordo com a tabela abaixo:
```json title="conf/register.json" hl_lines="2-4"
{
"cloudUrl": "https://REGION.jitterbit.com",
"agentGroupId": GROUP_ID,
"token": "ACCESS_TOKEN",
"agentNamePrefix": "test",
"deregisterAgentOnDrainstop": false,
"retryCount": 10,
"retryIntervalSeconds": 5
}
```
| Parâmetro | Descrição do valor |
|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| `cloudUrl` | A URL de login para sua conta Harmony, `https://REGION.jitterbit.com`, onde `REGION` é um dos `na-east`, `emea-west` ou `apac-southeast`. |
| `agentGroupId` | O número de identificação do grupo de agentes. |
| `token` | Token de acesso com escopo **Registro de Agente**. |
??? tip "Exemplo conf/register.json"
```json
{
"cloudUrl": "https://na-east.jitterbit.com",
"agentGroupId": 12345,
"token": "jb_21b0cda9-18f7-4953-bd71-8616def9d6bd",
"agentNamePrefix": "test",
"deregisterAgentOnDrainstop": false,
"retryCount": 10,
"retryIntervalSeconds": 5
}
```
-
Execute este comando para iniciar o agente privado em contêiner:
docker run --detach --name jitterbit-agent --rm --volume ./conf:/conf jitterbit/agentDica
Para habilitar a observabilidade nativa do Jitterbit com este método, adicione o parâmetro
agentMetricsTokenao arquivoregister.json. O valor é um token de acesso com escopo Métrica de Agente. -
Para verificar o status do seu agente, atualize a página Console de Gerenciamento > Agentes.
-
Para parar o agente, use o Console de Gerenciamento para drain stop o agente.
-
Para parar o contêiner, encontre o ID do contêiner com
docker ps, em seguida, usedocker stop CONTAINER_ID. -
Se
deregisterAgentOnDrainstopestiver definido comotrue, o agente é removido automaticamente quando parado. Caso contrário, delete o agente no Console de Gerenciamento.
Múltiplos agentes com docker compose
Neste exemplo, três agentes privados com configurações idênticas são executados em um grupo de agentes.
-
Crie um arquivo de variáveis de ambiente conforme mostrado acima.
-
Crie um arquivo
docker-compose.ymlcontendo o seguinte: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: O nome do arquivo de variáveis de ambiente criado na etapa 1.
-
Execute este comando para iniciar o grupo de agentes privados:
docker compose up -dDica
Execute
docker compose logs -fpara acompanhar os arquivos de log de todos os agentes, oudocker statspara monitorar o uso de recursos de cada agente. -
Para verificar o status do seu agente, atualize a página Console de Gerenciamento > Agentes.
-
Execute este comando para parar o grupo de agentes privados e remover seus contêineres:
docker compose down -d
Múltiplos agentes com helm e kubernetes
Jitterbit fornece um Helm chart que você pode usar para executar um cluster de agentes usando Kubernetes.
-
Dica
No Docker Desktop, selecione Configurações > Kubernetes > Habilitar Kubernetes.
-
Execute este comando para criptografar seu nome de usuário e senha do Harmony:
docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
Tip
Você pode usar a mesma saída dos exemplos anteriores.
- Crie um arquivo
values.yamlcontendo o seguinte, com valores substituídos de acordo com a tabela abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
| Linha | Valor | Substituir por |
|---|---|---|
| 9 | REGION | A região da sua conta Harmony (na-east, emea-west ou apac-southeast). |
| 10 | GROUP_ID | O número do ID do grupo do agente. |
| 11 | ENCRYPTED_USERNAME | A primeira linha da saída do passo 2. |
| 12 | ENCRYPTED_PASSWORD | A segunda linha da saída do passo 2. |
Caution
Esta configuração especifica que o Kubernetes deve executar pelo menos 3 e no máximo 5 agentes se o Horizontal Pod Autoscaler estiver ativo, ou 4 agentes se não estiver. Como cada agente privado Docker precisa de aproximadamente 0,25 núcleos de CPU e 2 GB de memória, você deve verificar se as especificações do seu host podem suportar esse número de agentes. Você também pode adicionar um elemento resources para definir os limites de utilização de recursos. Para mais detalhes, veja o exemplo de Jitterbit value.yml file.
- Execute estes comandos para adicionar e atualizar o repositório do Helm:
helm repo add jitterbit https://jitterbit.github.io/charts
helm repo update
- Execute este comando para iniciar o cluster de agentes privados:
helm upgrade -i -f values.yaml private-agent-group jitterbit/agent-group
Tip
Execute kubectl -n default get pods --watch para monitorar o status do cluster, ou kubectl exec -it private-agent-group-0 -- curl localhost:46912/axis/v1/cdk/internal/members para listar os membros do cluster do serviço em escuta.
-
Execute este comando para parar o cluster e remover os contêineres:
helm uninstall private-agent-group
Variáveis de ambiente
As seguintes variáveis de ambiente são reconhecidas pela imagem Docker do agente privado Jitterbit:
| Categoria | Variável | Obrigatório | Padrão | Valores permitidos | Descrição |
|---|---|---|---|---|---|
| Login | HARMONY_ORIGIN | https://na-east.jitterbit.comhttps://emea-west.jitterbit.comhttps://apac-southeast.jitterbit.com | A URL de login para sua conta Harmony. | ||
HARMONY_USERNAME | String | Seu nome de usuário da conta Harmony. | |||
HARMONY_PASSWORD | String | Sua senha da conta Harmony. | |||
HARMONY_ORG_NAME | String | O nome da sua organização Harmony. | |||
| Identificação do agente | HARMONY_AGENT_GROUP_NAME | String | O nome do grupo de agentes e o nome do ambiente, separados por um sublinhado. | ||
HARMONY_AGENT_NAME | String | O nome do agente. | |||
| Observabilidade | JITTERBIT_ENABLE_METRICS | DatadogElasticsearch | Ativar observabilidade do agente privado para a plataforma especificada. | ||
DD_API_KEY | (se JITTERBIT_ENABLE_METRICS=Datadog) | String | Chave da API do Datadog. | ||
DD_SITE | datadoghq | String | URL do site do Datadog. | ||
DD_HOST_NAME | Automático (do nome do host do sistema) | String | Nome do host do agente Datadog. | ||
ES_API_KEY | (se JITTERBIT_ENABLE_METRICS=Elasticsearch) | String | Chave da API do Elasticsearch. | ||
ES_URL | (se JITTERBIT_ENABLE_METRICS=Elasticsearch) | String | URL do Elasticsearch. | ||
METRICS_AGENT_NAME | Automático (das informações de auto-registro) | String | Nome do agente privado. | ||
METRICS_AGENT_GROUP_NAME | Automático (das informações de auto-registro) | String | Nome do grupo de agentes privados. | ||
METRICS_ENVIRONMENT_NAME | Automático (das informações de auto-registro) | String | Nome do ambiente. | ||
SKIP_METRICS_CONFIG | String | Se true, não configure automaticamente as métricas do Jitterbit. (Equivalente à opção -k/--skip-metrics-config do jitterbit-config.) | |||
ENABLE_JITTERBIT_METRICS | String | Se true, habilite as métricas do Jitterbit. Ignorado se SKIP_METRICS_CONFIG for true. |
Portas
Ao executar como um contêiner, as seguintes portas podem ser expostas:
| Porta | Descrição |
|---|---|
| 46908 | Apache HTTP |
| 46909 | Apache HTTPS |
| 46912 | Servidor Tomcat |
| 3000 | Serviço de verificação de saúde |
Solução de Problemas
Serviço de verificação de saúde
Para ver o status de um agente privado, mapeie a porta 3000 no contêiner para uma porta local e, em seguida, faça uma solicitação HTTP GET para localhost na porta mapeada. Você pode fazer isso usando a opção -p/--publish nos comandos docker run, ou definindo a chave ports no docker compose:
docker run -p 3000:3000 <outras opções> jitterbit/agent
services:
agent:
env_file: FILE
image: jitterbit/agent
container_name: jitterbit-agent
ports:
- "3000"
Para chamar o serviço, use um navegador da web ou curl para fazer uma solicitação na porta 3000:
curl -i localhost:3000
A resposta está no formato JSON, com campos indicando (como true ou false) o status geral do agente privado e o status dos serviços individuais:
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}}
Os códigos de resposta HTTP são os seguintes:
| Código | Descrição |
|---|---|
| 200 | Sucesso (Todos os serviços em execução) |
| 500 | Falha (Um ou mais serviços não estão em execução) |
Recursos
Essas seções na página de Solução de Problemas podem ajudar ao solucionar problemas com agentes privados em execução no Docker: