Prometheus è un sistema di monitoraggio open source che consente di raccogliere metriche da qualsiasi sistema di destinazione configurato. Prometheus implementa un modello di dati multidimensionale con query potenti, ottima visualizzazione, avvisi precisi e viene fornito con molte integrazioni.
Prometheus è stato originariamente creato da SoundCloud nel 2012, ma ora è diventato un progetto open source indipendente gestito in modo indipendente dalla comunità open source:tutti i componenti sono disponibili con la licenza Apache 2 su Github.
In questo tutorial, ti mostrerò come installare e configurare Prometheus e node_exporter. Installeremo il sistema di monitoraggio Prometheus e quindi configureremo node_exporter per raccogliere le metriche dal server. Utilizzeremo l'ultimo server CentOS 8 per questa guida tutorial.
Prerequisiti
- Server CentOS 8
- Privilegi di root
Cosa faremo?
- Crea un nuovo utente e scarica Prometheus
- Configura Prometheus come servizio Systemd
- Configura Firewalld
- Installa e configura node_exporter
- Aggiungi node_exporter al server Prometheus
- Test
Passaggio 1:crea un nuovo utente e scarica Prometheus
In questo tutorial, il servizio Prometheus verrà eseguito come utente non root. Quindi dobbiamo creare un nuovo utente non root sul sistema. Creeremo un nuovo utente chiamato "prometheus" e tutti i servizi prometei verranno eseguiti sotto l'utente prometeus.
Crea un nuovo utente "prometheus" usando il comando seguente.
useradd -m -s /bin/bash prometheus
È stato creato un nuovo utente. Ora accedi all'utente e scarica prometheus usando il comando wget.
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
Estrarre il file prometheus-xx.x.x.tar.gz e rinominare la directory in 'prometheus'.
tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/
Successivamente, crea una nuova directory "data" che verrà utilizzata come memoria "tsdb".
mkdir -p ~/prometheus/data
Ora il prometheus viene scaricato sul server e tutti i file di prometheus si trovano nella directory '/home/prometheus/prometheus'.
Passaggio 2 - Configura Prometheus come servizio Systemd
In questo passaggio, configureremo prometheus come servizio systemd. Creeremo un nuovo file di servizio prometheus.service nella directory '/etc/systemd/system'.
Vai alla directory '/etc/systemd/system/' e crea un nuovo file di servizio 'prometheus.service' usando l'editor vim.
cd /etc/systemd/system/
vim prometheus.service
Incolla la configurazione del servizio prometheus di seguito.
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
Salva ed esci.
Ora ricarica il sistema systemd usando il comando systemctl di seguito.
systemctl daemon-reload
Avvia il servizio prometheus e abilitalo all'avvio ogni volta all'avvio del sistema.
systemctl start prometheus
systemctl enable prometheus
Il prometheus è ora in esecuzione come servizio systemd, controllalo usando il comando seguente.
systemctl status prometheus
Assicurati di ottenere lo stato del servizio "In esecuzione".
Oppure controllalo usando il comando netstat di seguito.
netstat -plntu
Assicurati di ottenere il risultato come mostrato di seguito.
Prometheus è in esecuzione per impostazione predefinita sotto la porta '9090'.
Passaggio 3 - Configura Firewalld
Se stai utilizzando Firewalld sul tuo sistema, aggiungi la porta 9090 all'elenco delle porte di Firewalld.
Apri la porta 9090 per l'accesso Prometheus utilizzando i comandi firewall-cmd di seguito.
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
Ora controlla le regole di firewalld.
firewall-cmd --list-all
E otterrai la porta TCP '9090' nell'elenco.
Quindi, apri il tuo browser web e digita l'indirizzo IP del server con la porta 9090.
http://10.5.5.15:9090/graph
Digita "prometheus_http_requests_total" nel campo della query e fai clic sul pulsante "Esegui".
E vedrai le richieste HTTP al server prometheus con tutte le informazioni sull'ora, il codice di stato HTTP e il metodo ecc.
Fase 4 - Installa e configura node_exporter
node_exporter è un esportatore di metriche macchina che può essere eseguito su sistemi *Nix e Linux.
In questo tutorial, installeremo node_exporter sullo stesso server prometheus. Monitoreremo e otterremo la metrica del server prometheus.
Accedi all'utente prometheus e scarica 'node_exporter' usando il comando wget.
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
Estrarre node_exporter e rinominare la directory in 'node_exporter'.
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
Successivamente, creeremo un nuovo file di servizio per node_exporter. Torna alla shell di root, vai alla directory '/etc/systemd/system' e crea un nuovo file di servizio node_exporter 'node_exporter.service' usando vim.
cd /etc/systemd/system/
vim node_exporter.service
Incolla la seguente configurazione.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Salva ed esci.
Ora ricarica il sistema systemd.
systemctl daemon-reload
Quindi avvia il servizio node_exporter e abilitalo per l'avvio ogni volta all'avvio del sistema.
systemctl start node_exporter
systemctl enable node_exporter
Il servizio node_exporter è ora in esecuzione sul server:verificalo utilizzando il comando netstat.
systemctl status node_exporter
netstat -plntu
E otterrai che il node-exporter sia attivo e funzionante sulla porta predefinita 9100.
Passaggio 5:aggiungi node_exporter al server Prometheus
In questo passaggio, aggiungeremo node_exporter al server prometheus. Accedi all'utente prometheus e modifica il file di configurazione 'prometheus.yml'.
Accedi all'utente prometheus.
su - prometheus
Vai alla directory 'prometheus' e modifica il file di configurazione 'prometheus.yml'.
cd ~/prometheus/
vim prometheus.yml
Nella riga 'scrape_config', aggiungi il nuovo job_name node_exporter copiando e incollando la configurazione di seguito.
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Salva ed esci.
Ora riavvia il servizio Prometeo.
systemctl restart prometheus
Il node_exporter è stato aggiunto al server prometheus.
Fase 6 - Test di Prometheus e node_exporter
Apri il tuo browser web e quindi inserisci l'indirizzo IP del server.
http://10.5.5.15:9090/
Digita il raccoglitore di meminfo 'node_memory_MemAvailable_bytes' nel campo della query e fai clic sul pulsante 'Esegui'.
E otterrai il risultato come di seguito.
Otterrai la memoria disponibile sull'istanza del server "localhost:9100" e il nome_lavoro "node-exporter".
Oppure, se vuoi accedere ai dati grezzi di node_exporter, devi aggiungere la porta node_exporter 9100 al firewalld.
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
Quindi digita l'indirizzo IP del server con la porta 9100.
http://10.5.5.15:9100/metrics
E otterrai i dati grezzi node_exporter come mostrato di seguito.
Di conseguenza, l'installazione e la configurazione del sistema di monitoraggio prometheus con node_exporter su CentOS 8 Server sono state completate con successo.