Prometheus - будущее систем мониторинга. Часть 2

Dec 15, 2016 14:35

В первой части мы рассмотрели осебенности, архитектуру и модель Prometheus. Эта система актуальна при обслуживании компьютерных систем в средних и крупных компаниях на аутсорсинге. Поехали дальше.
Установка и запуск Node Exporter

Процесс установки Node Exported не сильно отличается от Prometheus:

mkdir /opt/prometheus
wget h***s://github.com/prometheus/node_exporter/releases/download/0.12.0/node_exporter-0.12.0.linux-amd64.tar.gz
tar -xvzf node_exporter-*.tar.gz -C /opt/prometheus/node_exporter/
cd /opt/prometheus/node_exporter

Сделаем наше приложение доступным в стандартном окружении:

ln -s /opt/prometheus/node_exporter/node_exporter /usr/bin/


И создадим upstart конфиг для управления приложением (/etc/init/node_exporter.conf):

# Run node_exporter

kill timeout 30
respawn
respawn limit 5 10

stop on runlevel [016]
start on startup

script
/usr/bin/node_exporter
end script

Запустим node_exporter (start node_exporter) и отредактируем prometheus.yml, чтобы наш сервер мог собирать метрики с нового хоста. Добавим в конец файла:

- job_name: 'node'
scrape_interval: "15s"
static_configs:
- targets: ['your_hostname_or_ip:9100']

Для удаления метрик в prometheus можно воспользоваться API:

curl -XDELETE -g 'h***://192.168.33.12:9090/api/v1/series?match[]={job="node"}'

Уже в таком виде системой мониторинга вполне можно пользоваться, Prometheus сервер предоставляет мощный инструмент для работы с метриками. Но в привычном нам понимании, система мониторинга должна не только хранить информацию, но и отображать ее и оповещать администратора о внештатных ситуациях.
Настройка оповещений

Создадим файл с правилами “/etc/prometheus/rules.d/node.rules”:

ALERT OutOfMemory
IF (node_memory_MemFree{node="your_hostname_or_ip:9100"} / 1000000)< 100
FOR 10m

LABELS { severity = "wine" }

ANNOTATIONS {
summary = "We are out of memory on {{$labels.instance}}. It's< 100M",
description = "We are out of memory on {{$labels.instance}}. It's< 100M for the last 10 minutes",
}

Такой Alert сработает, если свободная память хоста за последние 10 минут меньше 100 Мб.
И дополним prometheus.yml:

rule_files:
- "rules.d/*.rules"

Заходим в Prometheus сервер h***://192.168.33.12:9090/alert и видим наш новый свежесозданный alarm. В таком виде мы только видим сработал он или нет. Prometheus разработал AlertManager, который следит за алармами и может создавать оповещения.

Установка Grafana для более удобного графического представления информации.
Для красивого и наглядного отображения метрик я выбрал Grafana, но это не обязательно и выбор каждого может зависеть от особенности метрик или личных предпочтений.
Для установки Grafana добавим репозиторий в файл «/etc/apt/sources.list»:

deb h***s://packagecloud.io/grafana/stable/debian/ wheezy main

Добавим ключ для установки только подлинной версии пакета:

apt-get install curl
curl h***s://packagecloud.io/gpg.key | sudo apt-key add -

Ну и наконец установим Grafana:

apt-get update
apt-get install grafana
apt-get install -y apt-transport-h***s

В конце установки Вам предложат добавить Grafana в автозагрузку не стандартным способом. Соглашаемся и запускаем сервер:

update-rc.d grafana-server defaults 95 10
service grafana-server start

Grafana доступна по адресу h***s://your_ip:3000. Стандартный логин admin и пароль admin. Графану нужно настроить на работу с Prometheus.
Нужна помощь профессионалов? Обратитесь в КПомощь.

систем, графана, prometheus, мониторниг, настройка, прометеус, обслуживание, система, компьютерных, код

Previous post Next post
Up