Pesquisa de site

Comece com o Parseable, uma plataforma de armazenamento de log e observabilidade de código aberto


Escrito em Rust, o Parseable aproveita a compactação de dados, o armazenamento e os avanços de rede para trazer uma plataforma de registro simples e eficiente que simplesmente funciona.

Os dados de log são um dos segmentos de crescimento mais rápido no armazenamento de dados. É também um dos espaços mais complicados. Existem vários produtos e soluções com casos de uso sobrepostos e marketing confuso.

Este artigo analisa o Parseable, uma plataforma de armazenamento e observabilidade de logs. Parseable é voltado para uma melhor experiência do usuário, com uma interface fácil de implantar e usar e uma arquitetura simples e nativa da nuvem. Também mostrarei como configurar o Parseable com FluentBit para armazenar logs.

O que é analisável?

Parseable é uma plataforma gratuita e de código aberto para armazenamento e observabilidade de logs. Escrito em Rust, o Parseable aproveita a compactação de dados, o armazenamento e os avanços de rede para trazer uma plataforma de registro simples e eficiente que simplesmente funciona.

Alguns conceitos básicos para construir o Parseable são:

Indexação gratuita

Tradicionalmente, mecanismos de pesquisa de texto como o Elastic também serviram como plataformas de armazenamento de logs. Isso faz sentido porque os dados de log devem ser pesquisados para serem realmente úteis. Mas a indexação tem um custo alto. Faz uso intensivo da CPU e retarda a ingestão. Além disso, os dados de índice gerados por esses sistemas são da mesma ordem de armazenamento que os dados brutos de log. Isso dobra o custo de armazenamento e aumenta a complexidade. Analisável muda isso. Com formatos de dados colunares (parquet), é possível compactar e consultar os dados de log de forma eficiente, sem indexá-los.

Propriedade de dados e conteúdo

Com parquet como formato de armazenamento e armazenado em buckets de armazenamento de objetos padrão, os usuários possuem seus dados de log e têm acesso completo ao conteúdo real. Isso significa que os usuários podem usar facilmente ferramentas de análise como Spark, Presto ou TensorFlow para extrair mais valor dos dados. Esse recurso é extremamente poderoso, abrindo novos caminhos para análise de dados.

Esquema fluido

Os logs são geralmente semiestruturados por natureza e estão em constante evolução. Por exemplo, um desenvolvedor pode começar com um esquema de log como este:

{
  "Status": "Ready",
  "Application": "Example"
}

Mas à medida que mais informações são coletadas, o esquema de log pode evoluir para:

{
  "Status": "Ready",
  "Application": {
    "UserID": "3187F492-8449-4486-A2A0-015AE34F1D09",
    "Name": "Example"
  }
}

As equipes de engenharia e SRE enfrentam regularmente problemas relacionados a esquemas. Parseable resolve isso com uma abordagem de esquema fluida que permite aos usuários alterar o esquema dinamicamente.

Ingestão simples

O atual mecanismo de ingestão para plataformas de log é bastante complicado, com vários protocolos e conectores disponíveis. Parseable visa tornar a ingestão de log o mais fácil possível. O resultado é que você pode usar chamadas HTTP POST para enviar logs para Parseable. Não são necessários SDKs complicados.

E se você quiser usar um agente de registro como FluentBit, Vector, LogStash ou outros? Quase todos os principais coletores de log suportam HTTP, portanto o Parseable já é compatível com seu agente de coleta de log favorito.

iniciar

Você pode usar uma imagem Docker para testar o Parseable. Esta imagem mostra o Parseable em modo de demonstração, usando armazenamento de objetos acessível ao público.

$ cat << EOF > parseable-env
P_S3_URL=https://minio.parseable.io:9000
P_S3_ACCESS_KEY=minioadmin
P_S3_SECRET_KEY=minioadmin
P_S3_REGION=us-east-1
P_S3_BUCKET=parseable
P_LOCAL_STORAGE=/data
P_USERNAME=parseable
P_PASSWORD=parseable
EOF

$ mkdir -p /tmp/data

$ docker run \
  -p 8000:8000 \
  --env-file parseable-env \
  -v /tmp/data:/data \
  parseable/parseable:latest

Faça login na IU do Parseable usando as credenciais passadas aqui (que são parseable e parseable.) A demonstração já contém alguns dados porque o Parseable está apontando para o bucket aberto publicamente.

Certifique-se de alterar o bucket e as credenciais da sua instância de armazenamento de objetos antes de enviar quaisquer dados para o Parseable.

Consulte a documentação para entender como o Parseable funciona e como ingerir logs.

Configure o FluentBit para enviar logs para Parseable

Você pode usar um arquivo de composição do Docker para configurar o Parseable e o FluentBit, facilitando a configuração e a desmontagem conforme necessário.

Primeiro, salve este arquivo como fluent-bit.conf em um diretório. O arquivo é a configuração usada para enviar dados ao Parseable.

[SERVICE]
  Flush 5
  Daemon Off
  Log_Level debug

[INPUT]
  Name dummy
  Tag dummy

[OUTPUT]
  Name http
  Match *
  Host parseable
  http_User parseable
  http_Passwd parseable
  format json
  Port 8000
  Header X-P-META-meta1 value1
  Header X-P-TAG-tag1 value1
  URI /api/v1/logstream/fluentbit1
  Json_date_key timestamp
  Json_date_format iso8601

Agora salve o seguinte arquivo como docker-compose.yaml no mesmo diretório acima:

version: "3.7"

services:
  fluent-bit:
    image: fluent/fluent-bit
    volumes:
      - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
    depends_on:
      - parseable

  parseable:
    image: parseable/parseable
    ports:
      - "8000:8000"
    environment:
      - P_S3_URL=https://minio.parseable.io:9000
      - P_S3_ACCESS_KEY=minioadmin
      - P_S3_SECRET_KEY=minioadmin
      - P_S3_REGION=us-east-1
      - P_S3_BUCKET=parseable
      - P_LOCAL_STORAGE=/tmp/data
      - P_USERNAME=parseable
      - P_PASSWORD=parseable

O docker-compose.yaml refere-se ao arquivo fluent-bit.conf e o passa para o contêiner FluentBit como o arquivo de configuração.

Parseable é implantado com a configuração padrão (como na configuração do Docker acima). Você pode observar o contêiner de dados FluentBit enviado para Parseable no Parseable Console em execução em http://localhost:8000.

Embrulhar

Neste artigo, você deu uma primeira olhada no Parseable, a plataforma de armazenamento e análise de log de código aberto construída em Rust. Um único comando do Docker inicia com o Parseable para que você possa experimentar a IU e estabelecer o FluentBit como uma fonte de dados. Se você acha que isso parece fácil demais, provavelmente é hora de experimentar o Parseable!

Artigos relacionados: