Мониторинг сервера Ubuntu 14.04 с помощью Prometheus

Prometheus – это система мониторинга, разработанная SoundCloud. Как и другие системы мониторинга (например, InfluxDB или Graphite), Prometheus хранит данные в темпоральной базе данных. Кроме того, Prometheus предоставляет многомерную модель данных и мощный язык запросов, позволяющий системным администраторам быстро выполнить тонкую настройку метрик.

Также Prometheus включает PromDash (браузерный инструмент для разработки пользовательских панелей мониторинга), AlertManager (инструмент, отправляющий извещения и предупреждения на электронную почту), Flowdock, Slack, HipChat и т.п.

Данное руководство поможет установить Prometheus Server, Node Exporter и PromDash, настроить их и запустить мониторинг сервера.

Требования

  • Сервер Ubuntu 14.04 с 64-битной архитектурой.
  • Пользователь с доступом к sudo.

Примечание: если вы используете сервер с 32-битной архитектурой, замените -amd64 на -386 во всех именах файлов и ссылках, указанных в данном руководстве.

1: Установка сервера Prometheus

Создайте новый каталог для хранения файлов Prometheus:

mkdir ~/Downloads
cd ~/Downloads

Загрузите последний пакет сервера Prometheus и темпоральной БД с GitHub:

wget "https://github.com/prometheus/prometheus/releases/download/0.15.1/prometheus-0.15.1.linux-amd64.tar.gz"

Система мониторинга Prometheus состоит из нескольких компонентов, каждый из которых нужно установить отдельно. Рекомендуется хранить все компоненты в одном родительском каталоге; создайте такой каталог и дополнительный подкаталог для хранения всех бинарных файлов сервера Prometheus.

mkdir -p ~/Prometheus/server

Откройте новый каталог:

cd ~/Prometheus/server

Распакуйте архив:

tar -xvzf ~/Downloads/prometheus-0.15.1.linux-amd64.tar.gz

Установка Prometheus завершена, теперь убедитесь, что она прошла успешно. Запросите версию пакета:

./prometheus -version

На экране появится:

prometheus, version 0.15.1 (branch: master, revision: 64349aa)
build user:       julius@julius-thinkpad
build date:       20150727-17:56:00
go version:       1.4.2

2: Установка Node Exporter

Prometheus предназначен для мониторинга веб-сервисов. Чтобы отслеживать метрики сервера Ubuntu, нужно установить инструмент под названием Node Exporter. Node Exporter экспортирует различные метрики (например, статистику I/O, нагрузку CPU, использование памяти, сетевую статистику и многое другое) в формате, понятном программе Prometheus.

Создайте новый каталог node_exporter в каталоге Prometheus и откройте его:

mkdir -p ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter

Загрузите последний пакет Node Exporter в GitHub и переместите его в каталог Downloads:

wget https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz -O ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

Распакуйте node_exporter-0.11.0.linux-amd64.tar.gz:

tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

3: Node Exporter как сервис

Теперь нужно включить Node Exporter как сервис.

Создайте символьную ссылку на node_exporter в /usr/bin.

sudo ln -s ~/Prometheus/node_exporter/node_exporter /usr/bin

Создайте конфигурационный файл Upstart по имени node_exporter.conf

sudo nano /etc/init/node_exporter.conf

В этом файле должна храниться ссылка на исполняемый файл node_exporter; также в нём нужно указать, когда нужно запускать его. Поместите в файл следующий код:

# Run node_exporter
start on startup
script
/usr/bin/node_exporter
end script

На данном этапе инструмент Node Exporter доступен как сервис, его можно запускать с помощью команды service:

sudo service node_exporter start

Запустив Node Exporter, используйте браузер, чтобы просмотреть веб-интерфейс по ссылке:

http://your_server_ip:9100/metrics

На экране появится страница с объёмным выводом:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00023853100000000002
go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002
go_gc_duration_seconds{quantile="0.5"} 0.00028122
. . .

4: Запуск сервера Prometheus

Откройте каталог, в котором хранится установка Prometheus:

cd ~/Prometheus/server

Прежде чем запустить Prometheus, создайте конфигурационный файл prometheus.yml.

nano ~/Prometheus/server/prometheus.yml

Скопируйте в него следующий код:

scrape_configs:
- job_name: "node"
scrape_interval: "15s"
target_groups:
- targets: ['localhost:9100']

Этот код создаёт раздел scrape_configs и определяет job. Строка targets содержит адрес веб-интерфейса Node Exporter. Параметр scrape_interval задаёт интервал, по истечении которого Prometheus будет собирать данные (в данном случае – каждые 15 секунд).

Примечание: Выбрать имя для job можно любое, однако если job называется node, вы можете использовать стандартные шаблоны консоли Node Exporter.

Сохраните файл и закройте его.

Запустите сервер Prometheus в фоновом режиме:

nohup ./prometheus > prometheus.log 2>&1 &

Вывод Prometheus переадресован в файл prometheus.log. Чтобы просмотреть несколько последних строк, используйте tail:

tail ~/Prometheus/server/prometheus.log

Когда сервер будет готов, в файле появятся следующие строки:

INFO[0000] Starting target manager...         file=targetmanager.go line=75
INFO[0000] Listening on

Откройте домашнюю страницу Prometheus в браузере:

http://your_server_ip:9090

