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/
useradd --no-create-home --shell /bin/false prometheus
chown prometheus:prometheus /usr/local/bin/node_exporter
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
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
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']
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/
chown prometheus:prometheus /usr/local/bin/pushgateway
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
systemctl daemon-reload
systemctl start prometheus-pushgateway
systemctl enable prometheus-pushgateway
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']
Hier sind Beispiele, wie man den Pushgateway in PHP, JavaScript und der Linux CLI verwendet:
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");
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");
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.