2017-05-16 5 views
6

Ich möchte Prometheus verwenden, um meine Docker Container zu überwachen. Ich kann Prometheus mit Grafana laufen lassen, aber ich weiß nicht, wie man es anweist, andere Dockerbehälter zu überwachen. Wenn möglich würde ich gerne ein Beispiel sehen. Zum Beispiel habe ich Ubuntu Container auf meinem Host sowie Gentoo Container ausgeführt. Wie kann ich Prometheus befehlen, sie zu überwachen oder vielleicht einige Anwendungen zu überwachen, die im Inneren laufen? Vielen Dank im Voraus für Ihre Zeit und Geduld mit mir.Prometheus - wie andere Docker Container zu überwachen

Antwort

6

Sie könnten cadvisor verwenden, die Containerbenutzern ein Verständnis für die Ressourcennutzung und Leistungsmerkmale ihrer laufenden Container bietet.

A very good article über Prometheus up Einstellungüberwachen Docker wird mit dieser Architektur:

cAdvisor with prometheus

Kurz gesagt, ist die Idee, Informationen über Container sammeln mit cAdvisor und steckt sie in Prometheus Datenbank. Grafana fragt die Prometheus Datenbank ab und übergibt Überwachungsdiagramme/-werte. die Sie

scrape_configs: 
    - job_name: 'cadvisor' 
    scrape_interval: 5s 
    static_configs: 
     - targets: ['cadvisor:8080'] 

Wenn Sie einige Daten in Prometheus, müssen verwenden :

Um Daten von cAdvisor zu Prometheus sammeln, werden Sie ein configuration file (prometheus.yml) bearbeiten müssen Grafana um es zu sehen. A (kurz) Beispiel json Abfragen überwachen Sie in Grafana importieren könnte ist wie folgt:

Erhalten% der Teilnehmer-CPU:

"targets": [ 
    { 
     "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[1m]))/count(node_cpu{mode=\"system\"}) * 100", 
     "interval": "10s", 
     "intervalFactor": 1, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 10 
    } 
    ] 

Get% RAM verwendet:

"targets": [ 
    { 
     "expr": "(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached))/sum(node_memory_MemTotal) * 100", 
     "interval": "10s", 
     "intervalFactor": 2, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 20 
    } 
    ] 

Für vollständige json-Daten (zu lange, um hier veröffentlicht zu werden), können Sie dieses Repository klonen:

git clone https://github.com/stefanprodan/dockprom 

Und versuchen Sie, diese Grafana json zu importieren.

Ich verwende derzeit diese Architektur, um einen docker swarm mode Cluster in der Produktion zu überwachen, und hier ist die Ausgabe der Überwachung, die Sie im Github-Repository finden können.

prometheus with grafana

+0

Danke !!! Ich werde es überprüfen, es versuchen und Sie wissen lassen. Ich bin auf der Suche nach etwas Einfachem, aber dennoch mächtig genug und glaube, dass Prometheus eine gute Option ist. – ivo

+0

Gern geschehen, ich benutze diesen Stapel (+ Node Exporteur/Alarm Manager) in 3 Produktionsstätten weltweit, ich schätze die Einfachheit der Bereitstellung der 'Sammler' Container (cAdvisor/Node Exporteur) in Hosts und sehe die Graph kommt wie Magie! –

+0

Vielen Dank, dass Sie diese Antwort teilen. Hat mir auch in meinem Anwendungsfall geholfen –

Verwandte Themen