Техническая документация Prometheus — Базовая установка — Установка Docker и монтирование томов данных — «Десять минут на сборку»

1. Посмотреть устанавливаемую версию

docker search prom/prometheus

 2. Потяните изображение

docker pull prom/prometheus

 3. Просмотр зеркального отображения

docker images

 В-четвертых, напишите файл конфигурации — и создайте каталог монтирования

Расположение каталога монтирования хоста:

И подготовьте соответствующий каталог монтирования:

/usr/локальные/докер/прометей/сервер

Подготовьте следующим образом:

данные、конфигурация、правила、ClientAll、сервер

  Разрешить доступ к связанным папкам

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/прометей/прометей.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: Эта строка устанавливает глобальный интервал очистки равным 60 секундам. Это означает, что Prometheus будет получать данные от целей, которые он отслеживает, каждые 60 секунд. Интервал выборки по умолчанию — каждую минуту.
  • evaluation_interval: 60s: Эта строка устанавливает интервал оценки глобального правила (интервал оценки) равным 60 секундам. Это означает, что Prometheus будет оценивать (вычислять) свои правила (правила) каждые 60 секунд. Интервал оценки по умолчанию также составляет каждую минуту.
  • scrape_configs:: это поле представляет собой список конфигураций извлечения. Каждая конфигурация парсинга определяет одну или несколько целей для мониторинга и способ извлечения данных из этих целей.
  • - job_name: prometheus: эта строка запускает новую конфигурацию сканирования. Эта конфигурация job_nameозначает prometheus, что он отслеживает данные самого сервера Prometheus.
  • static_configs:: Это поле представляет собой статическую конфигурацию, которая определяет цель для мониторинга и метки на цели.
  • - targets: ['172.17.0.1:8892']: Эта строка определяет цель мониторинга. В этом примере целью является сервер Prometheus , работающий с IP-адресом 172.17.0.1и портом .8892
  • labels: instance: prometheus: Эта строка определяет некоторые метки. Теги — это метаданные, прикрепленные к объектам, которые можно использовать для фильтрации и группировки. В этом примере 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:portи target2_ip:portявляются фактическим IP-адресом и номером порта службы, которую вы хотите отслеживать. При необходимости вы можете добавить больше целей.

Обратите внимание, что если вам нужно отслеживать большое количество целей, вам может понадобиться использовать различные методы настройки захвата, такие как использование динамической конфигурации (dynamic_configs) или автоматическая загрузка файлов конфигурации (file_sd_configs). Эти методы могут считывать конфигурацию цели из файла для упрощения управления и обслуживания большого количества целей мониторинга.

Настройте мониторинг, соответствующий нескольким задачам (соответствующая конфигурация):

        Если вы хотите отслеживать несколько целей, вам необходимо scrape_configsнастроить несколько в файлах job_name.

Для каждой отслеживаемой цели         необходимо создать иjob_name соответствующим образом настроить новую цель в разделеstatic_configstargetslabels

Ниже приведен пример файла конфигурации с двумя настроенными целями мониторинга:

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_name: prometheus1и prometheus2. Для каждого job_nameмы настраиваем соответствующую цель ( targets) и метку ( labels).

job_nameПри необходимости         можно добавить больше для мониторинга большего количества целей. Просто следуйте одному и тому же шаблону для каждой цели, чтобы создать новую job_nameи настроить соответствующую цель static_configsв .

Пять, беги прометей

Используйте следующий код для запуска 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