Prometheus Setup Guide

1. Prometheus Node Exporter einrichten

1.1 Download und Installation

cd ~
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
cp node_exporter-*/node_exporter /usr/local/bin/
        

1.2 Erstellen Sie den Prometheus-Benutzer

useradd --no-create-home --shell /bin/false prometheus
chown prometheus:prometheus /usr/local/bin/node_exporter
        

1.3 Erstellen Sie die Systemd-Service-Datei

echo "[Unit]
Description=Node Exporter
After=network.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/node_exporter.service
        

1.4 Starten Sie den Node Exporter und setzen Sie ihn auf Autostart

systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
        

1.5 Ändern Sie Ihre prometheus.yml

Fügen Sie die folgende Zeile zu Ihrer prometheus.yml-Datei hinzu, um den Node Exporter hinzuzufügen:

scrape_configs:
  - job_name: 'node_exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['<your-server-ip>:9100']
        

2. Prometheus Pushgateway einrichten

2.1 Download und Installation

cd ~
wget https://github.com/prometheus/pushgateway/releases/download/v1.6.0/pushgateway-1.6.0.linux-amd64.tar.gz
tar xvfz pushgateway-*.tar.gz
cp pushgateway-*/pushgateway /usr/local/bin/
        

2.2 Setzen Sie die Besitzrechte für den Prometheus-Benutzer

chown prometheus:prometheus /usr/local/bin/pushgateway
        

2.3 Erstellen Sie die Systemd-Service-Datei

echo "[Unit]
Description=Prometheus Push Gateway
After=network.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/pushgateway

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/prometheus-pushgateway.service
        

2.4 Starten Sie den Pushgateway und setzen Sie ihn auf Autostart

systemctl daemon-reload
systemctl start prometheus-pushgateway
systemctl enable prometheus-pushgateway
        

2.5 Ändern Sie Ihre prometheus.yml

Fügen Sie die folgende Zeile zu Ihrer prometheus.yml-Datei hinzu, um den Pushgateway hinzuzufügen:

scrape_configs:
  - job_name: 'pushgateway'
    honor_labels: true
    static_configs:
      - targets: ['<your-server-ip>:9091']
        

3. Verwendung des Pushgateways

Hier sind Beispiele, wie man den Pushgateway in PHP, JavaScript und der Linux CLI verwendet:

3.1 PHP Beispiel

function createMetric($key, $value) {
    $data = "$key $value";
    $url = "http://localhost:9091/metrics/job/some_job";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $server_output = curl_exec($ch);
    curl_close($ch);
    return $server_output;
}

$response = curlPostMetric("some_metric", "3.14");
        

3.2 JavaScript Beispiel

const axios = require('axios');

async function axiosPostMetric(key, value) {
    const data = `${key} ${value}`;
    const url = "http://localhost:9091/metrics/job/some_job";
    try {
        const response = await axios.post(url, data);
        console.log(response.data);
    } catch (error) {
        console.log(error);
    }
}

axiosPostMetric("some_metric", "3.14");
        

3.3 Linux CLI Beispiel

echo "some_metric 3.14" | curl --data-binary @- http://<your-server-ip>:9091/metrics/job/some_job
        

In diesen Beispielen wird angenommen, dass der Pushgateway auf der IP-Adresse Ihres Servers läuft und auf Port 9091 hört, und dass es einen Job namens 'some_job' gibt. 'some_metric' ist der Name der Metrik, die Sie senden möchten, und 3.14 ist der Wert dieser Metrik. Bitte ersetzen Sie diese Werte entsprechend Ihren Anforderungen.