В
первой части мы рассмотрели осебенности, архитектуру и модель 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.
Нужна помощь профессионалов? Обратитесь в
КПомощь.