Migre dados históricos de uma instância do Prometheus open source autogerenciada para o Managed Service for Prometheus usando o comando promtool migrate.
Pré-requisitos
Fonte de dados: Sua instância do Prometheus open source autogerenciada deve usar o TSDB, que é o mecanismo de armazenamento padrão.
Instância do Managed Service for Prometheus: Verifique se a instância de destino do Managed Service for Prometheus está em execução.
Conectividade de rede: O servidor do Prometheus open source autogerenciado precisa ter acesso ao endpoint Remote Write da sua instância do Managed Service for Prometheus.
Dependência de ferramenta: É necessário instalar o promtool fornecido pela Alibaba Cloud.
Etapas de migração
Etapa 1: Obter uma instância do Managed Service for Prometheus
-
Faça login no Console de Gerenciamento da Alibaba Cloud.
Acesse o console do Cloud Monitor ou o console do Managed Service for Prometheus, selecione uma instância existente do Prometheus ou crie uma nova.
Ao criar a instância, defina um período de retenção superior ao período de retenção histórica do seu Prometheus open source autogerenciado.
ImportanteAvalie o volume de dados local e dimensione os shards do MetricStore do Log Service da sua instância do Prometheus conforme necessário.
Volume de dados > 1 GB: Dimensione para 4 shards.
Volume de dados > 10 GB: Dimensione para 16 shards.
Volume de dados > 100 GB: Dimensione para 64 shards.
Volume de dados < 1 TB: Dimensione para 256 shards.
Caso possua um grande volume de dados, envie um ticket para obter assistência.
-
Obtenha o endpoint de gravação da instância.
Clique no nome da instância de destino para abrir a página Settings e obtenha a URL pública do Remote Write. Se o serviço autogerenciado estiver executando na Alibaba Cloud, também é possível obter a URL interna.
Para autenticação, atribua a função AliyunPrometheusMetricWriteAccess a um usuário RAM e gere um par de AccessKey (AK/SK) para usar como credenciais. Como alternativa, na página de configurações da instância, ative o acesso de gravação sem senha para
0.0.0.0. Na seção Access Address, na parte inferior da página, copie a URL do Remote Write referente à rede pública ou interna na coluna Network.
Etapa 2: Migrar com promtool migrate
O promtool migrate é uma ferramenta oficial do Managed Service for Prometheus que migra dados locais do TSDB para a nuvem.
-
Prepare a migração.
Backup de dados: Faça backup do diretório
data/(caminho de armazenamento do TSDB) do Prometheus autogerenciado antes da migração.-
Instale o promtool.
curl -fsSL "https://o11y-addon-hangzhou-public.oss-cn-hangzhou.aliyuncs.com/share/promtool/install.sh" | bash -
Visualize as informações de ajuda do comando promtool.
# View all supported tool commands. promtool --help # View data migration parameters. promtool migrate --help
-
Execute o comando de migração.
promtool migrate \ --db_dir=/path/to/local/prometheus/data \ # The TSDB data directory of your self-managed open-source Prometheus. --output=rw # Write data by using Remote Write. --rw_url=<Remote_Write_URL> \ # Example: https://xxx.region.aliyuncs.com/api/v1/write --rw_username=<AccessKey_ID> \ # The AccessKey ID for your Managed Service for Prometheus instance. --rw_password=<AccessKey_Secret> \ # The AccessKey Secret for your Managed Service for Prometheus instance. --min_time=START_TIMESTAMP \ # Optional: The start time for the migration (UNIX timestamp in milliseconds). --max_time=END_TIMESTAMP \ # Optional: The end time for the migration (UNIX timestamp in milliseconds).Parâmetro
Descrição
Exemplo
--db_dirCaminho para o diretório de dados do TSDB do Prometheus open source autogerenciado. Este parâmetro é obrigatório.
/opt/prometheus/data--rw_urlEndpoint Remote Write da instância do Managed Service for Prometheus. Parâmetro obrigatório.
https://xxx.region.aliyuncs.com/api/v1/write--outputMétodo de saída dos dados.
Valores válidos:
rwoustdout--rw_usernameAccessKeyID da instância do Managed Service for Prometheus. Obrigatório caso o acesso de gravação sem senha não esteja ativado.
LTAI5tXXXXXXX--rw_passwordAccessKeySecret da instância do Managed Service for Prometheus. Necessário se o acesso de gravação sem senha estiver desativado.
Co4XXXXXXXXX--min_timeHorário inicial da migração de dados (timestamp UNIX em milissegundos). O padrão é 0, iniciando a migração a partir dos dados mais antigos.
1609433200000--max_timeHorário final da migração de dados (timestamp UNIX em milissegundos). Por padrão, corresponde ao momento em que a migração é iniciada.
1640972400000--matchFiltra as métricas a serem migradas. Suporta expressões regulares.
'__name__=~"http_*"'--rw_batch_sizeQuantidade de amostras enviadas em cada lote. Ajuste este parâmetro para otimizar o desempenho.
1000 -
Verifique o resultado da migração.
-
Inspecione a instância do Managed Service for Prometheus.
Faça login no console do Cloud Monitor ou no console do Managed Service for Prometheus. Na página Instance List, clique no nome da instância de destino.
No painel de navegação à esquerda, clique em Metric Management. Na aba Metrics Explorer, execute uma consulta PromQL.
Confirme se o intervalo de tempo dos dados históricos corresponde ao do Prometheus open source autogerenciado.
-
Valide a integridade dos dados.
Selecione métricas essenciais, como
upenode_cpu_seconds_total, para confirmar se o volume de dados permanece consistente antes e depois da migração.
-
Observações de uso
-
Filtragem de dados
Utilize os parâmetros
--min_time,--max_timee--matchpara restringir a migração a um intervalo de tempo ou conjunto específico de métricas, evitando transferência redundante de dados. -
Otimização de desempenho
Ajuste o
--rw_batch_sizepara aumentar a velocidade da migração. Defina o valor com base na largura de banda da rede e na carga da instância da Alibaba Cloud. O intervalo recomendado varia de 500 a 2000.Para grandes volumes de dados, divida a migração em lotes baseados em tempo, como semanais ou mensais.
-
Segurança
Evite expor o
--rw_passwordna linha de comando. Prefira usar variáveis de ambiente ou arquivos de configuração para transmitir informações sensíveis. -
Rede e estabilidade
Garanta a estabilidade da rede durante a migração. Em caso de falha, utilize o parâmetro
--min_timepara retomar o processo a partir do ponto de interrupção.
Perguntas frequentes
P1: O que fazer se ocorrer uma falha de autenticação durante a migração?
Verifique se
--rw_usernamee--rw_passwordcorrespondem à Access Key da sua instância da Alibaba Cloud.Confirme se a URL do Remote Write está correta e se o endpoint Remote Write está habilitado na instância do Managed Service for Prometheus.
P2: Como proceder se a migração estiver muito lenta?
Aumente o valor de
--rw_batch_size, por exemplo,--rw_batch_size=1000.Assegure-se de que há largura de banda suficiente entre o servidor do Prometheus open source autogerenciado e a instância do Managed Service for Prometheus.
P3: O que fazer se os dados não forem exibidos após a migração?
Aguarde alguns minutos para que a instância do Managed Service for Prometheus processe e indexe os dados migrados.
Verifique se o período de retenção da instância do Prometheus é adequado.
Ferramenta de conversão de timestamp
Use o comando abaixo para converter uma data em timestamp UNIX em milissegundos.
date -d "2020-01-01 00:00:00" +%s%3N
# Example output: 1577836800000 (corresponds to 2020-01-01 00:00:00 UTC)