Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

一、查看可安装的版本

docker search prom/prometheus

 二、拉取镜像

docker pull prom/prometheus

 三、查看镜像

docker images

 四、书写配置文件-以及创建挂载目录

宿主机挂载目录位置:

以及准备对应的挂载目录:

/usr/local/docker/promethues/server

准备如下:

data、config、rules、ClientAll、server

  授权相关文件夹权限

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

 目标容器位置:

/etc/prometheus/prometheus.yml

使用代码编辑配置文件:

vim /usr/local/docker/prometheus/server/prometheus.yml

书写如下配置: 

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

解释配置:

这个prometheus.yml文件是Prometheus的配置文件。它定义了Prometheus如何收集和存储监控数据,以及如何使用这些数据进行规则评估和告警。

让我们逐行解读这个文件:

  • global: scrape_interval: 60s: 这行设置了全局的抓取间隔(scrape interval)为60秒。这意味着Prometheus会每隔60秒从它所监控的目标(targets)中抓取数据。默认的抓取间隔是每分钟。
  • evaluation_interval: 60s: 这行设置了全局的规则评估间隔(evaluation interval)为60秒。这意味着Prometheus会每隔60秒评估(evaluate)它的规则(rules)。默认的评估间隔也是每分钟。
  • scrape_configs:: 这个字段表示包含抓取配置(scrape configurations)的列表。每个抓取配置定义了一个或多个要监控的目标以及如何从这些目标中抓取数据。
  • - job_name: prometheus: 这行开始一个新的抓取配置。这个配置的job_nameprometheus,表示它监控的是Prometheus服务器自身的数据。
  • static_configs:: 这个字段表示静态配置,它定义了要监控的目标和目标上的标签。
  • - targets: ['172.17.0.1:8892']: 这行定义了一个监控目标。在这个例子中,目标是一个运行在IP地址172.17.0.1和端口8892上的Prometheus服务器。
  • labels: instance: prometheus: 这行定义了一些标签(labels)。标签是附加在目标上的元数据,可以用于过滤和分组。在这个例子中,添加了一个instance标签,其值为prometheus

总的来说,这个配置文件设置了Prometheus从自身(IP地址为172.17.0.1,端口为8892)收集数据,并且每60秒收集一次数据,每60秒评估一次规则。

目前配置只是监控了自己:

如果想让Prometheus监控其他的服务器,您需要修改targets中的值。替换为要监控的服务的IP地址和端口号。

一个任务配置监控多个:

您可以配置多个监控目标,只需在同一个static_configs下添加多个targets即可。每个目标都需要使用相应的IP地址和端口号。例如:

scrape_configs:
 - job_name: 'prometheus'
   static_configs:
     - targets: ['target1_ip:port', 'target2_ip:port']

在上述示例中,target1_ip:porttarget2_ip:port是您要监控的服务的实际IP地址和端口号。您可以根据需要添加更多的目标。

请注意,如果需要监控的目标数量较多,可能需要使用不同的抓取配置方式,如使用动态配置(dynamic_configs)或配置文件自动加载(file_sd_configs)。这些方法可以从文件中读取目标配置,以便更方便地管理和维护大量的监控目标。

配置出多个任务对应监控(配置对应):

        如果想要监控多个目标,需要在scrape_configs中配置多个job_name

        对于每个要监控的目标,需要创建一个新的job_name,并在static_configs下配置相应的targetslabels

以下是一个示例配置文件,其中配置了两个监控目标:

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

        在上述示例中,我们创建了两个不同的job_nameprometheus1prometheus2。对于每个job_name,我们配置了相应的目标(targets)和标签(labels)。

        可以根据需要添加更多的job_name来监控更多的目标。只需按照相同的模式为每个目标创建一个新的job_name并在static_configs下配置相应的目标即可。

五、运行prometheus

使用下面的代码,进行运行prometheus,注意自定义的

# -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

使用ip+9090访问 

访问成功! 

猜你喜欢

转载自blog.csdn.net/weixin_72186894/article/details/132162467