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

Вступление

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

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

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

Предпосылки

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

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

Шаг 1 - Установка сервера Прометей

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

mkdir ~/Downloads
cd ~/Downloads

Используйте + wget + для загрузки последней версии сервера 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 + для извлечения + prometheus-0.15.1.linux-amd64.tar.gz +.

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

Прометей был разработан с целью мониторинга веб-сервисов. Чтобы отслеживать показатели вашего сервера Ubuntu, вы должны установить инструмент под названием Node Exporter. Node Exporter, как следует из его названия, экспортирует множество метрик (таких как статистика дискового ввода-вывода, загрузка процессора, использование памяти, сетевая статистика и т. Д.) В формате, понятном Прометею.

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

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

Используйте + wget +, чтобы загрузить последнюю сборку 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

Теперь вы можете использовать команду + tar + для извлечения + 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

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

sudo nano /etc/init/node_exporter.conf

Этот файл должен содержать ссылку на исполняемый файл + node_exporter +, а также указывать, когда исполняемый файл должен быть запущен. Соответственно добавьте следующий код:

/etc/init/node_exporter.conf

# Run node_exporter

start on startup

script
  /usr/bin/node_exporter
end script

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

sudo service node_exporter start

После запуска Node Exporter используйте браузер для просмотра его веб-интерфейса, доступного по адресу + http: //: 9100 / metrics +. Вы должны увидеть страницу с большим количеством текста:

http: // your_server_ip: 9100 / выдержка из метрик

# 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 Server

Введите каталог, в который вы установили сервер Prometheus:

cd ~/Prometheus/server

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

nano ~/Prometheus/server/prometheus.yml

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

~ / Prometheus / сервер / prometheus.yml

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

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

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

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

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

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

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

tail ~/Prometheus/server/prometheus.log

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

выдержка из журнала prometheus.log

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

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

изображение: http: //i.imgur.com/cfw7Gnb.png [Домашняя страница Прометея]

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

изображение: https: //assets.digitalocean.com/articles/prometheus/lo6upjI.png [График Прометея]

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

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

изображение: https: //assets.digitalocean.com/articles/prometheus/E8flb93.png [Консоль узла]

Шаг 5 - Установка PromDash

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

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

cd ~/Prometheus

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

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 + для установки драгоценных камней Ruby, которые требуются PromDash. Поскольку в этом руководстве мы будем настраивать PromDash для работы с SQLite3, убедитесь, что вы исключили гемы для MySQL и PostgreSQL, используя параметр + - без +:

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.

mkdir ~/Prometheus/databases

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

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

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

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

Примените изменения, которые мы внесли в файл + .bashrc +.

. ~/.bashrc

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

rake db:migrate

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

rake assets:precompile

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

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

bundle exec thin start -d

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

изображение: https: //assets.digitalocean.com/articles/prometheus/j0AfIQA.png [домашняя страница PromDash]

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

изображение: https: //assets.digitalocean.com/articles/prometheus/C0ChfYZ.png [Экран создания сервера PromDash]

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

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

Поскольку информационная панель Promdash должна принадлежать каталогу Promdash, сначала создайте новый каталог, нажав * New Directory *. В появившейся форме введите имя своего каталога, например * My Dashboards *, затем нажмите * Create Directory *.

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

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

изображение: https: //assets.digitalocean.com/articles/prometheus/PQ1eTVJ.png [Пустая панель инструментов]

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

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

изображение: https: //assets.digitalocean.com/articles/prometheus/zHslJPa.png [Добавить выражение]

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

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

изображение: https: //assets.digitalocean.com/articles/prometheus/fztROmE.png [Информационные панели PromDash]

Заключение

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

Несмотря на то, что вы установили все компоненты на одном компьютере с Ubuntu, вы можете легко отслеживать больше компьютеров, установив только Node Exporter на каждом из них и добавив URL-адреса новых Node Exporter в массив + target + `+ prometheus. YML + `.

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

Related