Influxdb
Ce rôle installe et configure la base de données de séries temporelles InfluxDB 1.x sur les systèmes RedHat.
Vue d’ensemble
Ce rôle installe et configure la base de données de séries temporelles InfluxDB 1.x sur les systèmes RedHat. Il ajoute le dépôt officiel InfluxData, installe InfluxDB, configure les paramètres HTTP/UDP/logging, crée des bases de données avec des utilisateurs et leurs privilèges, met en place des politiques de rétention pour la gestion du cycle de vie des données, et s’assure que le service est activé et démarré. Le rôle est entièrement idempotent et vérifie l’existence des ressources avant de les créer.
Ce que fait ce rôle
-
Ajoute le dépôt InfluxData
- URL : https://repos.influxdata.com/rhel/
- Active la vérification GPG
-
Installe le paquet InfluxDB via dnf/yum
- Version 1.x depuis le dépôt officiel
-
Configure l’API HTTP dans
/etc/influxdb/influxdb.conf:- Adresse d’écoute
- Journalisation des accès
- Active/désactive l’endpoint HTTP
-
Configure la journalisation :
- Format (logfmt ou json)
- Niveau (error, warn, info, debug)
- Suppression du logo
-
Configure l’entrée UDP (si activée) :
- Adresse d’écoute
- Base de données par défaut pour les écritures UDP
-
Démarre et active le service :
- Démarre InfluxDB
- Garantit que InfluxDB démarre au boot
-
Attend qu’InfluxDB soit prêt (port 8086)
-
Vérifie les utilisateurs existants (idempotent) :
- Requête :
SHOW USERS - Analyse la réponse JSON
- Requête :
-
Crée les utilisateurs :
- Crée uniquement s’ils n’existent pas
- Utilise les mots de passe depuis le vault
-
Vérifie les bases de données existantes (idempotent) :
- Requête :
SHOW DATABASES - Analyse la réponse JSON
- Requête :
-
Crée les bases de données :
- Crée uniquement si elles n’existent pas
-
Attribue les privilèges :
GRANT ALL ON database TO user
-
Vérifie les politiques de rétention existantes :
- Requête :
SHOW RETENTION POLICIES ON database
- Requête :
-
Crée les politiques de rétention :
- Crée uniquement si elles n’existent pas
- Définit comme défaut si spécifié
Variables du rôle
| Variable | Description |
|---|---|
influxdb_databases | Liste des bases de données à créer ; chaque entrée supporte un user (avec password) et une retention_policy optionnels |
influxdb_service_enabled | Activer le service au démarrage |
influxdb_service_state | État désiré du service |
influxdb_http_enabled | Activer l’API HTTP |
influxdb_http_bind_address | Adresse d’écoute HTTP |
influxdb_http_log_enabled | Activer la journalisation des requêtes HTTP |
influxdb_http_access_log_path | Chemin du fichier de journal des accès HTTP |
influxdb_udp_enabled | Activer l’entrée UDP |
influxdb_udp_bind_address | Adresse d’écoute UDP |
influxdb_udp_database | Base de données par défaut pour les écritures UDP |
influxdb_logging_level | Niveau de journalisation |
influxdb_logging_format | Format de sortie des journaux (logfmt ou json) |
influxdb_logging_suppress_logo | Supprimer le logo de démarrage InfluxDB dans les journaux |
Structure de définition de la base de données :
influxdb_databases:
- name: homelab
user: telegraf
password: "{{ vault_influxdb_telegraf_password }}"
retention_policy:
name: thirty_days
duration: 30d
replication: 1
default: true
- name: opnsense
retention_policy:
name: ninety_days
duration: 90d
replication: 1
default: true
Notes
- Supporte uniquement InfluxDB 1.x (langage de requête InfluxQL)
- Utilisé typiquement comme backend dans la stack de supervision Telegraf → InfluxDB → Grafana