Cette rubrique explique comment déployer OBCloud Exporter et Prometheus pour surveiller ApsaraDB for OceanBase.
Contexte
OBCloud Exporter est un outil fourni par ApsaraDB for OceanBase pour le traitement des données de base de données. Il permet de s'authentifier auprès d'ApsaraDB for OceanBase, de récupérer les données, puis d'utiliser Prometheus pour surveiller la base de données.
Vous pouvez exécuter Prometheus directement sur le système ou le déployer via Docker.
Prérequis
Java 8 ou une version ultérieure est installé.
Docker est installé.
Exécuter Prometheus sur le système pour surveiller ApsaraDB for OceanBase
-
Téléchargez OBCloud Exporter.
RemarqueIl n'est pas possible de télécharger OBCloud Exporter directement. Pour obtenir cet outil, contactez le support technique OceanBase.
-
Déployez OBCloud Exporter.
-
Décompressez le package d'installation d'OBCloud Exporter dans le répertoire
/opt/obcloud-exporter.mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1Les fichiers suivants sont extraits du package d'installation :
Dockerfile : fichier de construction du conteneur Docker.
muticloud_metric_config.yaml : fichier de configuration des métriques. Par défaut, il n'est pas nécessaire de modifier ce fichier.
application.yaml : fichier de configuration de la collecte.
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar : programme OBCloud Exporter.
readme.md : description du projet.
-
Modifiez le fichier de configuration application.yaml.
# Monitor name. aliyun_monitor: # Identity credentials. credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # Endpoint. end_point: xxx # Whether to periodically refresh metrics. The default value is false. metric_meta_auto_refresh: false instances: # Instance ID. - instance_id: xxx # To query data of a specified tenant in the cluster, you must configure tenant_id. tenant_id: xxx # Instance type, which can be cluster (cluster instance) or tenant (tenant instance or serverless instance). instance_type: tenant metrics:Les paramètres sont décrits ci-dessous :
access_key_id et access_key_secret : paire AccessKey pour l'authentification. Demandez une paire AccessKey sur la plateforme correspondante. Pour plus d'informations, consultez Créer une AccessKey.
region_id et end_point : pour plus d'informations, consultez Régions (ApsaraDB for OceanBase).
metric_meta_auto_refresh : indique si les métriques doivent être actualisées périodiquement. La valeur par défaut est false.
instances : instances à surveiller. Séparez les instances de cluster ou de locataire par des tirets (-).
-
instance_id : ID de l'instance de cluster, de l'instance Serverless ou de l'instance de locataire.
RemarqueLa valeur ne peut pas être un ID de locataire au sein d'un cluster.
instance_type : les valeurs valides sont cluster et tenant. Si la valeur de instance_id correspond à un ID d'instance de cluster, définissez ce paramètre sur cluster. Si la valeur de instance_id correspond à un ID d'instance de locataire ou à un ID d'instance Serverless, définissez ce paramètre sur tenant.
tenant_id : ce paramètre est requis pour interroger les données d'un locataire spécifique dans un cluster.
-
metrics : métriques à collecter. Si ce paramètre n'est pas spécifié, toutes les métriques sont collectées. Spécifiez les métriques au format suivant :
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rtRemarqueSi un grand nombre de métriques sont collectées, la vitesse de collecte peut être affectée. Dans ce cas, utilisez plusieurs exportateurs pour collecter les métriques.
-
-
Exécutez le fichier JAR d'OBCloud Exporter.
java -jar /opt/obcloud-exporter/obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jarVérifiez le déploiement dans un navigateur. Accédez au port 9400 à l'adresse IP correspondante pour vérifier la réception des données de surveillance.
RemarqueEn pratique, utilisez l'adresse IP et le numéro de port configurés pour l'accès.
-
Téléchargez Prometheus de la version requise depuis le site officiel. Voici un exemple de téléchargement de Prometheus 2.50.1 pour Linux :
wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz -
Déployez Prometheus.
-
Décompressez le package d'installation de Prometheus dans le répertoire
/opt/prometheus.mkdir -p /opt/prometheus tar -zxvf prometheus-2.50.1.linux-amd64.tar.gz -C /opt/prometheus --strip-components=1 -
Déplacez le fichier de configuration prometheus.yml vers le répertoire de travail et modifiez-le selon vos besoins.
mv /opt/prometheus/prometheus.yml /usr/local/bin/ vi /usr/local/bin/prometheus.ymlModifiez les paramètres suivants :
global: scrape_interval: 30s scrape_timeout: 20s scrape_configs: - job_name: "nodes" static_configs: - targets: ['localhost:9400'] -
Créez le fichier de service et le répertoire de stockage des données de Prometheus.
mkdir /var/lib/prometheus/ sudo vim /etc/systemd/system/Prometheus.serviceSaisissez et enregistrez le contenu suivant.
RemarqueLes paramètres User et Group sont facultatifs. Pour savoir comment configurer un nom d'utilisateur et un groupe d'utilisateurs, consultez l'étape suivante.
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Restart=on-failure ExecStart=/opt/prometheus/prometheus \ --config.file /usr/local/bin/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ [Install] WantedBy=multi-user.target -
(Facultatif) Configurez un nom d'utilisateur et un groupe d'utilisateurs. Si le nom d'utilisateur et le groupe d'utilisateurs spécifiés à l'étape précédente existent déjà, ou si aucun nom d'utilisateur et groupe d'utilisateurs ne sont spécifiés, ignorez cette étape.
sudo groupadd prometheus sudo useradd -r -g prometheus prometheus sudo chown -R prometheus:prometheus /opt/prometheus /var/lib/prometheus sudo chmod -R 755 /opt/prometheus /var/lib/prometheus
-
-
Démarrez le service Prometheus.
# Reload systemd configurations. sudo systemctl daemon-reload # Start the Prometheus service. sudo systemctl start prometheus # Enable the Prometheus service to start at boot. sudo systemctl enable prometheus # Check the service status. sudo systemctl status prometheus -
Vérifiez que Prometheus a démarré.
sudo netstat -ntlp | grep 9090
Déployer Prometheus à l'aide de Docker pour surveiller ApsaraDB for OceanBase
-
Téléchargez OBCloud Exporter.
RemarqueIl n'est pas possible de télécharger OBCloud Exporter directement. Pour obtenir cet outil, contactez le support technique OceanBase.
-
Déployez OBCloud Exporter.
-
Décompressez le package d'installation d'OBCloud Exporter dans le répertoire
/opt/obcloud-exporter.mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1Les fichiers suivants sont extraits du package d'installation :
Dockerfile : fichier de construction du conteneur Docker.
muticloud_metric_config.yaml : fichier de configuration des métriques. Par défaut, il n'est pas nécessaire de modifier ce fichier.
application.yaml : fichier de configuration de la collecte.
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar : programme OBCloud Exporter.
readme.md : description du projet.
-
Modifiez le fichier de configuration application.yaml.
# Monitor name. aliyun_monitor: # Identity credentials. credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # Endpoint. end_point: xxx # Whether to periodically refresh metrics. The default value is false. metric_meta_auto_refresh: false instances: # Instance ID. - instance_id: xxx # To query data of a specified tenant in the cluster, you must configure tenant_id. tenant_id: xxx # Instance type, which can be cluster (cluster instance) or tenant (tenant instance or serverless instance). instance_type: tenant metrics:Les paramètres sont décrits ci-dessous :
access_key_id et access_key_secret : paire AccessKey pour l'authentification. Demandez une paire AccessKey sur la plateforme correspondante. Pour plus d'informations, consultez Créer une AccessKey.
region_id et end_point : pour plus d'informations, consultez Régions (ApsaraDB for OceanBase).
metric_meta_auto_refresh : indique si les métriques doivent être actualisées périodiquement. La valeur par défaut est false.
instances : instances à surveiller. Séparez les instances de cluster ou de locataire par des tirets (-).
-
instance_id : ID de l'instance de cluster, de l'instance Serverless ou de l'instance de locataire.
RemarqueLa valeur ne peut pas être un ID de locataire au sein d'un cluster.
instance_type : les valeurs valides sont cluster et tenant. Si la valeur de instance_id correspond à un ID d'instance de cluster, définissez ce paramètre sur cluster. Si la valeur de instance_id correspond à un ID d'instance de locataire ou à un ID d'instance Serverless, définissez ce paramètre sur tenant.
tenant_id : ce paramètre est requis pour interroger les données d'un locataire spécifique dans un cluster.
-
metrics : métriques à collecter. Si ce paramètre n'est pas spécifié, toutes les métriques sont collectées. Spécifiez les métriques au format suivant :
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rtRemarquePour plus d'informations, consultez Métriques de surveillance.
Si un grand nombre de métriques sont collectées, la vitesse de collecte peut être affectée. Dans ce cas, utilisez plusieurs exportateurs pour collecter les métriques.
-
-
Démarrez OBCloud Exporter à l'aide de Docker.
-
Dans le répertoire
/opt/obcloud-exporter, construisez le conteneur Docker obcloud-exporter.cd /opt/obcloud-exporter docker build -t obcloud-exporter:1.0 . -
Démarrez le conteneur Docker directement ou à l'aide d'un fichier de configuration externe.
-
Démarrez le conteneur Docker directement.
docker run -itd -p9400:9400 --name obcloud-exporter obcloud-exporter:1.0 -
Démarrez le conteneur Docker à l'aide d'un fichier de configuration externe.
docker run -itd -p9400:9400 -v /opt/obcloud-exporter/application.yaml:/app/application.yaml --name obcloud-exporter obcloud-exporter:1.0
-
-
-
Vérifiez le déploiement dans un navigateur. Accédez au port 9400 à l'adresse IP correspondante pour vérifier la réception des données de surveillance.
RemarqueEn pratique, utilisez l'adresse IP et le numéro de port configurés pour l'accès.
-
Créez le fichier de configuration prometheus.yml de Prometheus.
vi /usr/local/bin/prometheus.ymlModifiez le fichier de configuration.
global: scrape_interval: 30s evaluation_interval: 30s scrape_configs: - job_name: obcloud-exporter-test static_configs: # Local server and port number. - targets: ['obcloud-exporter:9400'] labels: instance: obcloud-exporter -
Démarrez le service Prometheus.
docker run -d \ -p 9090:9090 \ -v /usr/local/bin/prometheus.yml:/etc/prometheus/prometheus.yml \ --link obcloud-exporter \ --name prometheus \ prom/prometheus -
Vérifiez que Prometheus a démarré.
sudo netstat -ntlp | grep 9090
Consulter les données de surveillance de la base de données via Prometheus
Accédez à l'URL du service Prometheus http://localhost:9090/targets dans un navigateur pour consulter les données de surveillance correspondantes.
Métriques de surveillance
Lorsque vous configurez OBCloud Exporter, spécifiez les métriques de surveillance prises en charge par ApsaraDB for OceanBase afin qu'elles soient collectées par OBCloud Exporter. Lorsque OBCloud Exporter est en cours d'exécution, le système synchronise ces métriques de surveillance, y compris les métriques de surveillance des hôtes du cluster et les métriques de surveillance au niveau du locataire, vers OBCloud Exporter. Pour plus d'informations, consultez métriques de surveillance du cluster et métriques de surveillance du locataire.
Lorsque le paramètre metric_meta_auto_refresh dans le fichier de configuration application.yaml est défini sur false, les métriques de surveillance prises en charge sont celles renvoyées lors de l'accès initial. Lorsque le paramètre metric_meta_auto_refresh est défini sur true, la liste des métriques de surveillance prises en charge est actualisée toutes les 10 minutes.