Criação de pipelines OpenSearch de ingestão da Amazon - 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 OpenSearch de ingestão da Amazon

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

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

Pré-requisitos e funções obrigatórias

Para criar um pipeline OpenSearch de ingestão, você precisa ter os seguintes recursos:

  • Uma função 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 OpenSearch de serviço ou coleção OpenSearch sem servidor para atuar como coletor. Se você estiver gravando em um domínio, ele deverá estar executando a OpenSearch versão 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

OpenSearch A ingestão 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— passe a função do pipeline para o OpenSearch Ingestion 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" ] } ] }

OpenSearch A ingestão também inclui uma permissão chamadaosis: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 obter mais informações sobre cada permissão, consulte Ações, recursos e chaves de condição para OpenSearch ingestão na Referência de autorização de 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 OpenSearch ingestão 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, o OpenSearch Ingestion 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

OpenSearch O Inestion não oferece suporte imediato às novas versões do Data Prepper assim que elas são lançadas. Haverá algum atraso entre o momento em que uma nova versão estará disponível publicamente e o momento em que ela será suportada no OpenSearch Ingestion. Além disso, o OpenSearch Inestion 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 no pipeline que inicie uma implantação azul/verde, o OpenSearch Ingestion poderá atualizá-la para a versão secundária mais recente da versão principal que está atualmente configurada no arquivo YAML do pipeline. Para obter mais informações, consulteImplantações azul/verde para atualizações de pipeline. OpenSearch A ingestão não pode alterar a versão principal do seu pipeline, a menos que você atualize explicitamente a version opção na configuração do pipeline.

Como especificar o caminho de ingestão

Para fontes baseadas em pull, como rastreamento de oTel e métricas de oTel, a OpenSearch ingestão requer a path opção adicional 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 OpenSearch de ingestão usando o console OpenSearch de serviço 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. Insira um nome para o pipeline.

  4. (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ê ativar o buffer persistente, selecione a AWS Key Management Service chave para criptografar os dados do buffer.

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

  6. Em Configuração do pipeline, forneça a configuração do pipeline no formato YAML. 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 OpenSearch ingestão, o coletor deve sempre ser um domínio OpenSearch de serviço. 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 as opções sts_role_arn e sigv4 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 Concedendo acesso aos pipelines OpenSearch do Amazon Ingestion aos domínios.

    O exemplo de arquivo 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 de OpenSearch serviço. 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"
    nota

    Se você especificar vários coletores em uma definição de pipeline YAML, todos eles deverão ser do mesmo domínio de OpenSearch serviço. Um pipeline OpenSearch de ingestão não pode gravar em vários domínios diferentes.

    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.

  7. 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.

  8. Em Configuração de rede, escolha Acesso VPC ou 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
    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. OpenSearch O serviço colocará um endpoint VPC e interfaces de rede elástica nas sub-redes.

    Grupos de segurança

    Escolha um ou mais grupos de segurança de VPC que permitam que o aplicativo necessário alcance o pipeline de OpenSearch ingestão nas portas (80 ou 443) e protocolos (HTTP ou HTTPs) expostos pelo pipeline.

    Opções de anexo de VPC

    Se sua fonte 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 Configurando o acesso à VPC para pipelines de ingestão da Amazon OpenSearch .

  9. (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.

  10. (Opcional) Em Opções de publicação de registros, ative a publicação de registros de 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.

  11. Escolha Próximo.

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

OpenSearch A ingestão 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"

OpenSearch A ingestão 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 GetPipelinecomando.

Para criar um pipeline OpenSearch de ingestão usando a API OpenSearch de ingestão, chame a CreatePipelineoperação.

Depois que seu pipeline for criado com sucesso, você poderá configurar seu cliente e começar a ingerir dados em seu domínio OpenSearch de serviço. Para ter mais informações, consulte Trabalhando com integrações de pipeline OpenSearch de ingestão da Amazon.

Acompanhar o status da criação do pipeline

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

Depois de criar inicialmente um pipeline, ele passa por vários estágios à medida que o OpenSearch Inestion 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 get-pipeline-change-progresscomando para verificar o status de um pipeline. A AWS CLI solicitação a seguir verifica o status de um pipeline chamadomy-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 OpenSearch de ingestão, chame a GetPipelineChangeProgressoperação.

Usar esquemas para criar um pipeline

Em vez de criar uma definição de pipeline do zero, você pode usar esquemas de configuração, que são modelos YAML pré-configurados para cenários comuns de ingestão, como Trace Analytics ou logs do Apache. Os esquemas de configuração ajudam você a provisionar pipelines facilmente, sem precisar criar uma configuração do zero.

Como usar um esquema de 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 esquema. A configuração do pipeline é preenchida com um subpipeline para o caso de uso selecionado.

  4. Revise o texto comentado que orienta você na configuração do esquema.

    Importante

    O esquema do pipeline não é válido no estado em que se encontra. Você precisa fazer algumas modificações, como fornecer o ARN Região da AWS e a função a serem usados para autenticação, caso contrário, a validação do pipeline falhará.

Para obter uma lista de todos os blueprints disponíveis usando o AWS CLI, envie uma list-pipeline-blueprintssolicitação.

aws osis list-pipeline-blueprints

A solicitação retorna uma lista com todos os esquemas disponíveis.

Para obter informações mais detalhadas sobre um blueprint específico, use o get-pipeline-blueprintcomando:

aws osis get-pipeline-blueprint --blueprint-name AWS-ApacheLogPipeline

Essa solicitação retorna o conteúdo do esquema do pipeline de log do Apache:

{ "Blueprint":{ "PipelineConfigurationBody":"###\n # Limitations: https://docs.aws.amazon.com/opensearch-service/latest/ingestion/ingestion.html#ingestion-limitations\n###\n###\n # apache-log-pipeline:\n # This pipeline receives logs via http (e.g. FluentBit), extracts important values from the logs by matching\n # the value in the 'log' key against the grok common Apache log pattern. The grokked logs are then sent\n # to OpenSearch to an index named 'logs'\n###\n\nversion: \"2\"\napache-log-pipeline:\n source:\n http:\n # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline.\n # In this case it would be \"/apache-log-pipeline/logs\". This will be the FluentBit output URI value.\n path: \"/${pipelineName}/logs\"\n processor:\n - grok:\n match:\n log: [ \"%{COMMONAPACHELOG_DATATYPED}\" ]\n sink:\n - opensearch:\n # Provide an AWS OpenSearch Service domain endpoint\n # hosts: [ \"https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com\" ]\n aws:\n # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n # Provide the region of the domain.\n # region: \"us-east-1\"\n # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection\n # serverless: true\n index: \"logs\"\n # Enable the S3 DLQ to capture any failed requests in an S3 bucket\n # dlq:\n # s3:\n # Provide an S3 bucket\n # bucket: \"your-dlq-bucket-name\"\n # Provide a key path prefix for the failed requests\n # key_path_prefix: \"${pipelineName}/logs/dlq\"\n # Provide the region of the bucket.\n # region: \"us-east-1\"\n # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n", "BlueprintName":"AWS-ApacheLogPipeline" } }

Para obter informações sobre esquemas de pipeline usando a API de OpenSearch ingestão, use as operações ListPipelineBlueprintse. GetPipelineBlueprint