Afficher/cacher Sommaire
Installer InfluxDB Telegraf et Graphana
InfluxDB
Installer InfluxDB sur Debian 10 (Buster) Linux
Ajouter le dépôt APT d’InfluxDB.
sudo apt update
sudo apt install -y gnupg curl wget
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Une fois le dépôt ajouté, installez InfluxDB sur Linux Debian 10 (Buster) :
sudo apt update
sudo apt install -y influxdb
Le fichier de configuration par défaut d’InfluxDB se trouve sous /etc/influxdb/influxdb.conf. La plupart des sections sont commentées, vous pouvez le modifier à votre guise et redémarrer le service influxdb après.
Démarrez et activez le service pour qu’il démarre au démarrage.
sudo systemctl enable --now influxdb
Vérifiez l’état du service :
systemctl status influxdb
● influxdb.service - InfluxDB is an open-source, distributed, time series database
Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-06-20 11:27:04 CEST; 8s ago
Docs: https://docs.influxdata.com/influxdb/
Main PID: 8642 (influxd)
Tasks: 13 (limit: 4915)
Memory: 11.7M
CGroup: /system.slice/influxdb.service
└─8642 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
Ouvrir les ports du service influxdb sur le pare-feu
Pour les utilisateurs utilisant le pare-feu ufw, autorisez le port du service.
sudo ufw allow 8086/tcp
Par défaut, InfluxDB utilise les ports réseau suivants :
Le port TCP 8086 est utilisé pour la communication client-serveur via l’API HTTP d’InfluxDB.
Le port TCP 8088 est utilisé pour le service RPC de sauvegarde et de restauration.
Configurer l’authentification http d’InfluxDB (facultatif)
Si vous avez besoin d’une authentification http, modifiez la section influxdb http pour qu’elle contienne ce qui suit.
sudo nano /etc/influxdb/influxdb.conf
[http]
auth-enabled = true
Ensuite, créez un utilisateur avec un mot de passe d’authentification :
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'strongpassword' WITH ALL PRIVILEGES"
Remplacer:
- username par votre propre nom d’utilisateur
- strongpassword par votre propre mot de passe (notez que le mot de passe nécessite des guillemets simples)
On va créer 2 utilisateurs : admin et yann
Telegraf
Telegraf est une application d’agent de surveillance développée par InfluxData dans le cadre de Tick Stack. Cette application est écrite en Go et est utilisée pour collecter des mesures de performance du système. Telegraf peut collecter des mesures à partir d’un large éventail d’entrées et les écrire dans un large éventail de sorties. Elle est pilotée par des plugins pour la collecte et la sortie des données, ce qui la rend facilement extensible.
Avec plus de 200 plugins disponibles écrits par des experts en la matière sur les données de la communauté, il est facile de commencer à collecter des métriques à partir de vos points finaux. Vous pouvez facilement ajouter de nouvelles entrées et sorties pour répondre à vos besoins de surveillance.
Mise à jour du système
sudo apt update && sudo apt -y upgrade
Ajouter le dépôt Influxdata Les binaires Go pré-packagés pour Telegraf sont disponibles sur le dépôt Influxdata.
Importez la clé GPG du dépôt.
sudo apt install -y gnupg curl wget
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
Ajoutez le dépôt InfluxDB APT en utilisant la commande ci-dessous.
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
et installer Telegraf
sudo apt update
sudo apt -y install telegraf
Vérifier le service Telegraf.
systemctl status telegraf
● telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-06-20 11:31:22 CEST; 13s ago
Docs: https://github.com/influxdata/telegraf
Main PID: 9466 (telegraf)
Tasks: 10 (limit: 4915)
Memory: 26.9M
CGroup: /system.slice/telegraf.service
└─9466 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/
Le principal fichier de configuration de telegraf est /etc/telegraf/telegraf.conf
. La plupart des sections sont commentées, mais vous pouvez les décommenter pour débloquer les entrées, sorties et configurations que vous souhaitez utiliser.
Grafana
Comment installer les dépendances de Grafana, télécharger et installer Grafana, rendre le service opérationnel sur votre système Debian ou Ubuntu, et décrit également les détails du paquet d’installation.
Remarque sur la mise à niveau : Bien que le processus de mise à niveau de Grafana soit très similaire à celui de l’installation de Grafana, il existe certaines étapes de sauvegarde clés que vous devez effectuer. Lisez Upgrading Grafana pour obtenir des conseils et des directives sur la mise à jour d’une installation existante.
Pour installer la dernière version OSS :
sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Ajoutez ce dépôt pour les versions stables :
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Après avoir ajouté le dépôt :
sudo apt-get update
sudo apt-get install grafana
Démarrer le serveur avec systemd
Démarrer et activer le service puis vérifier
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
systemctl status grafana-server
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-06-20 11:36:32 CEST; 31s ago
Docs: http://docs.grafana.org
Main PID: 11339 (grafana-server)
Tasks: 10 (limit: 4915)
Memory: 28.9M
CGroup: /system.slice/grafana-server.service
└─11339 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/ru
l’interface d’administration de Grafana est accessible à l’URL http://127.0.0.1:3000
A la première connexion, seul un compte “admin” est créé, avec le mot de passe “admin”.
Créer le nouveau mot de passe
Pour créer les dashboards, vous pouvez récupérer des dashboards de la communauté Grafana ou créer vos propres dashboards.
Désactiver les enregistrements et l’accès anonyme à Grafana
lorsque vous utilisez Grafana en ligne pour travailler avec des données sensibles, l’accès anonyme peut poser un problème de sécurité. Pour résoudre ce problème, modifiez la configuration de Grafana.
Commencez par ouvrir le fichier de configuration principal de Grafana pour l’éditer :
sudo nano /etc/grafana/grafana.ini
Localisez la directive suivante allow_sign_up
sous le titre [users]
Décommentez la directive allow_sign_up
en supprimant le ;
au début de la ligne puis en réglant l’option sur false
/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
allow_sign_up = false
...
Désactiver cette directive avec false
supprime le bouton Sign up et renforce la sécurité et la confidentialité de Grafana.
Ensuite, localisez la directive enabled
suivante sous le titre [auth.anonymous]
Décommentez la directive en supprimant le ;
au début de la ligne puis en réglant l’option sur false
...
[auth.anonymous]
# enable anonymous access
enabled = false
...
Sauvegardez le fichier et quittez votre éditeur de texte et pour activer les changements, redémarrez Grafana
sudo systemctl restart grafana-server
Monitorer système avec Telegraf, InfluxDB et Grafana
Monitor Linux System with Grafana and Telegraf
Comment surveiller un système Linux avec Grafana et Telegraf. Les métriques Telegraf seront stockées sur InfluxDB, puis nous pourrons les visualiser sur Grafana à l’aide d’un tableau de bord système.
InfluxDB
Nous allons créer une base de données pour pouvoir pousser les données remontées par Telegraf :
influx -execute "CREATE DATABASE influx_db"
Créons l’utilisateur influx_user :
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER influx_user WITH PASSWORD 'strongpassword' WITH ALL PRIVILEGES"
Telegraf
Telegraf fonctionne sous forme de plugin à activer pour récupérer les métriques. L’écosystème de plugins est riche : il y a des plugins pour monitorer nginx, cassandra, haproxy, postgresql…
Une configuration de base de telegraf avec une sortie InfluxDB et des entrées de base pour collecter les mesures du système peut ressembler à ce qui suit :
sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.sav # sauvegarde
sudo nano /etc/telegraf/telegraf.conf
[global_tags]
# Configuration for telegraf agent
[agent]
interval = "10s"
debug = false
hostname = "server-hostname"
round_interval = true
flush_interval = "10s"
flush_jitter = "0s"
collection_jitter = "0s"
metric_batch_size = 1000
metric_buffer_limit = 10000
quiet = false
logfile = ""
omit_hostname = false
###############################################################################
# OUTPUTS #
###############################################################################
[[outputs.influxdb]]
urls = ["http://influxdb-ip:8086"]
database = "database-name"
timeout = "0s"
username = "auth-username"
password = "auth-password"
retention_policy = ""
###############################################################################
# INPUTS #
###############################################################################
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.io]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
Pour une liste complète des entrées supportées par Telegraf, visitez la page Github des entrées de Telegraf.
La configuration des plugins est documenté exhaustivement dans le fichier de configuration de base : /etc/telegraf/telegraf.conf
Remplacez :
- server-hostname par votre nom d’hôte valide.
- http://influxdb-ip:8086 avec votre URL, adresse IP et port InfluxDB valides.
- **database-name **avec le nom de la base de données InfluxDB pour cet hôte.
- auth-username avec le nom d’utilisateur pour l’authentification http d’InfluxDB.
- auth-password avec le mot de passe d’authentification http d’InfluxDB.
Pour finir, redémarrons le service pour prendre en compte la configuration :
sudo systemctl restart telegraf
Grafana
Avant de pouvoir ajouter un tableau de bord à Grafana pour les mesures du système Telegraf, vous devez d’abord importer la source de données. Connectez-vous à votre Grafana
Configuration (roue dentelée) → Data sources puis Add Datasource
Name : cs-influxdb
URL : http://localhost:8086
Sous Détails InfluxDB, fournissez :
Database : influx_db # le nom de la base de données tel qu’il est défini dans le fichier de configuration de telegraf
User : influx_user
Password : influx_password
Save & test → Data source is working
Importation du tableau de bord Grafana
Une fois la source de données ajoutée, la prochaine chose à faire est d’importer le tableau de bord. J’ai personnalisé un des tableaux de bord initialement créé par un utilisateur de la communauté et je l’ai téléchargé.
Téléchargez le tableau de bord depuis https://grafana.com/dashboards/5955, il est au format JSON. Ensuite, allez dans Grafana et dans le menu survolez le + (Create) puis sélectionnez “Import”.
Sélectionnez Upload .json et téléchargez le fichier téléchargé. Vous pouvez également utiliser l’URL ou l’ID du tableau de bord Grafana - 5955.
Dans la section Options, donnez-lui un nom unique et sélectionnez la source de données ajoutée précédemment dans le menu déroulant, puis cliquez sur le bouton d’importation.
Vous devriez voir les métriques être visualisées immédiatement.