Deploy Prometheus With Docker
Create Prometheus Config
Create a file called
prometheus.yml with the following contents:
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090']
... or run the following command to download the example from Github.
Create Data Volume Directory
Now we need to create a directory that will act as a volume for our Prometheus container. That way all state will persist across reboots.
mkdir $HOME/prometheus-data chmod 777 $HOME/prometheus-data
Now run the following container to deploy your prometheus service:
docker run \ -p 80:9090 \ --volume $HOME/prometheus.yml:/etc/prometheus/prometheus.yml \ --volume $HOME/prometheus-data:/prometheus \ prom/prometheus
You now have a prometheus server deployed. Later we will learn how to deploy an exporter to "scrape" from, and how to add authentication.
First published: 22nd January 2020