GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Prometheus sur Ubuntu 18.04

Prometheus est un système de surveillance et d'alerte open source très puissant adapté aux environnements dynamiques comme dans l'espace Cloud. Il s'agit d'un projet autonome maintenu par la communauté avec de nombreuses entreprises et organisations contribuant à son code source. La plupart des composants de Prometheus sont écrits en Go, ce qui les rend faciles à créer et à déployer en tant que binaires statiques. Vous aurez rarement besoin de compiler l'application à partir du code.

Prometheus est capable d'enregistrer n'importe quelle série chronologique purement numérique, à la fois pour les surveillances centrées sur les machines comme les systèmes Linux et pour la surveillance des architectures orientées services hautement dynamiques. Les outils de visualisation comme Grafana prennent en charge l'interrogation de Prometheus avec la source de données Grafana pour Prometheus incluse depuis Grafana 2.5.0.

Dans ce guide, nous expliquerons comment installer Prometheus sur le serveur Ubuntu 18.04.

Composants de Prometheus

L'écosystème Prometheus comprend divers composants qui, ensemble, fournissent un système complet de surveillance et d'alerte. La plupart des composants sont facultatifs et vous ne devez les installer qu'à la demande. Les principaux composants sont :

  • Serveur Prometheus :il récupère et stocke les données de séries chronologiques des systèmes et applications clients.
  • Exportateurs :utilisés pour exporter des métriques existantes à partir de systèmes tiers en tant que métriques Prometheus.
  • Un alertmanager utilisé pour gérer les alertes
  • Les bibliothèques clientes pour l'instrumentation du code d'application

Fonctionnalités de Prometheus

Les principales fonctionnalités de Prometheus sont :

  • un modèle de données multidimensionnel avec des données de séries chronologiques identifiées par le nom de la métrique et des paires clé/valeur
  • Il dispose d'un langage de requête très flexible pour tirer parti de son modèle multidimensionnel
  • Les nœuds de serveur unique sont autonomes et ne reposent pas sur un stockage distribué.
  • La collection de séries temporelles Prometheus utilise un modèle d'extraction sur le protocole HTTP
  • Il dispose d'une détection de service automatique des cibles et les fichiers de configuration peuvent être utilisés pour la même chose.
  • l'envoi de séries temporelles est pris en charge via une passerelle intermédiaire
  • Prometheus prend en charge plusieurs modes de représentation graphique et de tableau de bord

Installer Prometheus sur Ubuntu 18.04

Comme Prometheus est écrit en Go, ses packages sont distribués sous forme de binaires. Au moment d'écrire ces lignes, la dernière version de Prometheus est v2.2.1 . Vous pouvez vérifier les versions à partir de la page de téléchargement officielle. Les packages fournis sont pour les systèmes d'exploitation macOS, Linux et Windows, alors assurez-vous de télécharger le package approprié.

$ sudo su -
$ export RELEASE="2.2.1"
$ wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz

Après avoir téléchargé l'archive, extrayez-la à l'aide de tar.

$ tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
prometheus-2.2.1.linux-amd64/
prometheus-2.2.1.linux-amd64/consoles/
prometheus-2.2.1.linux-amd64/consoles/index.html.example
prometheus-2.2.1.linux-amd64/consoles/node-cpu.html
prometheus-2.2.1.linux-amd64/consoles/node-disk.html
prometheus-2.2.1.linux-amd64/consoles/node-overview.html
prometheus-2.2.1.linux-amd64/consoles/node.html
prometheus-2.2.1.linux-amd64/consoles/prometheus-overview.html
prometheus-2.2.1.linux-amd64/consoles/prometheus.html
prometheus-2.2.1.linux-amd64/console_libraries/
prometheus-2.2.1.linux-amd64/console_libraries/menu.lib
prometheus-2.2.1.linux-amd64/console_libraries/prom.lib
prometheus-2.2.1.linux-amd64/prometheus.yml
prometheus-2.2.1.linux-amd64/LICENSE
prometheus-2.2.1.linux-amd64/NOTICE
prometheus-2.2.1.linux-amd64/prometheus
prometheus-2.2.1.linux-amd64/promtool

Accédez au répertoire nouvellement créé à partir des extractions de fichiers.

# cd prometheus-${RELEASE}.linux-amd64/

Créer un groupe système Prometheus

Prometheus a besoin de son propre utilisateur et groupe pour s'exécuter.

# groupadd --system prometheus
# grep prometheus /etc/group
prometheus:x:999:

Créer un utilisateur système Prometheus

Maintenant que nous avons le groupe Prometheus, créons un utilisateur et attribuons-lui le groupe créé.

