Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
technique:monitoring:influxdb:metrics_influxdb [2020/02/06 16:28] – ↷ Page déplacée de monitoring:influxdb:metrics_influxdb à technique:monitoring:influxdb:metrics_influxdb qduchemi | technique:monitoring:influxdb:metrics_influxdb [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Collecte de métriques ====== | ||
- | |||
- | Picasoft héberge plusieurs services sur son infrastructure. Ces différents logiciel, ainsi que les machines elle-mêmes, | ||
- | * La température CPU d'un serveur physique | ||
- | * Le nombre d' | ||
- | * Le nombre de pad crées sur Etherpad | ||
- | * L' | ||
- | |||
- | Il est intéressant de collecteur ces mesures et de les stocker, pour ensuite les afficher sous forme graphique et pouvoir observer leur évolution dans le temps. Bien entendu, il ne s'agit pas de collecter des données sur l' | ||
- | |||
- | ===== Stockage ===== | ||
- | ==== InfluxDB ==== | ||
- | Pour le stockage de métriques, on utilise généralement ce qui s' | ||
- | Par exemple on peut imaginer une série '' | ||
- | |||
- | Il existe plusieurs //TSDB//, chacune avec des avantages et des inconvénients. Pour Picasoft, nous avons choisi [[https:// | ||
- | |||
- | ==== Installation ==== | ||
- | |||
- | Pour notre déploiement de InfluxDB, nous avons les besoins suivants : | ||
- | * déploiement avec Docker | ||
- | * utilisation derrière notre reverse-proxy Traefik pour la gestion du HTTPS | ||
- | * gestion des droits d' | ||
- | |||
- | InfluxDB est relativement simple à déployer dans la mesure où une image Docker officielle très complète existe déjà. De plus tout peut se faire derrière une API HTTP (qui est donc exposée derrière Traefik, en HTTPS) et il est possible de créer des utilisateurs avec des droits d' | ||
- | |||
- | Picasoft a donc fait [[https:// | ||
- | |||
- | On déploie donc notre InfluxDB sur la VM '' | ||
- | * la base de donnée à créer | ||
- | * des utilisateurs/ | ||
- | * les labels qui vont bien pour exposer le service derrière Traefik | ||
- | * un volume pour avoir une persistance des données | ||
- | |||
- | On obtient un service //Docker Compose// comme celui-ci : | ||
- | |||
- | <code yaml> | ||
- | influxdb: | ||
- | image: registry.picasoft.net: | ||
- | container_name: | ||
- | volumes: | ||
- | - / | ||
- | environment: | ||
- | - INFLUXDB_DB=databasename | ||
- | - INFLUXDB_HTTP_AUTH_ENABLED=true | ||
- | - INFLUXDB_ADMIN_USER=admin_user_name | ||
- | - INFLUXDB_ADMIN_PASSWORD=admin_user_password | ||
- | - INFLUXDB_WRITE_USER=write_user_name | ||
- | - INFLUXDB_WRITE_USER_PASSWORD=write_user_password | ||
- | - INFLUXDB_READ_USER=read_user_name | ||
- | - INFLUXDB_READ_USER_PASSWORD=read_user_password | ||
- | labels: | ||
- | - " | ||
- | - " | ||
- | - " | ||
- | restart: always | ||
- | </ | ||
- | |||
- | ==== Utilisation ==== | ||
- | |||
- | InfluxDB est ensuite directement utilisable via son API HTTP sur '' | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | |||
- | |||
- | ===== Collecte ===== | ||
- | |||
- | La base de donnée étant prête, il faut maintenant remonter les métriques des différents services. Pour cela un script en Python a été développé : le '' | ||
- | |||
- | Pour le moment, il contient un module pour Etherpad et un module pour Mattermost. Le fonctionnement du script, des modules, et de leur développement est largement documenté dans le README. | ||
- | |||
- | ==== Déploiement ==== | ||
- | |||
- | Le bot a un // | ||
- | |||
- | <code yaml> | ||
- | picasoft-metrics-bot: | ||
- | image: registry.picasoft.net: | ||
- | container_name: | ||
- | volumes: | ||
- | - / | ||
- | environment: | ||
- | - INTERVAL_SECONDS=60 | ||
- | restart: always | ||
- | </ | ||
- | |||
- | ===== Visualisation ===== | ||
- | |||
- | Maintenant que la base InfluxDB se remplie avec les métriques de nos services, on souhaite pouvoir les visualiser. Une solution logicielle **très largement répandue** est [[https:// | ||
- | |||
- | ==== Déploiement ==== | ||
- | |||
- | Pour notre déploiement de Grafana, nous avons les besoins suivants : | ||
- | * déploiement avec Docker | ||
- | * utilisation derrière notre reverse-proxy Traefik pour la gestion du HTTPS | ||
- | * gestion des droits d' | ||
- | |||
- | Grafana est relativement simple à déployer dans la mesure où une image Docker officielle très complète existe déjà. Tout se passe via une interface Web donc le service est simple à exposer derrière Traefik, et il est possible de créer des utilisateurs et de gérer les droits d' | ||
- | |||
- | Picasoft a donc fait [[https:// | ||
- | |||
- | On déploie donc notre Grafana sur la VM '' | ||
- | * le nom et l'URL de l' | ||
- | * un utilisateur/ | ||
- | * les labels qui vont bien pour exposer le service derrière Traefik | ||
- | * un volume pour avoir une persistance des données | ||
- | |||
- | On obtient un service //Docker Compose// comme celui-ci : | ||
- | |||
- | <code yaml> | ||
- | grafana: | ||
- | image: registry.picasoft.net: | ||
- | container_name: | ||
- | volumes: | ||
- | - / | ||
- | environment: | ||
- | - GF_DEFAULT_INSTANCE_NAME=picasoft | ||
- | - GF_SERVER_ROOT_URL=https:// | ||
- | - GF_SECURITY_ADMIN_USER=admin_user_name | ||
- | - GF_SECURITY_ADMIN_PASSWORD=admin_user_password | ||
- | labels: | ||
- | - " | ||
- | - " | ||
- | - " | ||
- | restart: always | ||
- | </ | ||
- | |||
- | Comme Grafana s' | ||
- | |||
- | ==== Utilisation ==== | ||
- | |||
- | Une fois l' | ||
- | |||
- | Il y a 2 concepts importants à comprendre dans Grafana : les // | ||
- | Les // | ||
- | Les // | ||
- | |||
- | === Datasources === | ||
- | |||
- | Dans notre cas, Picasoft a simplement configuré un // | ||
- | |||
- | === Dashboards === | ||
- | |||
- | Pour Picasoft, il convient de créer un // | ||
- | |||
- | Quelques ressources : | ||
- | * [[http:// | ||
- | * [[https:// | ||