Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
612 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  • Administrateur Systèmes linux/unix & Réseaux •

 



Vot' poste actuel
Sondage à 2 choix possibles.




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

• Administrateur Systèmes linux/unix & Réseaux •

n°157111
Plam
:o
Posté le 21-09-2018 à 23:18:05  profilanswer
 
Voir ce message dans le sujet non filtré
 

Petit retour pratique sur la solution de métriques live + métrologie + monitoring avec la stack Netdata/Prometheus/Grafana.

 

> Aujourd'hui, on utilise plus les modèles de push que de pull : un container ou une VM fraîchement crée va automatiquement pousser ses données sur un serveur, sans avoir à mettre à jour la configuration dudit serveur de monitoring. Il suffit pour ça d'avoir dans son template la conf générique qui pointe sur votre serveur central.

 

## Sur chaque système : Netdata

 

C'est là le rôle de Netdata : un "agent" de collecte sur chaque VM/container va tout envoyer sur le Netdata central. Il faut savoir que la collecte Netdata est assez ouf tout en prenant très peu de ressources. Ici le site officiel : https://my-netdata.io et une démo https://london.my-netdata.io/defaul [...] heme=slate

 

Netdata, par défaut, va collecter des métriques toutes les secondes pour la dernière heure, ce qui est très pratique pour regarder dans le détail un pic à un instant T. Il existe aussi des set d'alertes intégrées dans l'UI, mais ce n'est pas forcément le plus puissant (on verra par la suite).

 

## Serveur central

 

Ajouter un serveur central c'est une ligne dans la conf sur vos hôtes à surveiller, c'est très simple (même template pour tous). Vous pouvez désactiver l'UI de base sur vos hôtes pour n'avoir que les métriques poussées vers le serveur central.

 

Le serveur dit "central" va automatiquement ajouter une entrée dès qu'un nouvel hôte se manifeste (hôte/VM/container). Tout est observable d'ici.

 

### La base de données

 

L'autre atout c'est qu'il va être facile de collecter toutes ces métriques pour la base de donnée Prometheus : https://prometheus.io/ C'est la DB faite pour stocker des métriques. C'est un démon, qui une fois la config effectuée, va "scraper" les données du Netdata central (pas tous les points toutes les secondes mais peut être toutes les 5 secondes ou 60 secondes, ça dépendra de la granularité que vous souhaitez).

 

### Exploitation des données

 

Ca, c'est le rôle de Grafana. Je sais même pas s'il faut encore présenter Grafana [:ddr555] https://grafana.com/
On peut se connecter au backend Prometheus et à partir de là, métrologie et alertes s'offrent à vous, avec des options vraiment poussées (seuils d'alertes complexes et réglables facilement, connexion à un PagerDuty pour gérer votre équipe de support etc.)

 

Ici une démo simple utilisant un backend Prometheus : https://play.grafana.org/d/00000002 [...] 5m&orgId=1

 

Ici avec des exemples d'alertes : https://play.grafana.org/d/000000074/alerting?orgId=1

 

Je ous laisse exploser, mais c'est assez ouf. Bien entendu, vous pouvez utiliser des expressions mathématique (moyennes mobiles etc.) et des expressions régulières pour automatiquement gérer vos alertes (genre avoir un match de dashboard avec des noms de containers/VM qui ont "db*" en hostname).

 

Bref, c'est ultra puissant.

 


Bien entendu, tout ça est Open Source, et rien ne vous empêche de caler vos propres métriques applicatives directement dans Prometheus, ou de faire des plugin netdata si vous le souhaitez.

 

Est-ce que ça scale ? Clairement oui, puisque j'ai vu ça à l’œuvre sur des infras de milliers de VMs/containers.

 

Récap :

 

https://cloud.githubusercontent.com/assets/2662304/23627295/e3569adc-02b8-11e7-9d55-4014bf98c1b3.png

 


edit : pour les grosses infras ou pour des cas spéciaux, vous pouvez utilisez des "proxy" netdata, cf https://cloud.githubusercontent.com [...] ed4c53.png

Message cité 1 fois
Message édité par Plam le 21-09-2018 à 23:20:58

---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
mood
Publicité
Posté le 21-09-2018 à 23:18:05  profilanswer
 

n°157116
Plam
:o
Posté le 22-09-2018 à 09:49:58  profilanswer
 
Voir ce message dans le sujet non filtré
 

dd_pak a écrit :


 
Sympa merci pour la partage ! ça ressemble pas mal à Telegraf influxdb et grafana  
Tu as les fichiers de config quelque part afin de tester rapidement ?  :o  


 
 
C'est justement ça qui est beau, ya rien à faire ou presque.
 
