1. Sehen Sie sich die installierbare Version an
docker search prom/prometheus
2. Ziehen Sie das Bild
docker pull prom/prometheus
3. Sehen Sie sich das Spiegelbild an
docker images
Viertens schreiben Sie die Konfigurationsdatei – und erstellen Sie ein Mount-Verzeichnis
Speicherort des Host-Mount-Verzeichnisses:
Und bereiten Sie das entsprechende Mount-Verzeichnis vor:
/usr/local/docker/promethues/server
Bereiten Sie sich wie folgt vor:
data、config、rules、ClientAll、server
Autorisieren Sie entsprechende Ordnerberechtigungen
chmod -R 777 /usr/local/docker/prometheus/data
chmod -R 777 /usr/local/docker/prometheus/config
chmod -R 777 /usr/local/docker/prometheus/rules
chmod -R 777 /usr/local/docker/prometheus/ClientAll
chmod -R 777 /usr/local/docker/prometheus/server
Zielstandort des Containers:
/etc/prometheus/prometheus.yml
Konfigurationsdatei mit Code bearbeiten:
vim /usr/local/docker/prometheus/server/prometheus.yml
Schreiben Sie die folgende Konfiguration:
global:
scrape_interval: 15s # 设置抓取间隔为每15秒。
evaluation_interval: 15s # 每隔15秒评估规则。
rule_files:
- /prometheus/rules/*.yml # 这里匹配指定目录下所有的.rules文件
scrape_configs:
- job_name: "阿丹服务器" #使用配置来发现服务
static_configs:
- targets: ['ip:9090']
labels:
instance: prometheus
- job_name: "服务发现"
file_sd_configs:
- files:
- /prometheus/ClientAll/*.json # 用json格式文件方式发现服务,下面的是用yaml格式文件方式,都可以
refresh_interval: 10m
- files:
- /prometheus/ClientAll/*.yaml # 用yaml格式文件方式发现服务
refresh_interval: 10m
Konfiguration erklären:
Diese prometheus.yml
Datei ist die Konfigurationsdatei für Prometheus. Es definiert, wie Prometheus Überwachungsdaten sammelt und speichert und wie diese Daten zur Regelauswertung und Alarmierung verwendet werden.
Lesen wir diese Datei Zeile für Zeile:
global: scrape_interval: 60s
: Diese Zeile setzt das globale Scrape-Intervall auf 60 Sekunden. Das bedeutet, dass Prometheus alle 60 Sekunden Daten von den überwachten Zielen abruft. Das Standardabrufintervall ist jede Minute.evaluation_interval: 60s
: Diese Zeile legt das globale Regelauswertungsintervall (Auswertungsintervall) auf 60 Sekunden fest. Dies bedeutet, dass Prometheus seine Regeln (Regeln) alle 60 Sekunden auswertet (auswertet). Das standardmäßige Auswertungsintervall beträgt ebenfalls jede Minute.scrape_configs:
: Dieses Feld stellt eine Liste mit Scrape-Konfigurationen dar. Jede Scraping-Konfiguration definiert ein oder mehrere zu überwachende Ziele und wie Daten von diesen Zielen extrahiert werden.- job_name: prometheus
: Diese Zeile startet eine neue Crawl-Konfiguration. Diese Konfigurationjob_name
bedeutetprometheus
, dass die Daten des Prometheus-Servers selbst überwacht werden.static_configs:
: Dieses Feld stellt eine statische Konfiguration dar, die das zu überwachende Ziel und die Beschriftungen auf dem Ziel definiert.- targets: ['172.17.0.1:8892']
: Diese Zeile definiert ein Überwachungsziel. In diesem Beispiel ist das Ziel ein Prometheus-Server , der unter einer IP-Adresse172.17.0.1
und einem Port läuft.8892
labels: instance: prometheus
: Diese Zeile definiert einige Beschriftungen. Tags sind an Objekte angehängte Metadaten und können zum Filtern und Gruppieren verwendet werden. In diesem Beispielinstance
wird ein Tag mit dem Wert hinzugefügtprometheus
.
Insgesamt richtet diese Konfigurationsdatei Prometheus so ein, dass er Daten von sich selbst (IP-Adresse 172.17.0.1
, Port 8892
) sammelt und alle 60 Sekunden Daten sammelt und alle 60 Sekunden Regeln auswertet.
Die aktuelle Konfiguration überwacht sich lediglich selbst:
Wenn Sie möchten, dass Prometheus andere Server überwacht, müssen Sie targets
den Wert in ändern. Ersetzen Sie diese durch die IP-Adresse und Portnummer des zu überwachenden Dienstes.
Eine Aufgabenkonfiguration überwacht mehrere:
Sie können mehrere Überwachungsziele konfigurieren. static_configs
Fügen Sie einfach mehrere unter demselben hinzu targets
. Jedes Ziel muss die entsprechende IP-Adresse und Portnummer verwenden. Zum Beispiel:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['target1_ip:port', 'target2_ip:port']
Im obigen Beispiel sind target1_ip:port
und target2_ip:port
die tatsächliche IP-Adresse und Portnummer des Dienstes, den Sie überwachen möchten. Sie können bei Bedarf weitere Ziele hinzufügen.
Bitte beachten Sie, dass Sie bei der Überwachung einer großen Anzahl von Zielen möglicherweise andere Erfassungskonfigurationsmethoden verwenden müssen, z. B. die Verwendung einer dynamischen Konfiguration (dynamic_configs) oder des automatischen Ladens von Konfigurationsdateien (file_sd_configs). Diese Methoden können die Zielkonfiguration aus einer Datei lesen, um die Verwaltung und Wartung einer großen Anzahl von Überwachungszielen zu vereinfachen.
Konfigurieren Sie die entsprechende Überwachung mehrerer Aufgaben (entsprechende Konfiguration):
Wenn Sie mehrere Ziele überwachen möchten, müssen Sie scrape_configs
mehrere in konfigurieren job_name
.
Für jedes zu überwachende Ziel muss unten ein neues erstellt undjob_name
entsprechend konfiguriert werdenstatic_configs
targets
labels
Im Folgenden finden Sie eine Beispielkonfigurationsdatei mit zwei konfigurierten Überwachungszielen:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus1
static_configs:
- targets: ['ip:9090']
labels:
instance: prometheus1
- job_name: prometheus2
static_configs:
- targets: ['ip2:9090']
labels:
instance: prometheus2
Im obigen Beispiel haben wir zwei verschiedene erstellt job_name
: prometheus1
und prometheus2
. Für jedes job_name
konfigurieren wir das entsprechende Ziel ( targets
) und Label ( labels
).
job_name
Bei Bedarf können weitere hinzugefügt werden , um mehr Ziele zu überwachen. Folgen Sie einfach dem gleichen Muster für jedes Ziel, um ein neues zu erstellen job_name
und konfigurieren Sie das entsprechende Ziel static_configs
unter .
Fünftens: Prometheus ausführen
Verwenden Sie den folgenden Code, um Prometheus auszuführen. Beachten Sie dabei die Gewohnheit
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
docker run -itd --name prometheus -p 9090:9090 \
-v /usr/local/docker/prometheus/server/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/docker/prometheus/data:/prometheus/data \
-v /usr/local/docker/prometheus/config:/prometheus/config \
-v /usr/local/docker/prometheus/rules:/prometheus/rules \
-v /usr/local/docker/prometheus/ClientAll:/prometheus/ClientAll \
prom/prometheus --web.enable-lifecycle
Verwenden Sie für den Zugriff IP+9090
Erfolgreicher Besuch!