Criação de pipelines de Ingestão do Amazon OpenSearch - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de pipelines de Ingestão do Amazon OpenSearch

O pipeline é o mecanismo que a Ingestão do Amazon OpenSearch usa para mover dados da fonte (de onde vêm os dados) para o coletor (para onde vão os dados). Na Ingestão do OpenSearch, o coletor sempre será um único domínio do Amazon OpenSearch Service, enquanto a fonte dos dados pode ser clientes como Amazon S3, Fluent Bit ou OpenTelemetry Collector.

Para obter mais informações, consulte Pipelines na documentação do OpenSearch.

Pré-requisitos e perfil do IAM necessário

Para criar um pipeline de Ingestão do OpenSearch, você deve ter os seguintes recursos:

  • Um perfil do IAM que o OpenSearch Ingestion assumirá para gravar no coletor. Você incluirá esse ARN do perfil na sua configuração do pipeline.

  • Um domínio do OpenSearch Service ou uma Coleção da tecnologia sem servidor do OpenSearch para atuar como coletor. Se você estiver escrevendo para um domínio, ele deve estar executando o OpenSearch 1.0 ou posterior ou o Elasticsearch 7.4 ou posterior. O coletor deve ter uma política de acesso que conceda as permissões apropriadas à sua perfil de pipeline do IAM.

Para obter instruções sobre como criar esses recursos, consulte os tópicos a seguir:

nota

Se você estiver escrevendo para um domínio que usa controle de acesso detalhado, há etapas extras que você precisa concluir. Consulte Etapa 3: mapear a função do pipeline (somente para domínios que usam controle de acesso refinado).

Permissões obrigatórias do IAM

A Ingestão do OpenSearch usa as seguintes permissões do IAM para criar pipelines:

  • osis:CreatePipeline – crie um pipeline.

  • osis:ValidatePipeline – verifica se a configuração do pipeline é válida.

  • iam:PassRole – passa o perfil de pipeline para a Ingestão do OpenSearch para que ele possa gravar dados no domínio. Essa permissão deve estar no recurso de perfil de pipeline (o ARN que você especifica para a opção sts_role_arn na configuração do pipeline) ou simplesmente *, se você planeja usar funções diferentes em cada pipeline.

Por exemplo, a política a seguir concede permissão para criar um pipeline:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:ListPipelineBlueprints", "osis:ValidatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

A Ingestão do OpenSearch também inclui uma permissão chamada osis:Ingest, que é necessária para enviar solicitações assinadas ao pipeline usando o Signature Version 4. Para ter mais informações, consulte Criação de uma função de ingestão.

nota

Além disso, o primeiro usuário a criar um pipeline em uma conta precisa ter permissões para a ação iam:CreateServiceLinkedRole. Para obter mais informações, consulte Recurso de perfil de pipeline.

Para mais informações sobre cada permissão, consulte Ações, recursos e chaves de condição para a Ingestão do OpenSearch na Referência de autorização do serviço.

Como especificar a versão do pipeline

Ao configurar um pipeline, você deve especificar a versão principal do Data Prepper que o pipeline executará. Para especificar a versão, inclua a opção version na configuração do pipeline:

version: "2" log-pipeline: source: ...

Quando você escolhe Criar, a Ingestão do OpenSearch determina a última versão secundária disponível da versão principal especificada e provisiona o pipeline com essa versão. Por exemplo, se você especificar version: "2" e a versão mais recente compatível do Data Prepper for 2.1.1, a Ingestão do OpenSearch provisionará seu pipeline com a versão 2.1.1. Não exibimos publicamente a versão secundária que seu pipeline está executando.

Para atualizar seu pipeline quando uma nova versão principal do Data Prepper estiver disponível, edite a configuração do pipeline e especifique a nova versão. Você não pode fazer o downgrade de um pipeline para uma versão anterior.

nota

A Ingestão do OpenSearch não oferece suporte imediato às novas versões do Data Prepper na ocasião do lançamento. Haverá algum atraso entre o momento em que uma nova versão estará disponível publicamente e quando ela será compatível com a Ingestão do OpenSearch. Além disso, a Ingestão do OpenSearch pode explicitamente não oferecer suporte total a determinadas versões principais ou secundárias. Para obter uma lista abrangente, consulte Versões do Data Prepper compatíveis.

Sempre que você fizer uma alteração em seu pipeline que inicie uma implantação azul/verde, a Ingestão do OpenSearch pode atualizá-lo para a versão secundária mais recente da versão principal que está atualmente configurada no arquivo YAML do pipeline. Para ter mais informações, consulte Implantações azul/verde para atualizações de pipeline. A Ingestão do OpenSearch não pode alterar a versão principal do seu pipeline, a menos que você atualize explicitamente a opção version na configuração do pipeline.

Como especificar o caminho de ingestão