## Clients Netdata
 
Sur les « clients » Netdata, il faut juste dire de streamer sur le master, donc via `/etc/netdata/stream.conf` dans la rubrique [stream] :
 

 
    # This communication is not HTTP (it cannot be proxied by web proxies).
    destination = IP de mon master
 
    # The API_KEY to use (que tu peux générer avec un uuidgen)
    api key = UUID du master  


 
## Serveur Netdata
 
2 lignes, même fichier :
 


    [UUID du master]
    enabled = yes


 
## Prometheus
 
Là il faut lui dire de manger les data de… Netdata. Donc dans la section « scrape_configs » (en bas du fichier de conf), avec ici Prometheus sur le même serveur que le Netdata master :
 


  - job_name: 'blabla'
 
    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    scrape_timeout: 5s
 
    metrics_path: /api/v1/allmetrics
    params:
      format: [ prometheus_all_hosts ]
 
    static_configs:
      - targets: ['localhost:19999']


 
Et… c'est tout. Grafana se configure en « click click » (Ajout provider/prometheus/URL/done).
 
Le must étant de caler tout ça derrière un reverse Nginx en HTTPS et hop.
 

neodam a écrit :

On est sur centreon ac serveur central et collecteurs.
J'avais déjà entendu parler de netdata, mais pas couplé ac le reste et d'un coup, centreon paraît vieux.

Spoiler :


Par contre, ça gère bien les Windows tt ça ??



 
Eh bien on dirait que directement non, mais sur un W10 avec la couche Linux ça marcherai : https://www.youtube.com/watch?v=ornB89bCTb8
 
Ceci dit, vu qu'il est assez facile de faire des plugins, ça me parait pas impossible du tout. Mais c'est clairement pas out of the box. N'ayant aucun Windows dans mon infra je m'étais même pas posé la question [:ddr555]


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157128
Plam
:o
Posté le 22-09-2018 à 13:43:13  profilanswer
 
Voir ce message dans le sujet non filtré
 

dd_pak a écrit :

 

Le gros avantage c'est que ça fonctionne sur une grosse infra
Sur un petit serveur perso, telegraf fait bien le job et tourne sous Docker :o

 

Netdata en standalone sans serveur central c'est mieux que telegraf ;) Par défaut dispo sur http://tonhost:19999 après install d'un one liner...

 

Je viens de la stack TICK donc je peux te dire que c'est mieux ^^


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157133
Plam
:o
Posté le 22-09-2018 à 17:10:02  profilanswer
 
Voir ce message dans le sujet non filtré
 

J'ai fouillé quelques issues sur le sujet, et visiblement c'est pas la collecte en elle-même le soucis, mais le fait que Windows soit pas POSIX (sans déconner  [:the_rainmaker:2] ) : https://github.com/netdata/netdata/issues/92
 

Citation :

The biggest issue is not data collection, that's easy (most of the generic Python plugins should work out of the box, and it shouldn't be too hard to abstract away the dependence on /proc in most of the core stuff), it's the fact that Windows is not POSIX (and in some cases has drastically different semantics from POSIX, with the VFS interface and the process creation semantics being prime examples), and writing services for Windows is not exactly easy (and for Netdata to be practical for Windows, it has to be able to run as a service).


 
Donc ça arrivera le jour où yaura une boîte qui mettra quelqu'un dessus pour quelques mois :D
 
Après, il doit bien exister des alternatives qui monitorent des Windows et qui vont pousser dans un Prometheus :??:
 
Quand à moi, je snob pas Windows, j'en ai juste rien à faire puisque je m'en sers jamais de près ou de loin (enfin sauf que les tickets clients concernent des VMs Windows qui représentent 99% des problèmes de backup au niveau hyperviseur, à cause de VSS et autres merdes en tout genres qui se comportent pas pareil en fonction de la langue [:ddr555])
 
J'ai pas une image très positive de Windows dans le monde serveur à cause de ça, mais je peux pas dire que mon échantillon soit représentatif (j'ai pas encore 1000+ entreprises différentes qui font des tickets de support), donc je m'abstiens de commentaires parce que j'y connais pas grand chose :o


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157134
Plam
:o
Posté le 22-09-2018 à 17:14:57  profilanswer
 
Voir ce message dans le sujet non filtré
 

vbdc a écrit :


 :hello: J'ai pas pris le temps de me documenter mais je me pose deux questions avant de tester les data elles sont stockés dans quoi? Niveau data peux-tu récupérer des métriques de baies EMC par ex. ou d'équipements réseaux un peu sympa comme un NetScaler?
 
 :jap:


 