Чтобы убедиться в том, что Prometheus собирает данные Node Exporter, откройте вкладку Graph в верхней панели. На появившейся странице в поле Expression нужно указать название метрики (к примеру, node_procs_running). После этого нажмите Execute. Кликните Graph (рядом с Console). На экране появится график для заданной метрики.

Prometheus предоставляет шаблоны консоли, которые позволяют просматривать графики нескольких наиболее часто используемых метрик. Эти шаблоны консоли доступны только если в job_name вы указали node.

Чтобы получить доступ к Node Console и просмотреть метрику сервера, перейдите по ссылке:

http://your_server_ip:9090/consoles/node.html

и кликните localhost:9100.

5: Установка PromDash

Сервер Prometheus позволяет просматривать графики и настраивать выражения, но, как правило, он используется только для отладки или для запуска одноразовых запросов. Для визуализации данных Prometheus  рекомендуется использовать PromDash, инструмент, который позволяет создавать собственные информационные панели, которые можно настраивать согласно вашим требованиям.

Откройте каталог Prometheus:

cd ~/Prometheus

PromDash – это приложение Ruby on Rails, исходные файлы можно найти на GitHub. Чтобы запустить это приложение, нужно установить ряд зависимостей: Git, Ruby, SQLite3, Bundler. Для этого используйте пакетный менеджер системы:

sudo apt-get update && sudo apt-get install git ruby bundler libsqlite3-dev sqlite3 zlib1g-dev

Чтобы загрузить файлы, используйте git:

git clone https://github.com/prometheus/promdash.git

Откройте каталог promdash:

cd ~/Prometheus/promdash

При помощи bundle установите все необходимые PromDash gem-ы Ruby. В данном руководстве PromDash будет работать с SQLite3, потому нужно исключить gem-ы для MySQL и PostgreSQL при помощи параметра –without.

bundle install --without mysql postgresql

PromDash зависит от нескольких gem-ов, а потому на выполнение команды уйдёт несколько минут. После завершения вы увидите:

. . .
Your bundle is complete!
Gems in the groups mysql and postgresql were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

6: Настройка окружения Rails

Создайте каталог для хранения баз данных SQLite3, предназначенных для PromDash:

mkdir ~/Prometheus/databases

PromDash определяет имя базы данных при помощи переменной среды DATABASE_URL. Чтобы создать базу данных SQLite3 для PromDash под названием mydb.sqlite3 в каталоге databases, введите:

echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3" >> ~/.bashrc

В этом руководстве PromDash находится в рабочем режиме, потому нужно установить переменную окружения RAILS_ENV со значением production.

echo "export RAILS_ENV=production" >> ~/.bashrc

Чтобы активировать изменения, введите:

. ~/.bashrc

Создайте таблицы PromDash в БД SQLite3 при помощи инструмента rake:

rake db:migrate

PromDash использует Rails Asset Pipeline, потому все ресурсы проекта PromDash (CSS-файлы, изображения, файлы Javascript) должны быть предварительно скомпилированы. Для этого наберите:

rake assets:precompile

7: Запуск и настройка PromDash

PromDash работает на легковесном сервере Thin. Запустите сервер как демон:

bundle exec thin start -d

Подождите несколько секунд, пока сервер запустится, и посетите домашнюю страницу PromDash:

http://your_server_ip:3000/

Прежде чем приступить к созданию панели инструментов, нужно предоставить PromDash URL-адрес сервера Prometheus. Для этого кликните Servers → New Server и введите имя сервера Prometheus. В поле Url укажите:

http://your_server_ip:9090

В Server type укажите Prometheus.

Нажмите Create Server, чтобы скомпилировать настройки. На странице появится сообщение:

Server was successfully created.

8: Создание панели инструментов

Панели инструментов Promdash должны храниться в каталоге Promdash. Чтобы создать новый каталог, нажмите New Directory. На экране появится форма, в которой нужно указать имя каталога (например, My Dashboards) и нажать Create Directory.

После этого программа вернёт вас на домашнюю страницу. Нажмите New Dashboard, в появившейся форме укажите название панели (например, Simple Dashboard) и выберите только что созданный каталог в выпадающем меню.

После этого у вас появится новая панель.

В ней уже есть один график, но его нужно настроить. Наведите курсор на название графика (по умолчанию Title), и вы увидите различные значки, которые позволяют настроить график. Чтобы переименовать график, выберите Graph and Axis Settings и введите новое имя в поле Graph Title.

Параметр Datasources позволяет добавить в график новые выражения. Нажмите Add Expression и в поле Enter Expression введите node_procs_running.

Нажмите Refresh (последняя иконка слева), чтобы обновить график. Теперь у вас есть один полностью настроенный график. Чтобы добавить новые графики, нажмите Add Graph.

Изменив настройки, нажмите кнопку Save Changes (справа). Теперь на домашней странице PromDash появится ссылка на панель инструментов.

Заключение

Теперь на сервере Ubuntu 14.04 есть полностью готовая экосистема Prometheus. Также вы можете использовать PromDash для создания пользовательских панелей мониторинга.

Даже если все компоненты установлены на одной машине Ubuntu, вы можете мониторить другие машины; для этого нужно установить Node Exporter на каждую такую машину, а затем добавить URL-адреса установок Node Exporter в массив targets в файле prometheus.yml

Больше информации о Prometheus можно получить в документации проекта.

Tags: , ,

Добавить комментарий