Para fontes baseadas em pull, como o rastreamento OTel e a métrica OTel, a Ingestão do OpenSearch requer a opção adicional path em sua configuração de origem. O caminho é uma string como /log/ingest, que representa o caminho do URI para ingestão. Esse caminho define o URI que você usa para enviar dados para o pipeline.

Por exemplo, digamos que você especifique o seguinte subpipeline de entrada para um pipeline de ingestão chamado: logs

entry-pipeline: source: http: path: "/my/test_path"

Ao ingerir dados no pipeline, você deve especificar o seguinte endpoint na configuração do seu cliente:. https://logs-abcdefgh.us-west-2.osis.amazonaws.com/my/test_path

O caminho deve começar com uma barra (/) e pode conter os caracteres especiais '-', '_', ' . 'e'/', bem como o placeholder ${pipelineName}. Se você usar ${pipelineName} (como path: "/${pipelineName}/test_path"), a variável será substituída pelo nome do subpipeline associado. Neste exemplo, seria https://logs.us-west-2.osis.amazonaws.com/entry-pipeline/test_path.

Como criar pipelines

Esta seção descreve como criar pipelines de Ingestão do OpenSearch usando o console do OpenSearch Service e o AWS CLI.

Para criar um pipeline
  1. Faça login no console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home.

  2. Escolha Pipelines no painel de navegação à esquerda e, depois, Criar pipeline.

  3. Selecione um pipeline em branco ou escolha um esquema de configuração. Os esquemas incluem um arquivo de configuração YAML e JSON pré-configurado para uma variedade de casos de uso comuns. Para ter mais informações, consulte Usar esquemas para criar um pipeline.

    Escolha Selecionar esquema.

  4. Insira um nome para o pipeline.

  5. (Opcional) Escolha Habilitar buffer persistente. Um buffer persistente armazena seus dados em um buffer baseado em disco entre várias AZs. Para obter informações, consulte Armazenamento em buffer persistente. Se você habilitar o armazenamento em buffer persistente, selecione a chave do AWS Key Management Service para criptografar os dados do buffer.

  6. Configure a capacidade mínima e máxima do pipeline em unidades de computação da Ingestão do OpenSearch (OCUs). Para ter mais informações, consulte Pipelines de escalabilidade.

  7. Em Configuração do pipeline, forneça a configuração do pipeline no formato YAML. Se você estiver usando um esquema, a configuração já está pré-preenchida, mas você deve fazer algumas modificações.

    Um único arquivo de configuração do pipeline pode conter de 1 a 10 subpipelines. Cada subpipeline é uma combinação de uma única fonte, zero ou mais processadores e um único coletor. Para a Ingestão do OpenSearch, o coletor deve sempre ser um domínio do OpenSearch Service. Para ver uma lista das opções compatíveis, consulte Plugins e opções compatíveis para pipelines OpenSearch de ingestão da Amazon.

    nota

    Você deve incluir a opção sts_role_arn em cada subpipeline. O pipeline assume a função definida em sts_role_arn para assinar solicitações no domínio. Para ter mais informações, consulte Conceder aos pipelines da Ingestão do Amazon OpenSearch o acesso aos domínios.

    O arquivo de exemplo de configuração a seguir usa a fonte HTTP e os plug-ins Grok para processar dados de log não estruturados e enviá-los para um domínio do OpenSearch Service. O subpipeline é nomeado log-pipeline.

    version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - grok: match: log: [ '%{COMMONAPACHELOG}' ] - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-my-domain.us-east-1.es.amazonaws.com" ] index: "apache_logs" aws: sts_role_arn: "arn:aws:iam::123456789012:role/{pipeline-role}" region: "us-east-1"

    Você pode criar sua própria configuração do pipeline ou escolher Carregar arquivo e importar uma configuração existente para um pipeline autogerenciado do Data Prepper. Como alternativa, você pode usar um esquema de configuração.

  8. Depois de configurar seu pipeline, escolha Validar pipeline para confirmar se sua configuração está correta. Se a validação falhar, corrija os erros e execute a validação novamente.

  9. Na seção Network configuration (Configuração de rede), selecione VPC access (Acesso via VPC) ou Public access (Acesso público). Se você selecionar Acesso público, vá para a próxima etapa. Se você escolher Acesso à VPC, defina as seguintes configurações:

    Configuração Descrição
    Gerenciamento de endpoints

    Escolha se você mesmo quer criar seus endpoints da VPC ou deixar que o OpenSearch Ingestion os crie para você. O gerenciamento de endpoints é padronizado para endpoints gerenciados pelo OpenSearch Ingestion.

    VPC

    Escolha o ID da nuvem privada virtual (VPC) que deseja usar. A VPC e o pipeline devem estar na mesma Região da AWS.

    Subredes

    Escolha uma ou mais sub-redes. O OpenSearch Service colocará um endpoint da VPC e interfaces de rede elásticas nas sub-redes.

    Grupos de segurança

    Escolha um ou mais grupos de segurança da VPC que permitem que o aplicativo necessário acesse o pipeline de Ingestão do OpenSearch nas portas (80 ou 443) e nos protocolos (HTTP ou HTTPs) expostos pelo pipeline.

    Opções de anexo de VPC

    Se sua origem for um endpoint autogerenciado, conecte seu pipeline a uma VPC. Escolha uma das opções de CIDR padrão fornecidas ou use um CIDR personalizado.

    Para ter mais informações, consulte Como configurar o acesso da VPC aos pipelines do Amazon OpenSearch Ingestion.

  10. (Opcional) Em Tags, adicione uma ou mais tags (pares de chave/valor) ao seu pipeline. Para ter mais informações, consulte Uso de tags nos pipelines de Ingestão do Amazon OpenSearch.

  11. (Opcional) Em Opções de publicação de logs, ative a publicação de logs do pipeline no Amazon CloudWatch Logs. Recomendamos que você habilite a publicação de logs para poder solucionar problemas de pipeline com mais facilidade. Para ter mais informações, consulte Monitoramento dos logs de pipeline.

  12. Escolha Próximo.

  13. Revise sua configuração do pipeline e escolha Criar.

