Răsfoiți Sursa

Merge pull request #26 from aiordache/master

Add prometheus-grafana sample
Anca Iordache 5 ani în urmă
părinte
comite
dc1bb13dce

+ 66 - 0
prometheus-grafana/README.md

@@ -0,0 +1,66 @@
+## Compose sample
+### Prometheus & Grafana
+
+Project structure:
+```
+.
+├── docker-compose.yml
+├── grafana
+│   └── datasource.yml
+├── prometheus
+│   └── prometheus.yml
+└── README.md
+```
+
+[_docker-compose.yaml_](docker-compose.yaml)
+```
+version: "3.7"
+services:
+  prometheus:
+    image: prom/prometheus
+    ...
+    ports:
+      - 9090:9090
+  grafana:
+    image: grafana/grafana
+    ...
+    ports:
+      - 3000:3000
+```
+The compose file defines a stack with two services `prometheus` and `grafana`.
+When deploying the stack, docker-compose maps port the default ports for each service to the equivalent ports on the host in order to inspect easier the web interface of each service.
+Make sure the ports 9090 and 3000 on the host are not already in use.
+
+## Deploy with docker-compose
+
+```
+$ docker-compose up -d
+Creating network "prometheus-grafana_default" with the default driver
+Creating volume "prometheus-grafana_prom_data" with default driver
+...
+Creating grafana    ... done
+Creating prometheus ... done
+Attaching to prometheus, grafana
+
+```
+
+## Expected result
+
+Listing containers must show two containers running and the port mapping as below:
+```
+$ docker ps
+CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
+dbdec637814f        prom/prometheus     "/bin/prometheus --c…"   8 minutes ago       Up 8 minutes        0.0.0.0:9090->9090/tcp   prometheus
+79f667cb7dc2        grafana/grafana     "/run.sh"                8 minutes ago       Up 8 minutes        0.0.0.0:3000->3000/tcp   grafana
+```
+
+Navigate to `http://localhost:3000` in your web browser and use the login credentials specified in the compose file to access Grafana. It is already configured with prometheus as the default datasource.
+
+![page](output.jpg)
+
+Navigate to `http://localhost:9090` in your web browser to access directly the web interface of prometheus.
+
+Stop and remove the containers. Use `-v` to remove the volumes if looking to erase all data.
+```
+$ docker-compose down -v
+```

+ 25 - 0
prometheus-grafana/docker-compose.yml

@@ -0,0 +1,25 @@
+
+version: "3.7"
+services:
+  prometheus:
+    image: prom/prometheus
+    container_name: prometheus
+    command:
+      - '--config.file=/etc/prometheus/prometheus.yml'
+    ports:
+      - 9090:9090
+    volumes:
+      - ./prometheus:/etc/prometheus
+      - prom_data:/prometheus
+  grafana:
+    image: grafana/grafana
+    container_name: grafana
+    ports:
+      - 3000:3000
+    environment:
+      - GF_SECURITY_ADMIN_USER=admin
+      - GF_SECURITY_ADMIN_PASSWORD=grafana
+    volumes:
+      - ./grafana:/etc/grafana/provisioning/datasources
+volumes:
+  prom_data:

+ 9 - 0
prometheus-grafana/grafana/datasource.yml

@@ -0,0 +1,9 @@
+apiVersion: 1
+
+datasources:
+- name: Prometheus
+  type: prometheus
+  url: http://prometheus:9090 
+  isDefault: true
+  access: proxy
+  editable: true

BIN
prometheus-grafana/output.jpg


+ 21 - 0
prometheus-grafana/prometheus/prometheus.yml

@@ -0,0 +1,21 @@
+global:
+  scrape_interval: 15s
+  scrape_timeout: 10s
+  evaluation_interval: 15s
+alerting:
+  alertmanagers:
+  - static_configs:
+    - targets: []
+    scheme: http
+    timeout: 10s
+    api_version: v1
+scrape_configs:
+- job_name: prometheus
+  honor_timestamps: true
+  scrape_interval: 15s
+  scrape_timeout: 10s
+  metrics_path: /metrics
+  scheme: http
+  static_configs:
+  - targets:
+    - localhost:9090