Prometheus
To run a container with prometheus, we need two things:
- prometheus.ymlfile
- Docker volume
The prometheus.yml file should contain something like this:
# my global config
global:
  scrape_interval:     5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
# 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'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'docker'
    static_configs:
    - targets: ['localhost:9999']
  - job_name: 'other_collector'
    scrape_interval: 1s
    static_configs:
      - targets: ['192.168.1.28:8000']
To create a docker volume, run:
docker create volume prometheus_data
This way, your collected data won\'t be lost on restarts.
docker run -d --restart=always --name=prometheus --network=host -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml -v prometheus_data:/prometheus prom/prometheus
You should open the browser and check if everything works, by default it is 9090 port.
Grafana
For grafana we will also use a docker volume:
docker create volume grafana_data
This way we will save all data from grafana(panels, users, etc...).
To run the grafana container, simply run:
docker run -d --name=grafana --restart=always --network=host -e GF_SERVER_ROOT_URL=http://grafana.server.name -e GF_SECURITY_ADMIN_PASSWORD=secret -v grafana_data:/var/lib/grafana grafana/grafana
You can check it on port 3000.
Now you should add the Prometheus server as a data source. You can do this by going to Configuration -> Datasources -> Select Prometheus
