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

Вступление

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

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

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

Предпосылки

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

  • Одна 64-битная CentOS 7 Droplet

  • Https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7[non-root sudo user], предпочтительно один с именем * prometheus *.

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

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

mkdir ~/Downloads
cd ~/Downloads

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

curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.linux-amd64.tar.gz"

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

mkdir ~/Prometheus

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

cd ~/Prometheus

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

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

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

~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus -version

На экране должно появиться следующее сообщение:

Прометей выход

prometheus, version 0.16.0 (branch: HEAD, revision: dcb8ba4)
 build user:       julius@desktop
 build date:       20151009-23:51:17
 go version:       1.5.1

Шаг 2 - Установка Node Exporter

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

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

cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"

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

mkdir ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter

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

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

sudo vi /etc/systemd/system/node_exporter.service

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

/etc/init/node_exporter.conf

[Unit]
Description=Node Exporter

[Service]
User=
ExecStart=/home//Prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

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

Перезагрузите + systemd +, чтобы он прочитал файл конфигурации, который вы только что создали.

sudo systemctl daemon-reload

На этом этапе Node Exporter доступен как сервис, которым можно управлять с помощью команды + systemctl +. Включите его, чтобы он запускался автоматически во время загрузки.

sudo systemctl enable node_exporter.service

Теперь вы можете перезагрузить сервер или использовать следующую команду, чтобы запустить службу вручную:

sudo systemctl start node_exporter.service

После запуска используйте браузер для просмотра веб-интерфейса 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/prometheus-0.16.0.linux-amd64

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

vi ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.yml

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

~ / Prometheus / Prometheus-0.16.0.linux-amd64 / prometheus.yml

scrape_configs:
 - job_name: "node"
   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/prometheus-0.16.0.linux-amd64/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, нажмите вкладку * График * в верхней части страницы. На открывшейся странице введите имя метрики (например, * nodeprocsrunning *) в текстовое поле с именем * Выражение *. Затем нажмите синюю кнопку * Выполнить *. Нажмите * График * (рядом с * Консоль *) чуть ниже, и вы должны увидеть график для этой метрики:

изображение: 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 и несколько инструментов сборки. Используйте + yum + для этого.

sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch

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

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

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

cd ~/Prometheus/promdash

PromDash зависит от нескольких камней Ruby. Чтобы автоматизировать установку этих драгоценных камней, вы должны установить гем под названием + bundler +.

gem install bundler

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

bundle install --without mysql postgresql

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

Выходной пакет

. . .
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 [Пустая панель инструментов]

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

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

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

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

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

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

Заключение

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

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

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

Related