Sur la machine avec Netdata qui tourne, c'est en RAM (15-25 MiB en moyenne pour 1000+ métriques sur la dernière heure). Si tu veux de l'historique, ça se passe dans Prometheus.
 
Visiblement tu peux utiliser Netdata pour collecter des données venant de SNMP : https://github.com/netdata/netdata/ [...] mp.conf.md
 
Tu pourrais très bien faire un nœud Netdata qui s'occupe de ça, puis qui pousse sur le Netdata central et enfin ton Prometheus.
 
J'ai pas touché ce côté là, moi j'ai fait que de la surveillance d'hyperviseurs (XCP-ng), VMs et containers :jap:


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157207
Plam
:o
Posté le 24-09-2018 à 16:47:28  profilanswer
 
Voir ce message dans le sujet non filtré
 

Exemple concret de l'intérêt d'une solution du supervision en modèle push : pouvoir tracker une fuite de mémoire sur une app chez le client, avec Netdata installé sur une VM de test qui stream sur notre serveur central :) Du coup rien à configurer chez le client en terme de FW pour qu'on récup les data !

 

Et donc le dev a la courbe de conso mémoire directement affichée dans son nav pendant qu'il fait ses tests :D (précision : c'est une fuite qu'on arrive pas à reproduire sur une infra de dev puisqu'il faut des centaines d'hôtes pour que ça soit visible)


Message édité par Plam le 24-09-2018 à 16:49:20

---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157250
Plam
:o
Posté le 26-09-2018 à 17:33:57  profilanswer
 
Voir ce message dans le sujet non filtré
 

Bonus Netdata : ça embarque un serveur statsd, donc pour toutes vos métriques de vos applis « métiers », paf, directement sur localhost de la VM, et bien entendu, c'est récup auto par Netdata, qui va stream vers le nœud maître, puis récup par Prometheus puis affiché par Grafana, tout seul, sans rien faire :sol:


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°157263
Plam
:o
Posté le 27-09-2018 à 15:39:45  profilanswer
 
Voir ce message dans le sujet non filtré
 

Pour illustrer l'intérêt d'un statsd embarqué dans NetData, petit récit d'une enquête sur une fuite de mémoire dans Xen Orchestra, directement chez un client (qu'on arrive pas à reproduire dans notre labo, parce qu'il a une grosse infra).

 

On a donc installé Netdata dans notre VM de test, tout en streamant sur le serveur central pour utiliser nos propres dashboard sans lui demander de faire du NAT dans son infra existante. Donc avec Prometheus+Grafana, on a l'historique de la RAM pour l'utilisateur qui lance XO ici :

 

https://i.imgur.com/4v5kxMV.png

 

Figure 1 : ceci n'est pas une pipe fuite. Notez qu'on a résolu le problème au 3ème essai :o

 

Pour arriver à mesurer les métriques internes de l'appli, on a donc installé quelques points de contrôles/métriques directement dans le code, ce qui est très facile avec une paquet NPM, où il suffit d'écrire :

 

statsd.count('ma_métrique', 123456)

 

Tout ça dans localhost, puis que statsd est sur le Netdata local  :sol:

 

Ici on va compter le nombre d'objet "Xen" gérés par Xen Orchestra. Bien entendu, dès que la métrique est envoyée, le tableau est crée aussi en auto dans Netdata, dispo sur le Netdata central :

 

https://i.imgur.com/CECVJS4.png

 

Et le résultat avec de l'historique dans Grafana, avec une moyenne mobile pour lisser aussi le résultat et mieux voir l'évolution :

 

https://i.imgur.com/DORghkr.png

 

Et sinon oui, vous avez bien lu, XO bosse avec des centaines de milliers d'objets, ce qui varie en fonction de la taille de l'infra et de l'activité dessus :jap:

 

Bref, vous n'avez plus d'excuse pour pas utiliser une solution de supervision qui va aussi vous servir à ajouter des métriques applicatives métiers :o


Message édité par Plam le 27-09-2018 à 15:41:16

---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°161943
Plam
:o
Posté le 01-04-2019 à 19:09:55  profilanswer
 
Voir ce message dans le sujet non filtré
 

Netdata :o (j'ai fait un long post à ce sujet sur ce topic il y a quelques temps)
 
Ya même un plugin Xen maintenant :o


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°162198
Plam
:o
Posté le 09-04-2019 à 20:32:16  profilanswer
 
Voir ce message dans le sujet non filtré
 

Dépanner un dev qui a besoin de métriques HTTP en local et distant, avec une alerte en cas de dépassement : 1 minute pour configurer la sonde dans Netdata, ajout auto de la métrique (0 minute :o ) dans Grafana, puis 1 minute pour créer l'alerte « graphiquement » aussi dans Grafana :love: (et le mettre en copie en cas d'alerte)
 
