Prometheus
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]. Grafana is usually used to produce dashboards.
Contents
Install Prometheus
- Linux:
Ubuntu: apt install prometheus
- How To Install Prometheus in Linux from binaries
- macOS:
brew install prometheus && brew services start prometheus
brew install node_exporter
. Connect to: http://localhost:9101/metrics
- Using Docker containers:
docker 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]
Configuration files
- Linux:
/etc/prometheus/prometheus.yml
- macOS:
/usr/local/etc/prometheus.args
Binaries
Configuration
- In the /etc/prometheus directory, use nano or your favorite text editor to create a configuration file named prometheus.yml. For now, this file will contain just enough information to run Prometheus for the first time.
sudo nano /etc/prometheus/prometheus.yml
- In the global settings, define the default interval for scraping metrics. Note that Prometheus will apply these settings to every exporter unless an individual exporter's own settings override the global.
- This scrape_interval value tells Prometheus to collect metrics from its exporters every 15 seconds, which is long enough for most exporters. Now, add Prometheus itself to the list of exporters to scrape from with the following scrape_configs directive:
- Prometheus uses the job_name to label exporters in queries and on graphs, so be sure to pick something descriptive here. And, as Prometheus exports important data about itself that you can use for monitoring performance and debugging, we've overridden the global scrape_interval directive from 15 seconds to 5 seconds for more frequent updates. Lastly, Prometheus uses the static_configs and targets directives to determine where exporters are running. Since this particular exporter is running on the same server as Prometheus itself, we can use localhost instead of an IP address along with the default port, 9090.
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']
Basic Prometheus Operations
- Start Prometheus: :
sudo systemctl start prometheus
- Reload systemd: :
sudo systemctl daemon-reload prometheus
- Verify the service's status: :
sudo systemctl status prometheus
- Delete all data:
Enable --web.enable-admin-api
and execute:
Activities
- Install Prometheus in Linux, /Run Prometheus in Linux/ and connect to graphical interface http://localhost:9090/graph
- Read Prometheus changelog: https://github.com/prometheus/prometheus/blob/master/CHANGELOG.md
- Read Stackoverflow prometheus questions: https://stackoverflow.com/questions/tagged/prometheus?tab=Frequent
- Export
dockerd
metrics to Prometheus: https://docs.docker.com/config/daemon/prometheus/, modify/etc/docker/daemon.json
Related terms
- PromQL
- Elasticsearch
- Exporters: Nginx (nginx-prometheus-exporter), Node exporter
- CNCF
- Cortex
- Loki
See also
- Prometheus: Prometheus installation,
9090
, storage, Prometheus exporters: Node exporter9100
, Blackbox exporter, Prometheus alertmanager (changelog), Prometheus versions, Prometheus Node exporter releases,promtool
,amtool, tsdb
,/etc/default/prometheus, /etc/prometheus/prometheus.yml, journalctl -u prometheus
,/etc/default/prometheus-node-exporter
, PromQL,alert:
, Prometheus Operator, Thanos, VictoriaMetrics, PushGateway, Prometheus API,values.yml
, Amazon Managed Service for Prometheus - Grafana, Grafana datasources, Grafana Alerting, Grafana installation, Grafana Labs, Grafana Changelog,
Grafana logs
,docker-compose.yml (Grafana)
, Grafana Loki, Grafana Tanka, StatsD and Graphite,grafana-cli
, Loki, LogQL, Grafana Enterprise, Grafana Cloud, Grafana alerts, Amazon Grafana, Grafana OnCall, Grafana Tempo, Grafana Mimir, Grafana agent, plugins, Terraform, Grafana dashboards,/etc/grafana/grafana.ini
, Grafana Pyroscope - Monitoring: Prometheus, Cacti, monit, munin, RRDtool, Zabbix, Netdata, Nagios, Check MK, Icinga, Pingdom, OpsGenie and Datadog, Opsgenie, PRTG, Checkmk
- Prometheus alertmanager with support for email, PagerDuty or OpsGenie
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy.
Source: https://en.wikiversity.org/wiki/Prometheus_monitoring
Advertising: