clickhouse (siete, monitoreo de clústeres)

Introducción

La importancia del monitoreo de clústeres para una aplicación de producción es evidente. Hoy veremos la práctica del monitoreo de clústeres clickhouse. Para aquellos que no están familiarizados con los componentes relacionados con clickhouse, es necesario introducir algunas herramientas en esta sección.

chproxy

En primer lugar, cuando usamos el clúster ck, usualmente usamos chproxy, una herramienta proxy de código abierto, que se usa principalmente para balanceo de carga, control de concurrencia, control de permisos de usuario y otras operaciones.

gravitación

grafana admite múltiples fuentes de datos y una rica visualización de gráficos. Es una hermosa y poderosa herramienta de visualización de indicadores de monitoreo visual.

Prometeo

El monitoreo requiere que recopilemos datos del sistema, por lo que también necesitamos un lugar para almacenar los datos recopilados continuamente, por lo que aquí usamos prometheus, una excelente base de datos de series de tiempo.

Configuración de instalación

chproxy

  • Descarga Seleccionamos la última versión
    en lanzamientos .
# 下载
wget https://github.com/Vertamedia/chproxy/releases/download/v1.14.0/chproxy-linux-amd64-v1.14.0.tar.gz

# 解压
tar zxvf chproxy-linux-amd64-v1.14.0.tar.gz
  • Configuración
    Luego cree un nuevo archivo de configuración config.yml, hay una referencia de configuración de muestra en github .
    Configuro dos nodos aquí, el nombre de usuario es defaulty la contraseña está en blanco. Puede personalizar el puerto de escucha, el 19000 que configuré aquí, se utilizará en prometheus posteriores.
# config.yml简单配置,
server:
  http:
      listen_addr: ":19000"
      allowed_networks: ["192.168.9.225","192.168.9.226"]

users:
  - name: "default"
    to_cluster: "dc_sit"
    to_user: "default"
    password: "" 


clusters:
  - name: "dc_sit"

    nodes: [
      "dc-sit-225:8123",
      "dc-sit-226:8123"
    ]

    heartbeat_interval: 30s

    users:
      - name: "default"
        password: ""

  • Comando de inicio : ./chproxy -config=config.yml
    si el registro se imprime correctamente de la siguiente manera, es un inicio normal. De lo contrario, maneje la excepción de acuerdo con la solicitud.
INFO: 2020/05/12 04:58:13 main.go:53: Loading config "config.yml": successful
INFO: 2020/05/12 04:58:13 main.go:152: Serving http on ":19000"
  • prueba
# 外网限制
sun_mac:~ sun$  echo 'SELECT 1' | curl 'http://dc-sit-225:19000/?user=default' --data-binary @-
http connections are not allowed from 192.168.64.49:62164

# 内网通过
[root@dc-sit-225 ~]# echo 'SELECT 1' | curl 'http://dc-sit-225:19000/?user=default' --data-binary @-
1
  • chproxy elimina las restricciones de red
    Por defecto, chproxy tiene una verificación de seguridad, debido a que la contraseña de la cuenta está configurada en el proxy, no allowed_networks: ["0.0.0.0/0"]se recomienda restringir este tipo de red abierta. Pero si desea garantizar la seguridad de la red, también puede hack_me_please: truedesactivar todas las comprobaciones relacionadas con la seguridad configurando la capa más externa . Al comentar la allowed_networksconfiguración anterior de esta manera , se puede abrir al mundo exterior. Esta sección tiene instrucciones sobre github .

Prometeo

wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz
  • Configuración
    Modificamos el archivo de configuración después de la descompresión prometheus.yml, principalmente modificamos scrape_configsparte de la configuración, aquí especificamos el nombreclickhouse-chproxy

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'clickhouse-chproxy'
    scrape_interval: 10s
    static_configs:
    - targets: ['dc-sit-225:19000']
      labels:
          instance: 'dc_sit'

  • Comando de inicio :./prometheus --config.file=prometheus.yml
  • Después de la verificación
    , abra http: // localhost: 9090 / targets para verificar si el estado de chproxy es normal.
    Inserte la descripción de la imagen aquí

gravitación

  • Para instalar
    grafana, podemos utilizar una sencilla instalación de Docker.
# 获取镜像
docker pull grafana/grafana
# 后台启动容器,将23000映射到容器的3000
docker run -d -p 23000:3000 --name=my-grafana -v /data/grafana:/var/lib/grafana grafana/grafana

Configuración de monitoreo

Configurar fuentes de datos

Configuración -> Fuentes de datos -> Agregar fuente de datos -> seleccione el tipo de prometheus.
Inserte la descripción de la imagen aquí

  • Los ajustes
    se modifican de acuerdo con su propia configuración, los nombré aquí Prometheus-225y luego Guardar y probar
    Inserte la descripción de la imagen aquí

Importar plantilla

Primero descargue la plantilla exportadora de chproxy y guárdela como chproxy.json. Antes de seleccionar la importación de signo + en grafana , el
Inserte la descripción de la imagen aquí
nombre se puede personalizar, y la fuente de datos de prometheus selecciona el Prometheus-225 que configuramos anteriormente, y luego lo importa.
Inserte la descripción de la imagen aquí

Ver efecto

El panel puede ver varios indicadores, como el número de solicitudes en cada período, la duración de la solicitud, el número de usuarios simultáneos y el estado de cada nodo. Es muy conveniente para nosotros obtener el estado de ejecución del clúster.
Inserte la descripción de la imagen aquí

fin

Debido al factor de espacio, esta sección describe principalmente la parte de monitoreo de clústeres. También hay algunos módulos importantes, como el componente de alarma alertmanager proporcionado por prometheus y el servicio de gancho de alarma.
Además, la combinación de grafana y prometheus también se usa comúnmente para monitorear el estado de cada nodo en el clúster, node_exporter y clickhouse monitoreo de un solo componente clickhouse_exporter . Si el clúster anterior se puede configurar, creo que no habrá un gran problema para un solo nodo.

Supongo que te gusta

Origin blog.csdn.net/yyoc97/article/details/106075220
Recomendado
Clasificación