clickhouse (sept, surveillance de cluster)

introduction

L'importance de la surveillance de cluster pour une application de production est évidente. Aujourd'hui, nous examinerons la pratique de la surveillance des clusters de clusters. Pour ceux qui ne sont pas familiers avec les composants liés à Clickhouse, il est nécessaire d'introduire certains outils dans cette section.

chproxy

Tout d'abord, lorsque nous utilisons le cluster ck, nous utilisons généralement chproxy, un outil proxy open source, qui est principalement utilisé pour des opérations telles que l'équilibrage de charge, le contrôle de la concurrence et le contrôle d'accès des utilisateurs.

gravitation

grafana prend en charge plusieurs sources de données et un affichage graphique riche. C'est un outil d'affichage d'indicateur de surveillance visuelle magnifique et puissant.

Prométhée

La surveillance nous oblige à collecter des données système, nous avons donc également besoin d'un endroit pour stocker les données collectées en continu, nous utilisons donc ici prometheus, une excellente base de données de séries chronologiques.

Configuration de l'installation

chproxy

  • Téléchargement
    Nous sélectionnons la dernière version des versions .
# 下载
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
  • Configuration
    Ensuite, créez un nouveau fichier de configuration config.yml, il y a un exemple de référence de configuration dans github .
    Je configure ici deux nœuds, le nom d'utilisateur est defaultet le mot de passe est vide. Vous pouvez personnaliser le port d'écoute, le 19000 que j'ai configuré ici, sera utilisé dans le prochain prometheus.
# 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: ""

  • Commande de démarrage : ./chproxy -config=config.yml
    si le journal s'imprime comme suit avec succès, il s'agit d'un démarrage normal. Sinon, gérez l'exception en fonction de l'invite.
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"
  • tester
# 外网限制
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 supprime les restrictions de réseau
    Par défaut, chproxy a un contrôle de sécurité, car le mot de passe du compte est configuré dans le proxy, il allowed_networks: ["0.0.0.0/0"]n'est pas recommandé de restreindre ce type de réseau ouvert. Mais si vous souhaitez assurer vous-même la sécurité du réseau, vous pouvez également hack_me_please: truedésactiver toutes les vérifications liées à la sécurité en configurant la couche la plus externe . En commentant la allowed_networksconfiguration précédente de cette manière , elle peut être ouverte au monde extérieur. Cette section contient des instructions sur github .

Prométhée

wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz
  • Configuration
    Modifier le fichier de configuration après décompression prometheus.yml, modifier principalement une scrape_configspartie de la configuration, ici nous spécifions la dénominationclickhouse-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'

  • Commande de démarrage :./prometheus --config.file=prometheus.yml
  • Après vérification
    , ouvrez http: // localhost: 9090 / cibles pour vérifier si l'état de chproxy est normal.
    Insérez la description de l'image ici

gravitation

  • Pour installer
    grafana, nous pouvons utiliser une simple installation 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

Surveillance de la configuration

Configurer les sources de données

Paramètres -> Sources de données -> Ajouter une source de données -> sélectionnez le type de prometheus.
Insérez la description de l'image ici

  • les paramètres
    sont modifiés en fonction de leur propre configuration, je les ai nommés ici Prometheus-225, puis Save & Test
    Insérez la description de l'image ici

Importer un modèle

Téléchargez d'abord le modèle d'exportateur de chproxy et enregistrez-le sous chproxy.json. Avant de sélectionner l' importation du signe + dans grafana , le
Insérez la description de l'image ici
nom peut être personnalisé et la source de données prometheus sélectionne le Prometheus-225 que nous avons configuré ci-dessus, puis l'importe.
Insérez la description de l'image ici

Voir l'effet

Le tableau de bord peut voir plusieurs indicateurs tels que le nombre de demandes dans chaque période, la durée de la demande, le nombre d'utilisateurs simultanés et l'état de chaque nœud. Il est très pratique pour nous d'obtenir l'état de fonctionnement du cluster.
Insérez la description de l'image ici

fin

En raison du facteur d'espace, cette section décrit principalement la partie surveillance du cluster. Il existe également des modules importants, tels que le gestionnaire d'alertes de composants d'alarme fourni par prometheus et le service de crochet d'alarme.
En outre, la combinaison de grafana et de prometheus est également couramment utilisée pour surveiller l'état de chaque nœud dans le cluster, node_exporter , et clickhouse surveillance de composant unique clickhouse_exporter . Si le cluster ci-dessus peut être configuré, je pense qu'il n'y aura pas de gros problème pour un seul nœud.

Je suppose que tu aimes

Origine blog.csdn.net/yyoc97/article/details/106075220
conseillé
Classement