# useradd -s /sbin/nologin -r -g prometheus prometheus
# id prometheus
uid=999(prometheus) gid=999(prometheus) groups=999(prometheus)

Créer des répertoires de configuration et de données pour Prometheus

Prometheus a besoin d'un répertoire pour stocker ses données et ses fichiers de configuration. Nous allons créer /var/lib/prometheus pour les données et /etc/prometheus pour les fichiers de configuration.

# mkdir -p /etc/prometheus/{rules,rules.d,files_sd}  /var/lib/prometheus

Copiez les fichiers binaires Prometheus dans un répertoire de votre $PATH

Le répertoire préféré pour mettre des binaires tiers sur Linux est /usr/local/bin/ puisqu'il est dans $PATH par défaut et qu'il n'interfère pas avec les binaires du système.

# cp prometheus promtool /usr/local/bin/
# ls /usr/local/bin/
prometheus promtool

Copier les consoles et console_libraries dans le répertoire des fichiers de configuration

Les fichiers de la console et les bibliothèques doivent être placés sous /etc/prometheus/ répertoire.

# cp -r consoles/ console_libraries/ /etc/prometheus/

Créer le fichier d'unité systemd :

Ubuntu 18.04 utilise le système d'initialisation systemd par défaut, nous devons créer un fichier d'unité de service pour gérer le service Prometheus. Nous placerons le fichier sous /etc/systemd/system annuaire. Le nom du fichier doit se terminer par .service

# cat /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus systemd service unit
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

Notez que :

  • Nous associons le service à 0.0.0.0:9090 . Celui-ci sera accessible depuis toutes les interfaces réseau du serveur. Limitez-le en spécifiant l'adresse IP de l'interface que vous souhaitez utiliser, 127.0.0.1 pour l'accès local uniquement.
  • Le fichier de configuration spécifié est /etc/prometheus/prometheus.yml . Nous allons créer un fichier de configuration de base à utiliser ensuite.

Créer un fichier de configuration Prometheus

Cela sera placé dans /etc/prometheus/ répertoire.

# cat  /etc/prometheus/prometheus.yml
# Global config
global: 
 scrape_interval: 15s # Set the scrape interval to every 15 seconds.
 evaluation_interval: 15s # Evaluate rules every 15 seconds. 
 scrape_timeout: 15s # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.
scrape_configs:
 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
 - job_name: 'prometheus'

# metrics_path defaults to '/metrics'
 # scheme defaults to 'http'.

static_configs:
 - targets: ['localhost:9090']

Pour plus d'options de configuration, reportez-vous au guide de configuration officiel de Prometheus.

Modifier les autorisations de répertoire pour l'utilisateur et le groupe Prometheus

La propriété des fichiers et des données Prometheus doit être son utilisateur et son groupe.

# chown -R prometheus:prometheus /etc/prometheus/  /var/lib/prometheus/
# chmod -R 775 /etc/prometheus/ /var/lib/prometheus/

Démarrer et activer le service Prometheus

Démarrez et activez le service Prometheus pour qu'il démarre au démarrage.

# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service.

Vérifier l'état :

# systemctl status prometheus


Confirmez que le port 9090 est à l'écoute.

# netstat -tunlp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 2140/prometheus

# telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
If you have a firewall like ufw, Open port 9090 to be able to access it from a remote device.

# ufw allow 9090
Rule added
Rule added (v6)

Pour autoriser un réseau spécifique, utilisez :

# ufw allow from 192.168.10.0/24 to any port 9090
Rule added

# ufw status
Status: active

To Action From
-- ------ ----
9090 ALLOW Anywhere 
9090 ALLOW 192.168.10.0/24 
9090 (v6) ALLOW Anywhere (v6)

Pour obtenir l'interface Web, ouvrez http://ip:9090

La prochaine chose que vous voudrez peut-être jeter un œil est la configuration de divers exportateurs pour la collecte et la visualisation des métriques. Le meilleur endroit pour commencer est la page Instrumentation des exportateurs.


Ubuntu
  1. Comment installer Odoo sur Ubuntu

  2. Comment installer Maven sur Ubuntu

  3. Comment installer R sur Ubuntu 16.04

  4. Comment installer Go sur Ubuntu 18.04

  5. Comment installer Prometheus sur Ubuntu 20.04

Comment installer l'outil de surveillance Prometheus sur Ubuntu 20.04

Comment installer qt sur Ubuntu 20.04

Comment installer Prometheus sur Ubuntu 16.04 LTS

Comment installer Prometheus sur Ubuntu 20.04 LTS

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04