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.yamlOpçã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"
}
]
EOFCrie 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.jsonConfigure 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.yamlUsando 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.yamlPara 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.yamlPróximos passos
- Guia de configuração (v1.x) - chaves de API, Secrets e configuração de Entrada
- Implantações na Cloud (v1.x) - configurações específicas de GKE, EKS e AKS
- Guia principal do Helm (v1.x) - instalação básica
- Opções de implantação (v2.x) - opções de implantação para v2.x
- Guia de atualização - migração de v1.x para v2.x