Prometheus is an open-source systems monitoring and alerting toolkit[1] released in 2012. Prometheus design is focused to collect and process metrics, not as an event logging system for logs.[2]
brew install prometheus && brew services start prometheus
brew install node_exporter
. Connect to: http://localhost:9101/metricsdocker pull prom/prometheus && docker run -p 9090:9090 prom/prometheus
[3] and connect to http://localhost:9090/docker pull prom/node-exporter
although it's not recommended to deploy it as a Docker container because it requires access to the host system[4]/etc/prometheus/prometheus.yml
/usr/local/etc/prometheus.args
prometheus
promtool
sudo nano /etc/prometheus/prometheus.yml
Your configuration file should now look like this:
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090']
sudo systemctl start prometheus
sudo systemctl daemon-reload prometheus
sudo systemctl status prometheus
docker pull prom/node-exporter && docker run prom/node-exporter
To expand Prometheus beyond metrics about itself only, we'll install an additional exporter called Node Exporter. Node Exporter provides detailed information about the system, including CPU, disk, and memory usage.
cd ~ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz
sha256sum node_exporter-0.15.1.linux-amd64.tar.gz
tar xvf node_exporter-0.15.1.linux-amd64.tar.gz
sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
rm -rf node_exporter-0.15.1.linux-amd64.tar.gz node_exporter-0.15.1.linux-amd64
Now that you've installed Node Exporter, let's test it out by running it before creating a service file for it so that it starts on boot.
The steps for running Node Exporter are similar to those for running Prometheus itself. Start by creating the Systemd service file for Node Exporter and copy the following content into the service file:
sudo vi /etc/systemd/system/node_exporter.service
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl status node_exporter
sudo systemctl enable node_exporter
Because Prometheus only scrapes exporters which are defined in the scrape_configs portion of its configuration file, we'll need to add an entry for Node Exporter, just like we did for Prometheus itself.
At the end of the scrape_configs block, add a new entry called node_exporter.
sudo nano /etc/prometheus/prometheus.yml
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100']
Finally, restart Prometheus to put the changes into effect and verify status