InfluxData
Ce service est en fait un ensemble de services qui cohabitent ensemble.
- Agrégation d'informations avec Telegraf qui permet de remonter les métriques des serveurs.
- Stockage des informations avec InfluxDB
- Affichage des informations avec Grafana
Ceux-ci sont modulables et peuvent s'interfacer avec d'autres services existants comme Munin ou ELK. Ils peuvent aussi récupérer les informations SNMP avec des plugins adéquates. À voir si il y a besoin de plus à l'usage
Informations Installation et configuration
InfluxDB, Grafana
InfluxDB
Configuration statique
La base de données InfluxDB par défaut est installée sur DGSI en suivant la documentation officielle
Les seuls changements à la configuration par défaut sont :
/etc/influxdb/influxdb.conf
:
reporting-disabled = true # La machine n'a pas internet
[http]
auth-enabled = true # Authentification obligatoire
Attention : ne pas lancer influxcb en root car il va ensuite créer des fichiers en root ce qui l’empêchera de fonctionner en service (avec l'utilisateur par défaut Influxdb)
Base de données et authentification
J'ai ensuite créé un utilisateur admin renas
:
$ influx
Connected to http://localhost:8086 version 1.2.0
InfluxDB shell version: 1.2.0
> use _internal
> CREATE USER renas WITH PASSWORD '<password>' WITH ALL PRIVILEGES
Création d'un utilisateur et d'une base de données pour telegraf
> CREATE DATABASE telegraf
> use telegraf
> CREATE USER telgraf WITH PASSWORD '<password>'
> GRANT ALL ON "telegraf" TO "telegraf"
TODO:
- (ouvrir ticket) Sécurisation TLS
- (ouvrir ticket) Voir les autres options
- (ouvrir ticket) Amélioration de la conf pour la monté en charge
Ajout d'un serveur à Telegraf
Avec Ansible (recommandé)
Telegraf est un service en push, c'est à dire qu'il faut installer un client sur toutes les machines monitorées qui vont envoyer les données à la base de données centrale (InfluxDB sur DGSI).
Pour la plupart des services la configuration ResEl par défaut est suffisante. Pour la lancer il faut ajouter
le serveur au groupe servers
(dans le LDAP) puis lancer le playbook telegraf.yml
sur loustic.
À la main (au cas où)
en résumé: suivre la doc Telegraf
Ajouter la source InfluxData
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Installer et démarrer le service
sudo apt-get update && sudo apt-get install telegraf
sudo systemctl start telegraf
Configuration par défaut
Pour la plupart des services la configuration par défaut de Telegraf devrait suffire. Si vous n'avez pas utilisé Ansible pour créer la configuration vous devez rentrer les crédits de InfluxDB.
Éditez le fichier /etc/telegraf/telegraf.conf
en changeant les lignes suivantes :
[[outputs.influxdb]]
urls = [ "http://dgsi.adm.resel.fr:8086" ] # required
database = "telegraf" # required
precision = "s"
retention_policy = "autogen"
timeout = "5s"
username = "telegraf"
password = "<passwd>"
TODO :
- (ouvrir ticket) auto personnalisation
Personnalisation de la configuration
Si vous désirez ajouter la configuration de plugins qui ne sont pas dans la configuration par défaut et
que vous désirez que celle-ci ne soit pas effacée par Ansible vous devez l'ajouter dans le dossier
/etc/telegraf/telegraf.d/
Par exemple si vous voulez une configuration nginx en plus, créez le fichier /etc/telegraf/telegraf.d/nginx.conf
:
[[inputs.nginx]]
urls = ["http://lancache-steam/status", "http://lancache-blizzard/status", "http://lancache-riot/status", "http://lancache-sony/status", "http://lancache-microsoft/status"]
Vous pouvez retrouver documentation de la configuration des plugins sur le repo de Telegraf
Plugin shell (exécution de scripts arbitraires)
Il est possible de créer des plugins pour Telegraf à partir de scripts arbitraires afin de récupérer des métriques arbitraires. Pour ceci suivez la doc officielle
TODO:
- (ouvrir ticket) migrer ou wrapper les scripts de Echelon
TODO (rédacteur)
- Détails d'un script minimal (pour l'exemple illustratif au ResEl)
Grafana
Grafana est le service permettant l'affichage de nombreuses métriques venant de plusieurs bases de données et en particulier InfluxDB. Il est installé aussi sur DGSI au ResEl et disponible à l'adresse : https://graph.resel.fr/
Installation
L'installation est totalement classique comme décrite dans la documentation
Ajout des sources à /etc/apt/sources.list.d/repos_influxdata_com_debian.list
et non