Je me lasse pas de cette plate forme de supervision/métrologie :jap:


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°162213
Plam
:o
Posté le 10-04-2019 à 15:42:01  profilanswer
 
Voir ce message dans le sujet non filtré
 

boisse a écrit :

 

J'ai appris un truc :o

 
hodor83 a écrit :


 
tu utilise une stack ELK et tu collectes les données avec NetDATA c'est ça :o ?

 

Netdata sur un nœud -> stream -> Netdata central -> stream -> Prometheus (Grafana en exploitation)

 

Génération auto des data et des nœuds dans l'UI, aucune conf à faire (ajout d'un nœud ou d'une sonde -> apparition auto dans Prometheus)

 

edit : filtre sur mon pseudal, j'ai fait un post recap il y a quelques mois


Message édité par Plam le 10-04-2019 à 15:43:23

---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°162326
Plam
:o
Posté le 16-04-2019 à 08:07:58  profilanswer
 
Voir ce message dans le sujet non filtré
 

Tout comme j'ai fait un post « général » sur Netdata+Prometheus+Grafana, je ferai probablement un post sur quelques détails de Grafana (et ses alertes) dans quelques jours, enfin quand j'ai le temps. C'est vraiment chouette comme outil :jap:


---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit
n°162522
Plam
:o
Posté le 23-04-2019 à 13:31:43  profilanswer
 
Voir ce message dans le sujet non filtré
 

[:ipoule:6]  [:ipoule:6]

 

Bon, vu que je me suis coincé le dos et que j'ai du annuler pas mal de réunions, je vais prendre le temps de décrire « la suite » de mon post sur Netdata/Prometheus/Grafana. Il restera une partie pour le stockage à long terme des données Prometheus, mais j'ai pas encore fini de choisir le backend pour ça :o

 

## Grafana, un super outil de métrologie et d'alertes  [:buffo:5]

 

https://grafana.com/

 

Grafana est un outil d'exploitation de données, pour en faire des dashboard et des graphiques. La solution supporte plein de backend (les databases) différentes.

 

> Note sur leur business model : en SaaS ou alors avec support et plugins payants pour se connecter à des trucs proprio. Plus d'info sur https://grafana.com/cloud#pricing et  https://grafana.com/enterprise

 

Démo dispo ici : http://play.grafana.org/

 

## Avec Netdata et Prometheus  [:cyberad]

 

Pour remettre les choses dans l'ordre, voici comment j'ai fait sur ma prod' :

 

* chaque VM/hôte possède un agent Netdata, qui va streamer les données récoltées sur un Netdata central
* le Netdata central écrit dans une BDD Prometheus
* Grafana exploite cette BDD pour afficher ce dont j'ai besoin

 

> Note : pourquoi ne pas juste utiliser Netdata ? Parce que Netdata est parfait pour les données ultra-précises de la dernière heure. De la métrologie très court terme qui reste parfaite pour comprendre un problème. Par contre, cela ne va en aucun cas aider pour les tendances à long terme (espace disque, bande passante etc.)

 

Ici on est dans une logique de push : quand j'ajoute un hôte/VM, Netdata va de suite push dans le Netdata central, qui va créer automatiquement dans la base Prometheus toute les infos. Ce qui fait qu'il n'y a pas de travail d'ajout dans la plate forme de métrologie/supervision.

 

## Datasource  [:hishonss:4]

 

Le premier truc à faire une fois Grafana installé (dispo dans les dépots de plusieurs distro ou un dépot à jour de l'éditeur directement, donc je m'attarde pas dessus) : ajouter notre source (le backend). Ici, c'est Prometheus !

 

Il suffit d'aller dans l'UI, Configuration et Datasource. L/'UI est très explicite. Dans mon cas, Prometheus et Grafana sont sur le même hôte, donc c'est trivial et sans besoin de sécuriser :

 

https://i.imgur.com/zIV0FlX.png

 

Voilà, c'est tout :D Maintenant on peut faire joujou, avec le menu « Explore »

 

## Exploration et PromQL  [:hotshot]

 

PromQL c'est le langage pour requêter un backend. Rassurez vous, c'est super simple et flexible : l'autocomplétion est une tuerie :love:

 

Démonstration en tapant juste « netdata » :

 

https://i.imgur.com/3rxazUH.png

 

Puis « Entrée » en ayant choisi Apache Bytes per request average :

 

https://i.imgur.com/PCwGXW0.png

 

