> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Todo en uno

> Implementación de ClickStack Open Source en modo All in One - la pila de observabilidad de ClickHouse

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

Esta imagen de Docker integral incluye todos los componentes open source de ClickStack:

* **ClickHouse**
* **HyperDX**
* **colector de OpenTelemetry (OTel)** (expone OTLP en los puertos `4317` y `4318`)
* **MongoDB** (para el estado persistente de la aplicación)

Esta opción incluye autenticación, lo que permite conservar dashboards, alertas y búsquedas guardadas entre sesiones y usuarios.

<div id="suitable-for">
  ### Ideal para
</div>

* Demos
* Pruebas locales de toda la pila

<div id="deployment-steps">
  ## Pasos de despliegue
</div>

<br />

<Steps>
  <Step>
    ### Desplegar con Docker

    Esto iniciará un collector de OTel (en los puertos 4317 y 4318) y la UI de HyperDX (en el puerto 8080).

    ```shell theme={null}
    docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
    ```

    <Info>
      **Actualización del nombre de la imagen**

      Las imágenes de ClickStack ahora se publican como `clickhouse/clickstack-*` (antes `docker.hyperdx.io/hyperdx/*`).
    </Info>
  </Step>

  <Step>
    ### Acceder a la UI de HyperDX

    Visite [http://localhost:8080](http://localhost:8080) para acceder a la UI de HyperDX.

    Cree un usuario e introduzca un nombre de usuario y una contraseña que cumplan los requisitos.

    Al hacer clic en `Create`, se crearán fuentes de datos para la instancia integrada de ClickHouse.

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/Wpmp4N2VLv_V8ziJ/images/use-cases/observability/hyperdx-login.png?fit=max&auto=format&n=Wpmp4N2VLv_V8ziJ&q=85&s=a4a7f0f11f4ba3b35b9a6c6613b62f5e" alt="UI de HyperDX" size="lg" width="3600" height="1900" data-path="images/use-cases/observability/hyperdx-login.png" />

    Para ver un ejemplo de uso de una instancia alternativa de ClickHouse, consulte ["Uso de ClickHouse Cloud"](#using-clickhouse-cloud).
  </Step>

  <Step>
    ### Ingestar datos

    Para ingestar datos, consulte ["Ingestar datos"](/es/clickstack/ingesting-data).
  </Step>
</Steps>

<div id="persisting-data-and-settings">
  ## Persistencia de datos y configuración
</div>

Para conservar los datos y la configuración entre reinicios del contenedor, puede modificar el comando de Docker anterior para montar las rutas `/data/db`, `/var/lib/clickhouse` y `/var/log/clickhouse-server`. Por ejemplo:

```shell theme={null}
# asegurarse de que los directorios existen
mkdir -p .volumes/db .volumes/ch_data .volumes/ch_logs
# modificar el comando para montar las rutas
docker run \
  -p 8080:8080 \
  -p 4317:4317 \
  -p 4318:4318 \
  -v "$(pwd)/.volumes/db:/data/db" \
  -v "$(pwd)/.volumes/ch_data:/var/lib/clickhouse" \
  -v "$(pwd)/.volumes/ch_logs:/var/log/clickhouse-server" \
  clickhouse/clickstack-all-in-one:latest
```

<div id="deploying-to-production">
  ## Despliegue en producción
</div>

Esta opción no debería desplegarse en producción por las siguientes razones:

* **Almacenamiento no persistente:** Todos los datos se almacenan mediante el sistema de archivos `overlay` nativo de Docker. Esta configuración no ofrece un buen rendimiento a escala, y los datos se perderán si el contenedor se elimina o se reinicia, a menos que los usuarios [monten las rutas de archivo necesarias](#persisting-data-and-settings).
* **Falta de aislamiento entre componentes:** Todos los componentes se ejecutan dentro de un único contenedor de Docker. Esto impide el escalado y la monitorización independientes, y aplica cualquier límite de `cgroup` de forma global a todos los procesos. Como resultado, los componentes pueden competir por la CPU y la memoria.

<div id="customizing-ports-deploy">
  ## Personalizar puertos
</div>

Si necesitas personalizar los puertos de la aplicación (8080) o de la API (8000) en los que se ejecuta HyperDX Local, tendrás que modificar el comando `docker run` para redirigir los puertos correspondientes y configurar algunas variables de entorno.

Los puertos de OpenTelemetry se pueden personalizar simplemente modificando las opciones de redirección de puertos. Por ejemplo, sustituyendo `-p 4318:4318` por `-p 4999:4318` para cambiar el puerto HTTP de OpenTelemetry a 4999.

```shell theme={null}
docker run -p 8080:8080 -p 4317:4317 -p 4999:4318 clickhouse/clickstack-all-in-one:latest
```

<div id="using-clickhouse-cloud">
  ## Uso con ClickHouse Cloud
</div>

Esta distribución puede utilizarse con ClickHouse Cloud. Aunque la instancia local de ClickHouse se seguirá desplegando (y se ignorará), el OTel collector puede configurarse para usar una instancia de ClickHouse Cloud estableciendo las variables de entorno `CLICKHOUSE_ENDPOINT`, `CLICKHOUSE_USER` y `CLICKHOUSE_PASSWORD`.

Por ejemplo:

```shell theme={null}
export CLICKHOUSE_ENDPOINT=<HTTPS ENDPOINT>
export CLICKHOUSE_USER=<CLICKHOUSE_USER>
export CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>

docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=default -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} -p 8080:8080 -p 4317:4317 -p 4318:4318 clickhouse/clickstack-all-in-one:latest
```

El `CLICKHOUSE_ENDPOINT` debe ser el endpoint HTTPS de ClickHouse Cloud, incluido el puerto `8443`, por ejemplo, `https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443`

Una vez conectado a la UI de HyperDX, vaya a [`Configuración del equipo`](http://localhost:8080/team) y cree una conexión a su servicio de ClickHouse Cloud; después, cree las sources necesarias.

<div id="configuring-collector">
  ## Configuración del OpenTelemetry collector
</div>

La configuración del OTel collector puede modificarse si es necesario; consulta ["Modificación de la configuración"](/es/clickstack/ingesting-data/collector#modifying-otel-collector-configuration).

<div id="schema-choice-map-vs-json">
  ## Elección del esquema: Map vs JSON
</div>

ClickStack almacena los atributos como columnas `Map(LowCardinality(String), String)` de forma predeterminada. Este es el esquema recomendado para las cargas de trabajo de observabilidad. En combinación con la [serialización de mapas por buckets](/es/reference/data-types/map#bucketed-map-serialization) y los índices de texto sobre las claves y los valores del mapa, ofrece lookups selectivos sin la sobrecarga de ingesta por clave de las subcolumnas JSON dinámicas.

También hay disponible, en fase beta, un esquema de tipo `JSON` para evaluarlo en cargas de trabajo con un conjunto pequeño y estable de claves de atributos. **No se recomienda** como opción predeterminada. Consulta [Map vs tipo JSON](/es/clickstack/ingesting-data/schema/map-vs-json) para ver la comparación completa y las variables de entorno necesarias para habilitar la compatibilidad con JSON.
