Поиск по сайту:

Как использовать Prometheus для мониторинга вашего сервера Ubuntu 14.04


Введение

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

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

В этом руководстве вы узнаете, как установить, настроить и использовать Prometheus Server, Node Exporter и PromDash.

Предпосылки

Чтобы следовать этому руководству, вам понадобятся:

  • Одна 64-разрядная капля Ubuntu 14.04 с пользователем без полномочий root.

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

Шаг 1 — Установка сервера Prometheus

Сначала создайте новый каталог для хранения всех файлов, которые вы загружаете в этом руководстве, и перейдите в него.

  1. mkdir ~/Downloads
  2. cd ~/Downloads

Используйте wget, чтобы загрузить последнюю сборку сервера Prometheus и базы данных временных рядов с GitHub.

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

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

  1. mkdir -p ~/Prometheus/server

Войдите в каталог, который вы только что создали.

  1. cd ~/Prometheus/server

Используйте tar для извлечения prometheus-0.15.1.linux-amd64.tar.gz.

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

На этом установка сервера Prometheus завершена. Проверьте установку, введя:

  1. ./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, как следует из названия, экспортирует множество метрик (например, статистику дискового ввода-вывода, загрузку ЦП, использование памяти, сетевую статистику и т. д.) в формате, понятном Prometheus.

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

  1. mkdir -p ~/Prometheus/node_exporter
  2. cd ~/Prometheus/node_exporter

Используйте wget, чтобы загрузить последнюю сборку Node Exporter, которая доступна на GitHub, и поместите ее в каталог Downloads.

  1. 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

Теперь вы можете использовать команду tar для извлечения файла node_exporter-0.11.0.linux-amd64.tar.gz.

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

Шаг 3 — Запуск Node Exporter как службы

Чтобы упростить запуск и остановку Node Exporter, давайте превратим его в службу.

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

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

Используйте nano или ваш любимый текстовый редактор, чтобы создать файл конфигурации Upstart с именем node_exporter.conf.

  1. 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:

  1. 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.

  1. nano ~/Prometheus/server/prometheus.yml

Скопируйте следующий код в файл.

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

Это создает раздел scrape_configs и определяет задание с именем node. Он включает URL-адрес веб-интерфейса вашего Node Exporter в свой массив targets. Для scrape_interval установлено значение 15 секунд, поэтому Prometheus очищает метрики каждые пятнадцать секунд.

Вы можете назвать свою работу как угодно, но если вы назовете ее «узел», вы сможете использовать стандартные шаблоны консоли Node Exporter.

Сохраните файл и выйдите.

Запустите сервер Prometheus в качестве фонового процесса.

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

Обратите внимание, что вы перенаправили вывод сервера Prometheus в файл с именем prometheus.log. Вы можете просмотреть последние несколько строк файла с помощью команды tail:

  1. tail ~/Prometheus/server/prometheus.log

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

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

Используйте браузер, чтобы посетить домашнюю страницу Prometheus, доступную по адресу http://your_server_ip:9090. Вы увидите следующую домашнюю страницу.

Чтобы убедиться, что Prometheus собирает данные из Node Exporter, щелкните вкладку Graph в верхней части страницы. На открывшейся странице введите имя метрики (например, node_procs_running) в текстовое поле с надписью Expression. Затем нажмите синюю кнопку «Выполнить». Нажмите «График» (рядом с консолью) чуть ниже, и вы должны увидеть график для этой метрики:

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

Посетите http://your_server_ip:9090/consoles/node.html, чтобы получить доступ к консоли узла, и нажмите на свой сервер, localhost:9100, для просмотра его показателей:

Шаг 5 — Установка ПромДэш

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

Войдите в каталог Prometheus:

  1. cd ~/Prometheus

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

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

Теперь вы можете использовать команду git для загрузки исходных файлов.

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

Войдите в каталог promdash.

  1. cd ~/Prometheus/promdash

Используйте bundle для установки драгоценных камней Ruby, которые требуются PromDash. Поскольку в этом руководстве мы будем настраивать PromDash для работы с SQLite3, убедитесь, что вы исключили драгоценные камни для MySQL и PostgreSQL, используя параметр --without:

  1. bundle install --without mysql postgresql

Поскольку PromDash зависит от нескольких гемов, вам придется подождать несколько минут, пока эта команда завершится. После этого вы должны увидеть следующие сообщения.

. . .
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.

  1. mkdir ~/Prometheus/databases

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

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

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

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

Примените сделанные нами изменения к файлу .bashrc.

  1. . ~/.bashrc

Затем создайте таблицы PromDash в базе данных SQLite3 с помощью инструмента rake.

  1. rake db:migrate

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

  1. rake assets:precompile

Шаг 7 — Запуск и настройка PromDash

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

  1. bundle exec thin start -d

Подождите несколько секунд, пока сервер запустится, а затем посетите http://your_server_ip:3000/, чтобы просмотреть домашнюю страницу PromDash.

Прежде чем вы начнете создавать свои собственные информационные панели, вы должны сообщить PromDash URL-адрес вашего сервера Prometheus. Вы можете сделать это, щелкнув вкладку «Серверы» вверху. Нажмите Новый сервер, затем в форме дайте любое имя вашему серверу Prometheus. Установите в поле URL значение http://ваш_сервер_ip:9090, а в поле Тип сервера — Prometheus.

Наконец, нажмите «Создать сервер», чтобы завершить настройку. На вашей странице будет указано, что сервер успешно создан. и вы можете вернуться к Dashboards в верхнем меню.

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

Поскольку панель инструментов Promdash должна принадлежать каталогу Promdash, сначала создайте новый каталог, щелкнув «Новый каталог». В появившейся форме дайте имя своему каталогу, например «Мои информационные панели», затем нажмите «Создать каталог».

После отправки формы вы вернетесь на главную страницу. Нажмите кнопку «Новая панель мониторинга», чтобы создать новую панель мониторинга. В показанной форме дайте имя своей панели инструментов, например Simple Dashboard, и выберите каталог, который вы только что создали, из раскрывающегося меню.

После отправки формы вы сможете увидеть новую панель инструментов.

На вашей панели уже есть один график, но его нужно настроить. При наведении указателя мыши на заголовок графика (с надписью «Название») отобразятся различные значки, позволяющие настроить график. Чтобы изменить его заголовок, вы можете щелкнуть значок «Настройки графика и оси» (четвертый слева) и ввести новый заголовок в поле «Заголовок графика».

Щелкните значок Источники данных, второй слева, чтобы добавить одно или несколько выражений на график. Нажмите «Добавить выражение» и в поле «Введите выражение» введите node_procs_running.

Теперь щелкните значок «Обновить» (самый левый) в заголовке графика, чтобы обновить график. Ваша информационная панель теперь содержит один полностью настроенный график. Вы можете добавить больше графиков, нажав кнопку «Добавить график» внизу.

После внесения всех изменений убедитесь, что вы нажали кнопку «Сохранить изменения» справа, чтобы сделать ваши изменения постоянными. В следующий раз, когда вы посетите домашнюю страницу PromDash, вы сможете увидеть ссылку на свою панель инструментов:

Заключение

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

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

Вы можете узнать больше о Prometheus, обратившись к его документации.