пятница, 29 марта 2019 г.

Prometheus

Prometheus - "мониторинг нового поколения".
Prometheus' main distinguishing features as compared to other monitoring systems are:

a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
a flexible query language to leverage this dimensionality
no dependency on distributed storage; single server nodes are autonomous
timeseries collection happens via a pull model over HTTP
pushing timeseries is supported via an intermediary gateway
targets are discovered via service discovery or static configuration
multiple modes of graphing and dashboarding support
support for hierarchical and horizontal federation

Prometheus после nagios или zabbix может сначала очень сильно запутать, как ставить, как запускать... Если с тем же заббиксом - поставили, прошли по быстрой настройке, и вот у нас есть база, есть веб, есть ядро системы, ставим агенты где надо и пишем правила что мониторить, то тут может поначалу пухнуть голова.
Ставить можно прямо на хост, можно в докере, но после базовой установки получаем систему которая сама ничего не умеет опрашивать, не умеет оповещать, да и графики там так себе. И тут начинается.
  • Где хранить?
  • Как получать?
  • Как выводить?
  • Как оповещать?
  • Как масштабировать?

Помимо самого прометея, есть ещё
push gateway для работы с кратковременными процессами (когда сервис работает слишком мало времени, что бы Prometheus имел возможность выполнять к нему запросы для получения метрик)
exporters для сбора метрик из сторонних сервисом (и таких экспортёров – миллион, и имя им легион). В частности, большой список есть тут https://prometheus.io/docs/instrumenting/exporters/
alertmanager – менеджер уведомлений (умеет Slack, почту и т.д.)

А также..
  1. дашборды (dashboards), где будем настраивать всякие красивые графики;
  2. Системы сбора, обработки метрик;
  3. Базы, где метрики будут храниться;
1. Grafana
2. StatsD, telegraf, carbon
3. graphite, influxdb, whisper, prometheus...




Установка:
можно через git:
git clone https://github.com/prometheus/prometheus
git clone https://github.com/prometheus/node_exporter
git clone https://github.com/prometheus/alertmanager
и заглянуть сюда
https://prometheus.io/download/

но лучше подключить репу и ставить как обычный пакет
debian:
$ echo 'deb http://deb.robustperception.io/ precise nightly' | sudo tee -a /etc/apt/sources.list.d/robustperception.list
$ wget https://s3-eu-west-1.amazonaws.com/deb.robustperception.io/41EFC99D.gpg
$ sudo apt-key add 41EFC99D.gpg
$ sudo apt-get update
$ sudo apt-get install prometheus node-exporter alertmanager

centos:
Для установки в систему можно взять за основу (ТУТ взять актуальные ссылки на архивы)
там описание достаточно подробное. Но описывает оно только prometheus + node_exporter.
Есть ещё такая инструкция, чисто по прометею, но там с раскидыванием по системе.

По аналогии выкачиваем, распаковываем, делаем .service для alertmanager. А прометею в конфиг пишем в секцию global примерно так
  rule_files:
    - "alert.rules"
и добавляем файл /etc/prometheus/alert.rules. По наполнению читаем доку.

Ещё можно глянуть
https://letsclearitup.com.ua/monitoring/ustanovka-prometheus-node-exporter-v-centos-7.html

Также есть вариант через docker, установка элементарна. Но обращаю внимание что при использовании systemd не берите инструкции, где в service есть строки вида ExecStart=docker-compose xxx up - потому что один из плюсов докера это контроль служб и возможность перезапуска упавших служб, а в таком формате мы мониторим "ничего".
Ставится так (centos)
# yum -y install docker
# systemctl enable docker
# systemctl start docker
(запускать с отдельной консоли, через screen,...)
# docker run -p 9090:9090 prom/prometheus
всё, на 9090 у нас есть прометей. Но нам надо будет его настраивать, и как пример можно взять prometheus/documentation/examples/prometheus.yml и потом запускать так
docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

Теперь надо снимать метрики, типовой это node_exporter
Для докера запуск так же прост
# docker run prom/node-exporter

Для мониторинга сайтов можно поставить
# docker run prom/blackbox-exporter

Есть и некая управлялка (генератор конфигов)
Читать дальше

внимание
Если при запуске получена ошибка:
unknown fields in scrape_config: target_groups
то надо заменить target_groups на static_configs

линки
https://rtfm.co.ua/prometheus-monitoring-vvedenie-ustanovka-zapusk-primery/
Мониторинг сервисов с Prometheus (оно же)

Комментариев нет:

Отправить комментарий