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_configs
targets
labels
Ниже приведен пример файла конфигурации с двумя настроенными целями мониторинга:
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 для доступа
Успешный визит!