Difference between revisions of "Pushgateway"
Jump to navigation
Jump to search
Line 87: | Line 87: | ||
# RHEL/Fedora | # RHEL/Fedora | ||
+ | |||
+ | ## Using EPEL repo | ||
``` | ``` | ||
sudo dnf -y update | sudo dnf -y update | ||
Line 98: | Line 100: | ||
sudo dnf -y install node_exporter | sudo dnf -y install node_exporter | ||
sudo systemctl enable --now node_exporter | sudo systemctl enable --now node_exporter | ||
+ | sudo systemctl status node_exporter | ||
+ | ``` | ||
+ | |||
+ | ## BASH Script | ||
+ | ``` | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Update the system | ||
+ | sudo dnf -y update | ||
+ | |||
+ | # Download Node Exporter | ||
+ | wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz | ||
+ | |||
+ | # Extract the downloaded tar.gz file | ||
+ | tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz | ||
+ | |||
+ | # Move the Node Exporter binary to the /usr/local/bin directory | ||
+ | sudo mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin | ||
+ | |||
+ | # Create a new systemd service file for Node Exporter | ||
+ | echo "[Unit] | ||
+ | Description=Node Exporter | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | User=node_exporter | ||
+ | ExecStart=/usr/local/bin/node_exporter | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=default.target" | sudo tee /etc/systemd/system/node_exporter.service | ||
+ | |||
+ | # Reload the systemd daemon to read the new service | ||
+ | sudo systemctl daemon-reload | ||
+ | |||
+ | # Start the Node Exporter service | ||
+ | sudo systemctl start node_exporter | ||
+ | |||
+ | # Enable the Node Exporter service to start on boot | ||
+ | sudo systemctl enable node_exporter | ||
+ | |||
+ | # Verify that Node Exporter is running | ||
sudo systemctl status node_exporter | sudo systemctl status node_exporter | ||
``` | ``` |
Revision as of 19:39, 20 June 2024
https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-pushgateway
https://www.metricfire.com/blog/prometheus-pushgateways-everything-you-need-to-know/
https://github.com/prometheus/pushgateway
echo "some_metric 3.14" | curl --data-binary @- https://pushgateway.example/metrics/job/some_job
As node collector
https://github.com/prometheus/node_exporter/issues/279
curl -s http://localhost:9256/metrics | grep -v "\(\(^\| \)go_\|http_request\|http_requests\|http_response\|process_\)" | curl --data-binary @- http://pushgateway.example.com:9091/metrics/job/node/instance/<INSTANCE_NAME>
Using Cron job to push every 30 seconds
sudo nano /usr/local/bin/prompush
#!/bin/bash set -eu curl -s http://localhost:9100/metrics | grep -v "\(\(^\| \)go_\|http_request\|http_requests\|http_response\|process_\)" | curl --data-binary @- https://pushgateway.example.com/metrics/job/c1e52efa-af1c-11ee-be01-e78fa8f1ca96-linuxnode/instance/lxd0
sudo chmod +x /usr/local/bin/prompush
/etc/cron.d/pushgateway
* * * * * nobody /usr/local/bin/prompush * * * * * nobody sleep 30; /usr/local/bin/prompush
Ingress NGINX Annotations
htpasswd -c auth default kubectl create secret generic pushgateway-ingress-basic-auth --from-file=auth
annotations: nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/8,192.168.0.0/16" nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/auth-secret: pushgateway-ingress-basic-auth # nginx.ingress.kubernetes.io/server-snippet: | # satisfy any; # allow 66.220.144.0/20; # deny all;
And update script to use auth
#!/bin/bash set -eu basic="default:mysecret" curl -s http://localhost:9100/metrics | grep -v "\(\(^\| \)go_\|http_request\|http_requests\|http_response\|process_\)" | curl --data-binary @- https://pushgateway.example.com/metrics/job/c1e52efa-af1c-11ee-be01-e78fa8f1ca96-linuxnode/instance/lxd0 -u ${basic}
trigger on no data
Ubuntu
Install exporter on Ubuntu
sudo apt update && sudo apt install -y prometheus-node-exporter
sudo vim /usr/local/bin/insights-push
#!/bin/bash curl -s http://localhost:9100/metrics | grep -v "\(\(^\| \)go_\|http_request\|http_requests\|http_response\|process_\)" | curl --data-binary @- https://pushgateway.example.com/metrics/job/host/instance/$(hostname)
sudo chmod +x /usr/local/bin/insights-push
sudo vim /etc/cron.d/insights-push
* * * * * nobody /usr/local/bin/insights-push
RHEL/Fedora
Using EPEL repo
sudo dnf -y update
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf -y install node_exporter sudo systemctl enable --now node_exporter sudo systemctl status node_exporter
BASH Script
#!/bin/bash # Update the system sudo dnf -y update # Download Node Exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz # Extract the downloaded tar.gz file tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz # Move the Node Exporter binary to the /usr/local/bin directory sudo mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin # Create a new systemd service file for Node Exporter echo "[Unit] Description=Node Exporter After=network.target [Service] User=node_exporter ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=default.target" | sudo tee /etc/systemd/system/node_exporter.service # Reload the systemd daemon to read the new service sudo systemctl daemon-reload # Start the Node Exporter service sudo systemctl start node_exporter # Enable the Node Exporter service to start on boot sudo systemctl enable node_exporter # Verify that Node Exporter is running sudo systemctl status node_exporter