YannStatic
  • Etiquettes
  • Liens
  • Aide

Monitorer un système linux avec Telegraf, InfluxDB et Grafana

  • application
  •  20 juin  2021
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
Grafana
A la première connexion, seul un compte “admin” est créé, avec le mot de passe “admin”.
Grafana
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
Grafana
Grafana

Name : cs-influxdb
URL : http://localhost:8086
Grafana

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
Grafana

Save & test → Data source is working
Grafana

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.
Grafana
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.
Grafana

PRÉCÉDENTServeur Debian Buster carte mère ASRock QC5000M
SUIVANTCalibre-Web naviguer, lire et télécharger des livres électroniques
Recherche