Node Monitoring
Installation of Prometheus and Node Exporter
In this guide, you will:
- Start up a Node Exporter on
localhost
- Start up a Prometheus instance on
localhost
that's configured to scrape metrics from the running Node Exporter
wget https://github.com/prometheus/prometheus/releases/download/v*/prometheus-*.*-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*
Copy tmp config to etc
/tmp/prometheus-2.31.1.linux-amd64# cp /tmp/prometheus-2.31.1.linux-amd64/prometheus.yml /etc/prometheus
Create service file for Prometheus to run
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl restart prometheus.service
As you have dedicated monitoring system. It is wise to add rules to firewall which will only allow prometheus server to scrape data.
sudo ufw allow from "ip-of-your-monitoring/32 proto tcp to any port 9100 comment "Prometheus Node Exporter"
sudo ufw allow from "ip-of-your-monitoring/32 proto tcp to any port 26660 comment "Prometheus Tendermint Exporter"
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100']
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
/// see whats been downloaded
ls
/// tar the folder
tar xvfz node_exporter-.amd64.tar.gz
/// cd into the folder
cd node_exporter-.amd64
/// run the instance to make sure it is working
./node_exporter
/// check to see scrapes are working
curl http://localhost:9100/metrics
/// check from another server
curl http://"ip-of-server-with-node-exporter":9100/metrics
/// rename the folder correctly
mv node_exporter-1.2.2.linux-amd64 node_exporter
/// if you need to find where the node_exporter binary is you can
sudo find / -name "node_exporter*”
/// set some UFW rules
sudo ufw allow from 134.209.186.97/32 proto tcp to any port 9100 comment "Prometheus Node Exporter"
sudo ufw allow from 134.209.186.97/32 proto tcp to any port 26660 comment "Prometheus Tendermint Exporter"
sudo nano /lib/systemd/system/node_exporter.service
/// inside the file
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=monitoring
Group=monitoring
Type=simple
ExecStart=/home/monitoring/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start node_exporter.service
Some useful commands
ps aux | grep prometheus
ufw status numbered
ufw delete RULE_NUMBER
Last modified 6mo ago