J'ai rien eu à faire de spécial. On peut bien entendu changer plein de paramètres simplement dans l'UI du graph, ajouter d'autres requêtes sur le même graph etc.

 

## Dashboard  [:laroa]

 

Maintenant que vous avez votre requête (et que vous avez compris le principe), vous pouvez en construire un graph dans un dashboard. C'est aussi simple que le reste : New/Dashboard.

 

Je vais reprendre le graph de tout à l'heure mais je vais aller un peu plus loin :

 

https://i.imgur.com/KBSwutb.png

 

Ça peut paraître du détail mais on a maintenant :

 

* un titre de graph :o
* une légende correcte
* un axe des Y avec les bonnes unités

 

Tout ça est très simple puisqu'il suffit d'éditer le graph, de choisir les unités et d'avoir une légende qui utilise des variables pour afficher ce qu'on veut. Genre ici ma légende c'est : {{dimension}} ({{exported_instance}}. Si vous avez l'œil, regardez bien le 3eme screenshot de ce post, vous verrez que ça m'a renvoyé plusieurs variables, "exported_instance" ici c'est mon nom de VM et "dimension" c'est la métrique en elle-même.

 

## Alertes [:shimay:2]

 

Bon, j'ai ma taille de requête Apache sur 2 VMs, maintenant j'aimerai bien avoir des alertes comême :o ( :o )

 

Avant d'en arriver là, on va ajouter un « canal d'alertes » (Notification Channel), menu principal, Alertes/Notification channels. Ensuite vous avez le choix : email, Slack/MatterMost, PagerDuty, webhooks, HipChat, Sensu, OpsGenie, Telegram, etc… Perso j'ai choisi email et Slack (enfin Mattermost, mais c'est pareil en terme de config :o )

 

Une fois ceci fait, on peut créer notre alerte directement dans notre graph ! Donc on retourne dans le dashboard, on édite notre graphique "Apache HFr demo" et on va dans Alertes :

 

* vous avez un slider où vous pouvez donner le niveau d'alerte « graphiquement »
* ou vous avez une aide à faire votre requête

 

Ça ressemble à ça :

 

https://i.imgur.com/7Gg5DW3.png

 

Ici, on va avoir une alerte sur la « size_req » (de cloud ou db1) dépasse 9630 octets en moyenne, pendant plus de 5 minutes. Et l'alerte part par email et Mattermost (cf "Send To" ) que j'ai configuré juste avant comme canal de notification.

 

Pour vous donner une idée du résultat de la gueule des notifs, par email :

 

https://i.imgur.com/STUOKWV.png

 

Notez que la capture d'écran est bien utile pour se rendre compte de ce qu'il se passe :jap:

 


## Autres trucs cool  [:macbeth:3]

 

En vrac :

 

* possibilité d'utiliser la liste des alertes configurés dans un dashboard (« à la Nagios ») en plus des grafs
* système de visualization en mode « TV » (pas de boutons visibles)
* cycler les dashboard
* annotation dans les graphiques (ex : un tech qui va écrire « panne switch » à l'heure de la panne pour corréler facilement avec le reste de l'équipe, type d'annotations, genre update, reboot etc.)
* configuration de sélecteurs dans les dashboard avec des variables (permettant par exemple d'avoir un seul dashboard dans lequel on peut choisir différents hôtes)
* support de différentes viz (bar/lines, heatmap, tableau, jauges, markdown)
* support de LDAP pour connecter des users et des droits en fonction des groupes
* partage des dashboard « snapshot » (pendant un intervalle particulier, partage d'URL spéciale avec que le droit de vue : parfait pour donner accès à des « externes » :jap: )
* et encore plein d'autres trucs que je découvre encore des mois après :o

Message cité 1 fois
Message édité par Plam le 23-04-2019 à 13:34:54

---------------
XCP-ng & Xen Orchestra founder // NodeJS c'est le bien :o // Ossifié, comme fusionné dans son cockpit

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  • Administrateur Systèmes linux/unix & Réseaux •

 

Sujets relatifs
Quel adresse pour routeur cisco? 2 réseaux différents2 Livebox ( 2 reseaux) pour 1 imprimante
HPE IMC Monitoring Linux distrib2 cartes réseaux sur 1 PC connecté à 2 accès
Serveur Squid pour 5 réseaux (5 modems)Limitation droits utilisateurs AD/Linux
Logiciel opensource schémas réseauxMigrer bases SQL de xampp Windows vers serveur Linux
[Reseaux d'entreprise] Obtenir la WIFI pour utiliser tablettesdeux reseaux wifi avec une livebox
Plus de sujets relatifs à : • Administrateur Systèmes linux/unix & Réseaux •


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR