Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| software:applications:prometheus:installer_node-exporter [2021/11/01 12:26] – yoann | software:applications:prometheus:installer_node-exporter [2022/02/14 12:00] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== Installer node-exporter pour exposer les métriques de l’hôte ====== | ====== Installer node-exporter pour exposer les métriques de l’hôte ====== | ||
| - | Le Node Exporter est un endpoint qui expose les métriques de l’hôte. Prometheus se connecte périodiquement | + | **Node Exporter** est un endpoint |
| Le Node Exporter est un binaire statique écrit en Go. Il est disponible sous forme d' | Le Node Exporter est un binaire statique écrit en Go. Il est disponible sous forme d' | ||
| Ligne 44: | Ligne 44: | ||
| </ | </ | ||
| - | Il faut configurer l' | + | Modifier la configurer l' |
| - | + | ||
| - | <file > | + | |
| - | global: | + | |
| - | # 4 relevés par minutes | + | |
| - | scrape_interval: | + | |
| + | <file YAML> | ||
| + | ... | ||
| scrape_configs: | scrape_configs: | ||
| - | - job_name: | + | ... |
| - | static_configs: | + | |
| - | - targets: [' | + | static_configs: |
| + | - targets: [" | ||
| </ | </ | ||
| + | |||
| + | Ici un nouveau job intitulé " | ||
| + | |||
| + | ===== Collecteurs ===== | ||
| + | |||
| + | Depuis les versions 1.0.0 et supérieures les collecteurs peuvent être désactivés par défaut, on active alors seulement les collecteurs utiles pour l' | ||
| + | |||
| + | |||
| + | ===== Troubleshooting ===== | ||
| + | |||
| + | Lorsque node-exporter est installé dans un conteneur, malgré le montage lié avec le pseudo système de fichier /proc de l’hôte, les valeurs retournées pour les métriques réseau ne sont pas celles de l’hôte mais celles du conteneur. | ||
| + | |||
| + | Cette problématique est signalé dans cet article https:// | ||
| + | |||
| + | Pour que node-exporter puisse exporter les métriques des interfaces de l’hôte et non celle du conteneur, il doit utiliser le **type de réseau hôte**. (A propos des réseaux Docker voir la note [[sysadmin: | ||
| + | |||
| + | <file YAML> | ||
| + | version: " | ||
| + | |||
| + | services: | ||
| + | node-exporter: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | network_mode: | ||
| + | . . . | ||
| + | </ | ||
| + | |||
| + | ===== Les collecteurs ===== | ||
| + | |||
| + | Par défaut de nombreux collecteurs sont actifs. On peut faire le choix inverse: désactiver l' | ||
| + | |||
| + | <code YAML docker-compose.yml> | ||
| + | version: " | ||
| + | |||
| + | services: | ||
| + | node-exporter: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | network_mode: | ||
| + | pid: host | ||
| + | restart: unless-stopped | ||
| + | environment: | ||
| + | volumes: | ||
| + | - / | ||
| + | - / | ||
| + | - /:/ | ||
| + | command: | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | - --collector.netclass | ||
| + | - --collector.netdev | ||
| + | - --collector.netstat | ||
| + | </ | ||
| + | |||
| + | ==== Collecteur textfile ==== | ||
| + | |||
| + | Le collecteur textfile est comparable au Pushgateway en cela qu'il permet d' | ||
| + | |||
| + | Pour utiliser le collecteur textfile, définir l' | ||
| + | |||
| + | < | ||
| + | Le timestamp n'est pas suporté, pour ajouter un horodatage: | ||
| + | <code bash> | ||
| + | echo my_batch_job_completion_time $(date +%s) > / | ||
| + | mv / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Pour définir un rôle statique à la machine, utiliser les labels: | ||
| + | <code bash> | ||
| + | echo ' | ||
| + | mv / | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # Création d'un fichier statique pour test | ||
| + | mkdir / | ||
| + | cd / | ||
| + | echo ' | ||
| + | |||
| + | # On vérifie que le fichier est lisible depuis le conteneur | ||
| + | docker-compose exec node-exporter /bin/sh | ||
| + | |||
| + | cat / | ||
| + | node_ufw_status{ service=" | ||
| + | |||
| + | exit | ||
| + | </ | ||
| + | |||
| + | ==== Collecteur systemd ==== | ||
| + | |||
| + | Le collecteur **systemd **ne remonte correctement les métriques que lorsque le conteneur s' | ||
| + | |||
| + | <file YAML > | ||
| + | version: " | ||
| + | |||
| + | services: | ||
| + | node-exporter: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | network_mode: | ||
| + | pid: host | ||
| + | user: root | ||
| + | restart: unless-stopped | ||
| + | environment: | ||
| + | volumes: | ||
| + | - / | ||
| + | - / | ||
| + | - /:/ | ||
| + | - / | ||
| + | command: | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | - ' | ||
| + | </ | ||
| + | |||
| + | Via le collecteur systemd on peut récupérer des métriques concernant les services existants sur le système. Attention pour l' | ||
| + | |||
| + | <code bash> | ||
| + | # on désactive le pare-feu | ||
| + | sudo ufw disable | ||
| + | |||
| + | # On affiche l' | ||
| + | sudo ufw status | ||
| + | État : inactif | ||
| + | |||
| + | # L" | ||
| + | systemctl status ufw.service | ||
| + | ● ufw.service - Uncomplicated firewall | ||
| + | | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | La métrique exportée par le collecteur systemd indiquera que l' | ||
| ===== Références ===== | ===== Références ===== | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||