Migre dados históricos de uma instância Prometheus de código aberto autogerenciada para o Managed Service for Prometheus usando o comando promtool migrate.
Pré-requisitos
-
Fonte de dados: Sua instância Prometheus de código aberto 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 Prometheus de código aberto autogerenciado deve conseguir acessar o endpoint de Remote Write da instância do Managed Service for Prometheus.
-
Dependência de ferramenta: Você deve instalar o promtool fornecido pelo Alibaba Cloud.
Etapas da migração
Etapa 1: Obter uma instância do Managed Service for Prometheus
-
Faça logon no Alibaba Cloud Management Console.
Faça logon no console do Cloud Monitor ou no console do Managed Service for Prometheus, selecione uma instância Prometheus existente ou crie uma nova.
Ao criar a instância, selecione um período de retenção maior que o período de retenção histórico do seu Prometheus autogerenciado de código aberto.
ImportanteAvalie o volume de dados local e dimensione os shards do Log Service MetricStore da instância Prometheus de acordo.
-
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.
Se você tiver um volume grande de dados, abra 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 de Settings e obter a URL pública de Remote Write. Se o serviço autogerenciado estiver em execução no Alibaba Cloud, você também pode 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. Alternativamente, 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 Endereço de acesso na parte inferior da página, copie a URL de Remote Write para rede pública ou interna na coluna Rede.
-
Etapa 2: Migrar com promtool migrate
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/(o 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 -
Consulte 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_dirO caminho para o diretório de dados TSDB do Prometheus autogerenciado de código aberto. Este parâmetro é obrigatório.
/opt/prometheus/data--rw_urlO endpoint de Remote Write da instância do Managed Service for Prometheus. Este parâmetro é obrigatório.
https://xxx.region.aliyuncs.com/api/v1/write--outputO método de saída de dados.
Valores válidos:
rwoustdout--rw_usernameO AccessKeyID da instância do Managed Service for Prometheus. Este parâmetro é obrigatório quando o acesso de gravação sem senha não está ativado.
LTAI5tXXXXXXX--rw_passwordO AccessKeySecret da instância do Managed Service for Prometheus. Este parâmetro é obrigatório quando o acesso de gravação sem senha não está ativado.
Co4XXXXXXXXX--min_timeO horário de início da migração de dados (timestamp UNIX em milissegundos). O padrão é 0, o que inicia a migração a partir dos dados mais antigos.
1609433200000--max_timeO horário de término da migração de dados (timestamp UNIX em milissegundos). O padrão é o horário em que a migração é iniciada.
1640972400000--matchFiltra as métricas a serem migradas. Expressões regulares são suportadas.
'__name__=~"http_*"'--rw_batch_sizeO número de amostras enviadas em cada lote. Ajuste este parâmetro para otimizar o desempenho.
1000 -
Verifique o resultado da migração.
-
Verifique a instância do Managed Service for Prometheus.
-
Faça logon 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 autogerenciado de código aberto.
-
-
Verifique a integridade dos dados.
Selecione métricas-chave, como
upenode_cpu_seconds_total, para verificar se o volume de dados está consistente antes e depois da migração.
-
Notas de uso
-
Filtragem de dados
Use os parâmetros
--min_time,--max_timee--matchpara limitar a migração a um intervalo de tempo ou conjunto específico de métricas e evitar a transferência de dados redundantes. -
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 do Alibaba Cloud. O intervalo recomendado é de 500 a 2000. -
Para grandes volumes de dados, divida a migração em lotes por período, como semanalmente ou mensalmente.
-
-
Segurança
Evite expor o
--rw_passwordna linha de comando. Use variáveis de ambiente ou arquivos de configuração para transmitir informações confidenciais. -
Rede e estabilidade
Garanta a estabilidade da rede durante a migração. Se a migração falhar, use o parâmetro
--min_timepara retomar 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 instância do Alibaba Cloud. -
Confirme se a URL de Remote Write está correta e se o endpoint de Remote Write está habilitado para a instância do Managed Service for Prometheus.
P2: O que fazer se a migração estiver muito lenta?
-
Aumente o valor de
--rw_batch_size, por exemplo,--rw_batch_size=1000. -
Garanta que haja largura de banda de rede suficiente entre o servidor Prometheus autogerenciado de código aberto 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 Prometheus é suficiente.
Ferramenta de conversão de timestamp
Use o seguinte comando 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)