A Ingestão do OpenSearch executa um processo assíncrono para criar o pipeline. Quando o status do pipeline for Active, você pode começar a ingerir dados.

O comando create-pipeline aceita a configuração do pipeline como uma string ou em um arquivo .yaml. Se você fornecer a configuração como uma string, cada nova linha deverá ser escapada com \n. Por exemplo, "log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...

O exemplo de comando a seguir cria um pipeline com a seguinte configuração:

  • Mínimo de 4 OCUs de ingestão, máximo de 10 OCUs de ingestão

  • Provisionado em uma nuvem privada virtual (VPC)

  • Publicação de logs habilitada

aws osis create-pipeline \ --pipeline-name my-pipeline \ --min-units 4 \ --max-units 10 \ --log-publishing-options IsLoggingEnabled=true,CloudWatchLogDestination={LogGroup="MyLogGroup"} \ --vpc-options SecurityGroupIds={sg-12345678,sg-9012345},SubnetIds=subnet-1212234567834asdf \ --pipeline-configuration-body "file://pipeline-config.yaml"

A Ingestão do OpenSearch executa um processo assíncrono para criar o pipeline. Quando o status do pipeline for Active, você pode começar a ingerir dados. Para verificar o status do pipeline, use o comando GetPipeline.

Para criar um pipeline de Ingestão do OpenSearch usando a API de Ingestão do OpenSearch, chame a operação CreatePipeline (Criar pipeline).

Depois que seu pipeline for criado com sucesso, você poderá configurar seu cliente e começar a ingerir dados no seu domínio do OpenSearch Service. Para ter mais informações, consulte Integração dos pipelines OpenSearch de ingestão da Amazon com outros serviços e aplicativos.

Acompanhar o status da criação do pipeline

Você pode acompanhar o status de um pipeline à medida que a Ingestão do OpenSearch o provisiona e prepara para ingerir dados.

Depois de criar inicialmente um pipeline, ele passa por vários estágios à medida que a Ingestão do OpenSearch o prepara para ingerir dados. Para visualizar os vários estágios da criação do pipeline, escolha o nome do pipeline para ver sua página Configurações do pipeline. Em Status, escolha Exibir detalhes.

Um pipeline passa pelos seguintes estágios antes de estar disponível para ingestão de dados:

  • Validação: valida a configuração do pipeline. Quando esse estágio estiver concluído, todas as validações serão bem-sucedidas.

  • Criação de um ambiente: prepara e provisiona recursos Quando esse estágio estiver concluído, o novo ambiente de pipeline será criado.

  • Implantação do pipeline: implanta o pipeline. Quando esse estágio estiver concluído, o pipeline foi implantado com sucesso.

  • Verificação da integridade do pipeline: verifica a integridade da pipeline. Quando esse estágio estiver concluído, todas as verificações de integridade serão aprovadas.

  • Habilitação de tráfego: permite que o pipeline consuma dados. Quando este estágio for concluído, você pode começar a ingerir dados no pipeline.

Use o comando get-pipeline-change-progress para verificar o status de um pipeline. A solicitação AWS CLI a seguir verifica o status de um pipeline nomeado: my-pipeline

aws osis get-pipeline-change-progress \ --pipeline-name my-pipeline

Resposta:

{ "ChangeProgressStatuses": { "ChangeProgressStages": [ { "Description": "Validating pipeline configuration", "LastUpdated": 1.671055851E9, "Name": "VALIDATION", "Status": "PENDING" } ], "StartTime": 1.671055851E9, "Status": "PROCESSING", "TotalNumberOfStages": 5 } }

Para acompanhar o status da criação do pipeline usando a API de Ingestão do OpenSearch, chame a operação getPipelineChangeProgress.