{{indexmenu_n>20}}
# Systèmes d'exploitation
On veut collecter des métriques systèmes (CPU, RAM, disque, réseau, etc.) sur les différentes machines virtuelles et physiques. Pour cela on va utiliser le [[https://github.com/prometheus/node_exporter|Prometheus Node Exporter]], qui est un *exporter* officiellement maintenu par Prometheus et qui exporte une très grande quantité de métriques système.
===== Installation =====
Pour installer le //node_exporter//, on fait simplement
```bash
apt-get install prometheus-node-exporter
```
On peut vérifier que le service est bien activé et fonctionne avec `systemctl status prometheus-node-exporter`
Si on souhaite une version plus récente de *l'exporter* que celle dans les *repositories* Debian (par exemple si on est encore sur Debian 9) on peut simplement remplacer le binaire (se trouvant de base dans `/usr/bin/prometheus-node-exporter`) par une version récupérées dans les [[https://github.com/prometheus/node_exporter/releases|Release github]].
===== Sécurisation =====
Le //node-exporter// va exposer des métriques sur le port 9100 de la machine. Ceci signifie que n'importe qui peut récupérer les métriques du serveur. Il est donc nécessaire de configurer du filtrage pour n'autoriser que l'IP de notre serveur de monitoring.
Vérifier qu'UFW a [[technique:adminsys:secu:firewall|bien été configuré]].
Rajouter une règle sur un UFW non configuré bloquera entièrement l'accès au serveur ! Si la commande `ufw status` (en `root`) ne renvoie rien, alors UFW n'est pas configuré, il faut absolument le faire avant.
Ajouter la règle suivante :
```bash
ufw allow proto tcp from to any port 9100
ufw allow proto tcp from to any port 9100
```
===== Configuration serveur =====
Du côté de `vmagent`, il faut ajouter une entrée dans le [[https://gitlab.utc.fr/picasoft/projets/services/monitoring/-/blob/master/vmagent-prom.yml|fichier de configuration Prometheus]]. Pour cela on va ajouter une entrée dans la section ''scrape_config'' du fichier :
```yaml
scrape_configs:
- job_name: 'pica01'
static_configs:
- targets:
- 'pica01.picasoft.net:9100'
relabel_configs:
- source_labels: [__address__]
regex: '.*'
target_label: instance
replacement: 'pica01'
```
Le *relabeling* permet simplement d'éviter que le nom de domaine et que l'hôte se retrouvent dans le label `instance` : on ne garde que `pica01`.
Il suffit enfin de redémarrer `vmagent` sur la machine qui le fait tourner pour prendre en compte la nouvelle configuration.
Le dashboard Grafana s'adapte automatiquement en proposant les machines ajoutées dans la configuration.