Prometheus: Het ophalen van statistieken van Linux
Hoe Linux-serverstatistieken op te halen in Prometheus met Node Exporter
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Prometheus cloud oplossing die tal van voordelen biedt, waaronder:
Alert Managerinbegrepen om meldingen te sturen naarSlack,Mattermost,PagerDuty, enz.- Toegewijde e-mailserver om onbeperkte e-mailmeldingen te verzenden.
BlackboxomHTTP,ICMP,TCPen meer te testen.- Eenvoudige configuratie met online configuratiebestand editor.
- Moeiteloze updates met slechts één klik.
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Prometheus cloud hosting oplossing van Stackhero te proberen!
Wat is Prometheus Node Exporter
Node Exporter is software die u kunt installeren op *NIX-kernels (Linux, OpenBSD, FreeBSD of Darwin) om systeemstatistieken voor Prometheus bloot te leggen. Het is een essentieel onderdeel voor het monitoren van serverprestaties en de gezondheid van de infrastructuur.
In Prometheus-terminologie fungeert Node Exporter als een exporter en wordt toegevoegd als een doel in uw Prometheus-configuratie. Prometheus maakt verbinding met Node Exporter via TCP-poort 9100 via HTTP op regelmatige intervallen om statistieken op te halen.
Samengevat stelt Node Exporter u in staat om een Linux-gebaseerd systeem te monitoren. Voor Windows-systemen kunt u de Windows Exporter gebruiken.
Groot overzicht van Stackhero voor Prometheus
Installeer Prometheus Node Exporter op een Linux-server
U kunt Node Exporter downloaden van de GitHub-releasespagina. Het wordt gedistribueerd als een binaire die direct op uw systeem draait. Omdat het is ontworpen om continu te draaien, wordt aanbevolen om het zo te configureren dat het automatisch start wanneer uw server opstart.
Standaard opent Node Exporter poort 9100 voor de wereld zonder authenticatie of encryptie. Het wordt sterk aanbevolen om zowel authenticatie als TLS-encryptie toe te voegen (zie hieronder) en een firewall in te stellen om toegang tot poort 9100 te beperken, zodat alleen uw Prometheus-server of andere geautoriseerde IP-adressen verbinding kunnen maken.
Hoe Prometheus Node Exporter op Ubuntu te installeren
U kunt deze stappen op Ubuntu volgen:
# Ga naar https://github.com/prometheus/node_exporter/releases om het laatste versienummer te krijgen.
node_exporter_version="1.2.0"
node_exporter_release="linux-amd64"
# Download en installeer node_exporter
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v${node_exporter_version}/node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz
tar xvfa node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz
sudo mv node_exporter-${node_exporter_version}.${node_exporter_release}/node_exporter /usr/local/bin/
rm -rf node_exporter-${node_exporter_version}.${node_exporter_release} node_exporter-${node_exporter_version}.${node_exporter_release}.tar.gz
# Maak een gebruiker "node_exporter"
sudo useradd -rs /bin/false node_exporter
# Maak een systemd-service om node_exporter automatisch bij opstarten te starten
sudo bash -c 'cat << EOF > /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter --web.config=/etc/prometheus_node_exporter/configuration.yml
[Install]
WantedBy=multi-user.target
EOF'
# Maak een configuratiemap en bestand
sudo mkdir -p /etc/prometheus_node_exporter/
sudo touch /etc/prometheus_node_exporter/configuration.yml
sudo chmod 700 /etc/prometheus_node_exporter
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter
sudo systemctl daemon-reload
sudo systemctl enable node_exporter
# Start de node_exporter-daemon en controleer de status
sudo systemctl start node_exporter
sudo systemctl status node_exporter
Op dit punt zou de node_exporter-binaire op uw server moeten draaien. Om te bevestigen dat het werkt, kunt u verbinding maken en controleren of het statistieken retourneert:
curl http://localhost:9100/metrics
Node Exporter opent poort 9100 naar het openbare netwerk. Dit betekent dat iedereen verbinding kan maken en uw serverstatistieken kan ophalen! U moet minimaal authenticatie en TLS-encryptie toevoegen (zie hieronder) en het wordt sterk aanbevolen om een firewall in te stellen om verzoeken naar poort 9100 van andere IP's dan uw Prometheus-server te blokkeren.
Hoe Prometheus Node Exporter op Debian te installeren
Het installatieproces voor Node Exporter op Debian is identiek aan de hierboven beschreven Ubuntu-methode. Volg gewoon dezelfde instructies.
Hoe Prometheus Node Exporter op andere systemen te installeren
De installatie stappen voor Node Exporter hangen af van het systeem dat u gebruikt. Hoewel gedetailleerde documentatie voor elk platform niet wordt verstrekt, omvat de basisprocedure het downloaden van de binaire die bij uw systeem past en het configureren om bij opstarten te starten.
Voeg authenticatie toe aan Prometheus Node Exporter
Standaard voert Node Exporter geen authenticatie uit, wat betekent dat iedereen de blootgestelde statistieken kan ophalen. Om toegang te beveiligen, kunt u basisauthenticatie voor een gebruiker toevoegen.
Een willekeurig wachtwoord genereren
Genereer een wachtwoord met de volgende commando's:
password=`openssl rand -base64 32`
passwordHashed=`echo ${password} | htpasswd -inBC 10 "" | tr -d ':'`
echo "Duidelijk wachtwoord om te bewaren voor Prometheus-server: ${password}"
Als u de
htpasswd-binaire niet heeft, kunt u deze op Debian/Ubuntu installeren metapt-get install --no-install-recommends apache2-utils.
Houd het duidelijke wachtwoord veilig, want u heeft het nodig bij het configureren van Prometheus.
De gebruiker toevoegen en Node Exporter opnieuw starten
Voeg de volgende regels toe aan het configuratiebestand om een gebruiker genaamd "prometheus" toe te voegen met de gegenereerde wachtwoordhash:
sudo cat << EOF >> /etc/prometheus_node_exporter/configuration.yml
basic_auth_users:
prometheus: ${passwordHashed}
EOF
# Herstart Node Exporter
sudo systemctl restart node_exporter
Controleer ten slotte of authenticatie correct werkt:
- Het uitvoeren van
curl http://localhost:9100/metricszou "Unauthorized" moeten retourneren. - Het uitvoeren van
curl -u prometheus:${password} http://localhost:9100/metricszou de lijst met statistieken moeten retourneren.
Voeg TLS-encryptie toe aan Prometheus Node Exporter
Standaard versleutelt Node Exporter geen communicatie. Dit betekent dat inloggegevens, inclusief het eerder gedefinieerde wachtwoord, in platte tekst worden verzonden. Om communicatie te beveiligen, kunt u TLS-encryptie inschakelen zoals volgt.
TLS-certificaten maken
Voer de volgende commando's uit om een TLS-certificaat en sleutel te maken:
# Maak TLS-certificaat
cd /tmp
sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \
-keyout /etc/prometheus_node_exporter/tlsCertificate.key \
-out /etc/prometheus_node_exporter/tlsCertificate.crt \
-subj "/CN=`hostname`" \
-addext "subjectAltName = DNS:`hostname`"
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter
De configuratie bijwerken
Voeg de volgende regels toe aan het configuratiebestand om TLS-instellingen toe te voegen en herstart vervolgens Node Exporter:
sudo cat << 'EOF' >> /etc/prometheus_node_exporter/configuration.yml
tls_server_config:
cert_file: /etc/prometheus_node_exporter/tlsCertificate.crt
key_file: /etc/prometheus_node_exporter/tlsCertificate.key
EOF
# Herstart Prometheus Node Exporter
sudo systemctl restart node_exporter
U kunt verifiëren dat TLS actief is door verbinding te maken via HTTPS met het volgende commando:
curl -k -u prometheus:${password} https://localhost:9100/metrics
Merk op dat deze methode geen CA-certificaat gebruikt, dus u moet de "-k" optie aan cURL doorgeven om certificaatverificatie te omzeilen.
Configureer Prometheus-server om gegevens van Node Exporter op te halen
Nadat u Node Exporter heeft geïnstalleerd en beveiligd, configureert u uw Prometheus-server om regelmatig statistieken op te halen.
Op Stackhero selecteert u uw Prometheus-service en gaat u naar de "Prometheus-configuratie" URL. Voeg vervolgens het volgende toe aan uw scrape_configs sectie:
scrape_configs:
- job_name: "My servers pool"
static_configs:
- targets: [ "<yourLinuxServerDomain>:9100" ]
basic_auth:
username: "prometheus"
password: "<password>"
scheme: https
tls_config:
insecure_skip_verify: true
# Relabeling "instance" om het ":9100" deel te verwijderen
relabel_configs:
- source_labels: [__address__]
target_label: instance
regex: '([^:]+)(:[0-9]+)?'
replacement: '${1}'
Sla het bestand op en controleer uw Prometheus-logs om te bevestigen dat het succesvol is herladen (u kunt de logs bekijken vanaf het Stackhero-dashboard door uw Prometheus-service te selecteren en op het tabblad "Logs" te klikken).
Controleer ten slotte of Prometheus statistieken ophaalt door toegang te krijgen tot de Prometheus UI op het Stackhero-dashboard en te navigeren naar Status > Targets. Uw Linux-server zou in de doel lijst moeten verschijnen als UP.
Het doel "myLinuxServer" is UP
Toon gegevens op Prometheus
Om de statistieken te bekijken die zijn opgehaald van Node Exporter, logt u in op Prometheus via het Stackhero-dashboard met de "Prometheus UI" URL of direct op https://<prometheusDomain>/.
In het "Expression" veld, typ node_memory_MemTotal_bytes en druk op enter. Als alles correct is geconfigureerd, ziet u het totale RAM-geheugen van de server weergegeven in bytes.
De totale hoeveelheid RAM voor deze server is 4068794368 bytes, wat 3.78GB is
Configureer Grafana om Prometheus-gegevens weer te geven die zijn opgehaald van Node Exporter
Grafana kan moeiteloos dashboards genereren op basis van Prometheus-gegevens. Voor gedetailleerde instructies over het configureren van Grafana om Prometheus-gegevens weer te geven, raadpleegt u Grafana's documentatie.
Voorbeeld van een dashboard gegenereerd door Grafana, gebaseerd op Prometheus Node Exporter-gegevens