1. Ver la versión instalable
docker search prom/prometheus
2. Tire de la imagen
docker pull prom/prometheus
3. Ver la imagen del espejo
docker images
Cuarto, escriba el archivo de configuración y cree un directorio de montaje
Ubicación del directorio de montaje del host:
Y prepara el directorio de montaje correspondiente:
/usr/local/docker/promethues/servidor
Prepárese de la siguiente manera:
datos, configuración, reglas, ClientAll, servidor
Autorizar permisos de carpetas relacionadas
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
Ubicación del contenedor de destino:
/etc/prometeo/prometeo.yml
Edite el archivo de configuración con el código:
vim /usr/local/docker/prometheus/server/prometheus.yml
Escriba la siguiente configuración:
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
Explicar la configuración:
Este prometheus.yml
archivo es el archivo de configuración de Prometheus. Define cómo Prometheus recopila y almacena datos de monitoreo y cómo usar estos datos para la evaluación de reglas y alertas.
Leamos este archivo línea por línea:
global: scrape_interval: 60s
: esta línea establece el intervalo de raspado global en 60 segundos. Esto significa que Prometheus obtendrá datos de los objetivos que monitorea cada 60 segundos. El intervalo de recuperación predeterminado es cada minuto.evaluation_interval: 60s
: esta línea establece el intervalo de evaluación de la regla global (intervalo de evaluación) en 60 segundos. Esto significa que Prometheus evaluará (evaluará) sus reglas (reglas) cada 60 segundos. El intervalo de evaluación predeterminado también es cada minuto.scrape_configs:
: Este campo representa una lista que contiene configuraciones de scrap. Cada configuración de raspado define uno o más objetivos para monitorear y cómo raspar datos de esos objetivos.- job_name: prometheus
: esta línea inicia una nueva configuración de rastreo. Esta configuraciónjob_name
significaprometheus
que monitorea los datos del propio servidor Prometheus.static_configs:
: este campo representa una configuración estática, que define el objetivo a monitorear y las etiquetas en el objetivo.- targets: ['172.17.0.1:8892']
: esta línea define un objetivo de supervisión. En este ejemplo, el objetivo es un servidor Prometheus que se ejecuta en una dirección IP172.17.0.1
y un puerto .8892
labels: instance: prometheus
: Esta línea define algunas etiquetas. Las etiquetas son metadatos adjuntos a los objetos y se pueden usar para filtrar y agrupar. En este ejemplo,instance
se agrega una etiqueta con un valor deprometheus
.
En general, este archivo de configuración configura a Prometheus para que recopile datos de sí mismo (dirección IP 172.17.0.1
, puerto 8892
) y recopile datos cada 60 segundos y evalúe las reglas cada 60 segundos.
La configuración actual solo se monitorea a sí misma:
Si desea que Prometheus supervise otros servidores, debe modificar targets
el valor en . Reemplace con la dirección IP y el número de puerto del servicio a monitorear.
Una configuración de tareas monitorea múltiples:
Puede configurar múltiples objetivos de monitoreo, simplemente static_configs
agregue varios bajo el mismo targets
. Cada objetivo debe usar la dirección IP y el número de puerto correspondientes. Por ejemplo:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['target1_ip:port', 'target2_ip:port']
En el ejemplo anterior, target1_ip:port
y target2_ip:port
son la dirección IP real y el número de puerto del servicio que desea monitorear. Puede agregar más objetivos según sea necesario.
Tenga en cuenta que si necesita monitorear una gran cantidad de objetivos, es posible que deba usar diferentes métodos de configuración de captura, como el uso de la configuración dinámica (dynamic_configs) o la carga automática de archivos de configuración (file_sd_configs). Estos métodos pueden leer la configuración de objetivos de un archivo para facilitar la gestión y el mantenimiento de un gran número de objetivos de supervisión.
Configure el monitoreo correspondiente de múltiples tareas (configuración correspondiente):
Si desea monitorear varios objetivos, debe scrape_configs
configurar varios en job_name
.
Para cada objetivo a monitorear, se debe crear uno nuevo yjob_name
configurarlo en consecuencia enstatic_configs
targets
labels
El siguiente es un archivo de configuración de ejemplo con dos objetivos de monitoreo configurados:
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
En el ejemplo anterior, creamos dos job_name
: prometheus1
y prometheus2
. Para cada uno job_name
, configuramos el target ( targets
) y la etiqueta ( labels
) correspondientes.
Se pueden agregar más job_name
para monitorear más objetivos según sea necesario. Simplemente siga el mismo patrón para cada destino para crear uno nuevo job_name
y configure el destino correspondiente static_configs
en .
Cinco, corre Prometeo
Use el siguiente código para ejecutar Prometheus, preste atención a la costumbre
# -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
Usa ip+9090 para acceder
¡Visita exitosa!