Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Opções de implantação com Helm (v1.x)

Este guia aborda opções avançadas de implantação do ClickStack usando Helm. Para uma instalação básica, consulte o guia principal de implantação com Helm.

Visão geral

O Chart do Helm do ClickStack oferece suporte a várias configurações de implantação:

  • Stack completa (padrão) - Inclui todos os componentes
  • ClickHouse externo - Use um cluster existente do ClickHouse
  • OTel collector externo - Use a infraestrutura existente de OTel
  • Implantação mínima - Apenas HyperDX, com dependências externas

ClickHouse externo

Se você já tem um cluster do ClickHouse (incluindo o ClickHouse Cloud), pode desativar o ClickHouse integrado e se conectar à sua instância externa.

Opção 1: Configuração inline (desenvolvimento/testes)

Use esta abordagem para testes rápidos ou ambientes não produtivos:

# values-external-clickhouse.yaml
clickhouse:
  enabled: false  # Desabilitar o ClickHouse integrado

otel:
  clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
  clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363"  # Opcional

hyperdx:
  defaultConnections: |
    [
      {
        "name": "External ClickHouse",
        "host": "http://your-clickhouse-server:8123",
        "port": 8123,
        "username": "your-username",
        "password": "your-password"
      }
    ]

Instale com esta configuração:

helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yaml

Opção 2: Secret externo (recomendado para produção)

Para implantações em produção em que você queira manter as credenciais separadas da configuração do Helm:

Crie os arquivos de configuração

# Criar connections.json
cat <<EOF > connections.json
[
  {
    "name": "Production ClickHouse",
    "host": "https://your-production-clickhouse.com",
    "port": 8123,
    "username": "hyperdx_user",
    "password": "your-secure-password"
  }
]
EOF

# Criar sources.json
cat <<EOF > sources.json
[
  {
    "from": {
      "databaseName": "default",
      "tableName": "otel_logs"
    },
    "kind": "log",
    "name": "Logs",
    "connection": "Production ClickHouse",
    "timestampValueExpression": "TimestampTime",
    "displayedTimestampValueExpression": "Timestamp",
    "implicitColumnExpression": "Body",
    "serviceNameExpression": "ServiceName",
    "bodyExpression": "Body",
    "eventAttributesExpression": "LogAttributes",
    "resourceAttributesExpression": "ResourceAttributes",
    "severityTextExpression": "SeverityText",
    "traceIdExpression": "TraceId",
    "spanIdExpression": "SpanId"
  },
  {
    "from": {
      "databaseName": "default",
      "tableName": "otel_traces"
    },
    "kind": "trace",
    "name": "Traces",
    "connection": "Production ClickHouse",
    "timestampValueExpression": "Timestamp",
    "displayedTimestampValueExpression": "Timestamp",
    "implicitColumnExpression": "SpanName",
    "serviceNameExpression": "ServiceName",
    "traceIdExpression": "TraceId",
    "spanIdExpression": "SpanId",
    "durationExpression": "Duration"
  }
]
EOF

Crie o Secret do Kubernetes

kubectl create secret generic hyperdx-external-config \
  --from-file=connections.json=connections.json \
  --from-file=sources.json=sources.json

# Remover arquivos locais
rm connections.json sources.json

Configure o Helm para usar o Secret

# values-external-clickhouse-secret.yaml
clickhouse:
  enabled: false

otel:
  clickhouseEndpoint: "tcp://your-clickhouse-server:9000"
  clickhousePrometheusEndpoint: "http://your-clickhouse-server:9363"

hyperdx:
  useExistingConfigSecret: true
  existingConfigSecret: "hyperdx-external-config"
  existingConfigConnectionsKey: "connections.json"
  existingConfigSourcesKey: "sources.json"
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse-secret.yaml

Usando o ClickHouse Cloud

No caso do ClickHouse Cloud:

# values-clickhouse-cloud.yaml
clickhouse:
  enabled: false
  persistence:
    enabled: false

otel:
  clickhouseEndpoint: "tcp://your-cloud-instance.clickhouse.cloud:9440?secure=true"

hyperdx:
  useExistingConfigSecret: true
  existingConfigSecret: "clickhouse-cloud-config"
  existingConfigConnectionsKey: "connections.json"
  existingConfigSourcesKey: "sources.json"

OTel collector externo

Se você já tiver uma infraestrutura existente de OTel collector:

# values-external-otel.yaml
otel:
  enabled: false  # Desabilita o OTel collector integrado

hyperdx:
  otelExporterEndpoint: "http://your-otel-collector:4318"
helm install my-clickstack clickstack/clickstack -f values-external-otel.yaml

Para obter instruções sobre como expor os endpoints do OTel collector por meio de Entrada, consulte Configuração de Entrada.

Implantação mínima

Para organizações que já contam com infraestrutura, implante apenas o HyperDX:

# values-minimal.yaml
clickhouse:
  enabled: false

otel:
  enabled: false

hyperdx:
  otelExporterEndpoint: "http://your-otel-collector:4318"

  # Opção 1: Inline (para testes)
  defaultConnections: |
    [
      {
        "name": "External ClickHouse",
        "host": "http://your-clickhouse-server:8123",
        "port": 8123,
        "username": "your-username",
        "password": "your-password"
      }
    ]

  # Opção 2: Secret externo (produção)
  # useExistingConfigSecret: true
  # existingConfigSecret: "my-external-config"
  # existingConfigConnectionsKey: "connections.json"
  # existingConfigSourcesKey: "sources.json"
helm install my-clickstack clickstack/clickstack -f values-minimal.yaml

Próximos passos

Navigation