Difference between revisions of "Prometheus"
Jump to navigation
Jump to search
(41 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | [[wikipedia:Prometheus (software)|Prometheus]] is an open-source systems [[monitoring]] and [[alerting]] toolkit<ref>https://prometheus.io/docs/introduction/overview/</ref> released in [[2012]]. Prometheus design is focused to [[collect]] and process metrics, not as an event logging system for logs.<ref>https://prometheus.io/docs/introduction/faq/#how-to-feed-logs-into-prometheus?</ref>. [[Grafana]] is usually used to produce [[dashboards]]. | + | [[wikipedia:Prometheus (software)|Prometheus]] is an open-source systems [[monitoring]] and [[alerting]] toolkit <ref>https://prometheus.io/docs/introduction/overview/</ref> released in [[2012]]. Prometheus design is focused to [[collect]] and process metrics, not as an event logging system for [[Prometheus logs|logs]].<ref>https://prometheus.io/docs/introduction/faq/#how-to-feed-logs-into-prometheus?</ref>. [[Grafana]] is usually used to produce [[dashboards]]. |
* https://prometheus.io/ | * https://prometheus.io/ | ||
== [[Prometheus Installation]]== | == [[Prometheus Installation]]== | ||
+ | * http://localhost:9090 | ||
+ | * [[Node exporter]]: [[curl -sSL http://localhost:9100/metrics]] | ||
+ | |||
+ | [[Kubernetes]] | ||
+ | * <code>[[helm repo add prometheus-community https://prometheus-community.github.io/helm-charts]]</code> | ||
+ | * <code>[[helm install myprometheus prometheus-community/prometheus]]</code> | ||
== Configuration files == | == Configuration files == | ||
* Linux: <code>[[/etc/prometheus/prometheus.yml]]</code> | * Linux: <code>[[/etc/prometheus/prometheus.yml]]</code> | ||
− | * macOS: <code>/usr/local/etc/prometheus.args </code> | + | * macOS: <code>[[/usr/local/etc/prometheus.args]]</code> |
+ | * [[Prometheus storage]]: <code>[[/var/lib/prometheus/]]</code> | ||
== Binaries == | == Binaries == | ||
Line 12: | Line 19: | ||
* <code>[[promtool]]</code> | * <code>[[promtool]]</code> | ||
* <code>[[tsdb]]</code> | * <code>[[tsdb]]</code> | ||
+ | |||
+ | == Alternatives == | ||
+ | * [[Thanos]] | ||
+ | * [[VictoriaMetrics]] | ||
+ | * [[Grafana Mimir]] (Mar 2022) | ||
== Configuration == | == Configuration == | ||
Line 19: | Line 31: | ||
* 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. | * 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 s'''crape_configs''' directive: | + | * 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 s'''crape_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]]'''. | * 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]]'''. | ||
Line 37: | Line 49: | ||
</pre> | </pre> | ||
− | ==Linux Basic Prometheus Operations== | + | == Linux Basic Prometheus Operations == |
− | * '''Start''' Prometheus: :<code>sudo systemctl start prometheus</code> | + | * '''Start''' Prometheus: :<code>[[sudo systemctl start prometheus]]</code> |
− | * '''Reload''' systemd: :<code>sudo systemctl daemon-reload prometheus</code> | + | * '''Reload''' systemd: :<code>[[sudo systemctl daemon-reload prometheus]]</code> |
− | * '''Verify''' the service's status: :<code>sudo systemctl status prometheus</code> | + | * '''Verify''' the service's status: :<code>sudo [[systemctl status prometheus]]</code> |
* Delete all data: | * Delete all data: | ||
Line 57: | Line 69: | ||
* [[Elasticsearch]] | * [[Elasticsearch]] | ||
* Exporters: [[Nginx]] ([https://github.com/nginxinc/nginx-prometheus-exporter nginx-prometheus-exporter]), [[Node exporter]] | * Exporters: [[Nginx]] ([https://github.com/nginxinc/nginx-prometheus-exporter nginx-prometheus-exporter]), [[Node exporter]] | ||
− | |||
* [[Cortex]], Prometheus as a service | * [[Cortex]], Prometheus as a service | ||
* [[Loki]] | * [[Loki]] | ||
Line 64: | Line 75: | ||
* <code>[[alert:]]</code> | * <code>[[alert:]]</code> | ||
* [[AWS CloudWatch Container Insights]] | * [[AWS CloudWatch Container Insights]] | ||
+ | * [[Amazon Managed Service for Prometheus]] | ||
+ | * [[Kubernetes Metrics Server]] | ||
+ | * [[Fluent Bit]] | ||
+ | * [[GitLab 12.5]] Automatically close GitLab issues with recovery alerts from [[Prometheus]] | ||
+ | * [[Prometheus-node-exporter Debian configuration file]] | ||
+ | * <code>[[/metrics]]</code> | ||
+ | * [[Amazon Managed Prometheus]] | ||
+ | * [[Google Cloud Managed Prometheus]] | ||
+ | * <code>[[level=error]] ... [[no space left on device]]</code> | ||
+ | * [[Prometheus API]] | ||
+ | * [[Logz.io]] | ||
== See also == | == See also == | ||
+ | * {{Prometheus alternatives}} | ||
* {{Prometheus}} | * {{Prometheus}} | ||
− | |||
* {{monitoring software}} | * {{monitoring software}} | ||
* {{TSDB}} | * {{TSDB}} | ||
Line 73: | Line 95: | ||
[[Category:Monitoring]] | [[Category:Monitoring]] | ||
[[Category:Prometheus]] | [[Category:Prometheus]] | ||
− | + | [[Category:CNCF]] | |
{{CC license}} | {{CC license}} | ||
Source: https://en.wikiversity.org/wiki/Prometheus_monitoring | Source: https://en.wikiversity.org/wiki/Prometheus_monitoring |
Latest revision as of 09:38, 9 April 2024
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
Prometheus Installation[edit]
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install myprometheus prometheus-community/prometheus
Configuration files[edit]
- Linux:
/etc/prometheus/prometheus.yml
- macOS:
/usr/local/etc/prometheus.args
- Prometheus storage:
/var/lib/prometheus/
Binaries[edit]
Alternatives[edit]
- Thanos
- VictoriaMetrics
- Grafana Mimir (Mar 2022)
Configuration[edit]
- Configuration file:
/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']
Linux Basic Prometheus Operations[edit]
- 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[edit]
- 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[edit]
- PromQL
- Elasticsearch
- Exporters: Nginx (nginx-prometheus-exporter), Node exporter
- Cortex, Prometheus as a service
- Loki
- CKA: Understand how to monitor applications in Kubernetes
.tpl
alert:
- AWS CloudWatch Container Insights
- Amazon Managed Service for Prometheus
- Kubernetes Metrics Server
- Fluent Bit
- GitLab 12.5 Automatically close GitLab issues with recovery alerts from Prometheus
- Prometheus-node-exporter Debian configuration file
/metrics
- Amazon Managed Prometheus
- Google Cloud Managed Prometheus
level=error ... no space left on device
- Prometheus API
- Logz.io
See also[edit]
- Prometheus, Thanos, Grafana Mimir, VictoriaMetrics
- 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 - Monitoring: Prometheus, Cacti, monit, munin, RRDtool, Zabbix, Netdata, Nagios, Check MK, Icinga, Pingdom, OpsGenie and Datadog, Opsgenie, PRTG, Checkmk
- TSDB: Prometheus, InfluxDB, RRDtool, Graphite, Telegraf, OpenTSDB, TimescaleDB,
tsdbadmin
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: