5. Utilisation d'un serveur NETDATA

Ce guide donne à titre indicatif les étapes nécessaires à la mise en place d'un serveur de monitoring netdata, et son interconnexion à un GCenter afin d'en assurer la surveillance.

Note

La version Netdata compatible avec le GCenter et GCap est la 1.19

5.1. Installation via docker

Installer le docker netdata

docker pull netdata/netdata:v1.19.0

Pour pouvoir éditer la configuration de netdata depuis la machine hôte, il faut lancer un container temporaire pour récupérer les fichiers de configuration.

mkdir netdataconfig
docker run -d --name netdata_tmp netdata/netdata
docker cp netdata_tmp:/usr/lib/netdata netdataconfig/
docker rm -f netdata_tmp

Lancement du container final

docker run -d --name=netdata \
  -p 19999:19999 \
  -v $(pwd)/netdataconfig/netdata:/usr/lib/netdata:rw \
  -v netdatalib:/var/lib/netdata \
  -v netdatacache:/var/cache/netdata \
  -v /etc/passwd:/host/etc/passwd:ro \
  -v /etc/group:/host/etc/group:ro \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /etc/os-release:/host/etc/os-release:ro \
  --restart unless-stopped \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

5.2. Configuration

Configuration du stream.conf et gcenter

Générer l'uuid

sudo docker exec -it netdata uuidgen

Configuration stream avec l'uuid généré précédemment.

Netdata recommande d'utiliser edit-config

sudo docker exec -it netdata /etc/netdata/edit-config stream.conf
[dd236090-a42d-43e2-b0ba-ff8eaa6216a2] << Remplacer l'uuid ici
    enabled = yes
    default history = 36000
    default memory mode = ram
    health enabled by default = auto
    allow from = *
    default postpone alarms on connect seconds = 60

Configuration de netdata.conf

sudo docker exec -it netdata /etc/netdata/edit-config netdata.conf
[global]
      ...
      hostname = netdata-docker.gatewatcher.com
      ...
      timezone = Europe/Paris

Configurer l'export netdata dans le gcenter

Note

A lire Netdata export.

Pour que netdata envoi des notifications, il faut configurer health_alarm_notify.conf

sudo docker exec -it netdata /etc/netdata/edit-config health_alarm_notify.conf

Référence : Alarm Configuration

5.3. Création d'alertes pour Netdata

La création des alertes se fait dans le dossier du conteneur :

/usr/lib/netdata/conf.d/health.d

Afin que les nouvelles alertes soient prisent en compte, il est nécessaire de redémarrer le conteneur docker.

Pour clarifier la gestion de vos alertes, il est conseillé de créer un fichier *.conf par catégorie d'alerte.

Voici des exemples :

Description

Lien

Alerte en cas d'absence/surcharge de trafic

traffic.conf

Alerte en cas de désactivation des services d'analyse du Gcap

suricata_status.conf

Alerte si un redémarrage de Gcap/Gcenter a eu lieu

reboot.conf

Alerte en cas de surcharge RAM

ram.conf

Alerte en cas de packets réseau "droppés" sur le Gcap

drop.conf

Alerte en cas de remplissage disque (ici la partition /data du Gcap)

disk.conf

Alerte en cas de surcharge CPU

cpu.conf

Créer vos propres alertes

La création des alertes se base sur les métriques que netdata collecte.

Pour connaître ces métriques, il faut se connecter à l'interface Netdata de votre Gcenter.

https:// IP ou FQDN du Gcenter /gstats

Prenons l'exemple du monitoring RAM

../_images/netdata_RAM.png

Le nom du Graph est system.ram et la courbe à surveiller used

L'alerte dans ram.conf sera rédigée comme suit :

On nomme l'alarme

1>>  alarm: ram_usage

On nomme le graphique dans Netdata :

2>> on: system.ram

On indique que l'on calcule la moyenne sur 10 min de la courbe used

3>> lookup: average -10m percentage of used

On spécifie l'unité

4>> units: %

On spécifie l'intervalle de temps entre chaque calcul

5>> every: 1m

On défini les seuil alerte et critique

6>> warn: $this > 70
7>> crit: $this > 90

On défini le délais pour faire disparaître l'alarme après déclenchement

8>> delay: down 15m multiplier 1.5 max 1h

Description de l'alarme

9>> info: average RAM utilization over the last 10 minutes

Définir qui sera alerté (voir health_alarm_notify.conf)

10>> to: sysadmin