в debian, monitoring, prometheus

Знакомство с Prometheus. Часть 3: установка и настройка PromDash

prometheus
В первой части нашего знакомства с Prometheus мы успешно установили и настроили систему мониторинга.

Во второй части научились собирать метрики от MySQL-сервера и строить по ним графики, теперь настало время организовать отдельные графики в дашборд. Давайте разберемся!

Как уже упоминалось ранее, для построения дашбордов в системе мониторинга Prometheus используется инструмент PromDash. Установка и настройка PromDash начинается с установки необходимых компонентов (Git, Ruby, MySQL, Bundler) и их зависимостей:

sudo aptitude install git ruby-full mysql-server libmysqlclient-dev

далее:

gem install bundler

загружаем исходники:

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

переходим в каталог с исходниками:

cd promdash

и выполняем:

bundle install --without sqlite3 postgresql

После успешного завершения скопируем настройки базы данных из файла-примера:

cp config/database.yml.example config/database.yml

Приведем конфигурационный файл database.yml к следующему виду:

production:
  adapter: mysql2
  database: promdash_test
  host: localhost
  username: root
  pool: 5
  timeout: 5000

Примечание. Это тестовый пример настройки, ни к коем случае не используйте эти параметры на вашем production-сервере.

Выполняем первичную настройку (инициализацию) базы данных:

RAILS_ENV=production bundle exec rake db:setup
/var/lib/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /usr/local/sbin in PATH, mode 042777
/var/lib/gems/2.1.0/gems/bundler-1.11.2/lib/bundler/shared_helpers.rb:78: warning: Insecure world writable dir /usr/local/sbin in PATH, mode 042777
(in /opt/promdash)
-- create_table("dashboards", {:force=>true})
   -> 0.0174s
-- add_index("dashboards", ["directory_id"], {:name=>"index_dashboards_on_directory_id"})
   -> 0.0349s
-- add_index("dashboards", ["slug"], {:name=>"index_dashboards_on_slug", :unique=>true})
   -> 0.0103s
-- create_table("directories", {:force=>true})
   -> 0.0095s
-- create_table("servers", {:force=>true})
   -> 0.0083s
-- create_table("shortened_urls", {:force=>true})
   -> 0.0085s
-- add_index("shortened_urls", ["checksum"], {:name=>"index_shortened_urls_on_checksum", :unique=>true})
   -> 0.0102s
-- initialize_schema_migrations_table()
   -> 0.0547s

Следуя инструкции создаем Ruby-окружение:

make build

и запускаем сервер в режиме демона на 8000 порту:

bin/env bin/bundle exec bin/thin -p 8000 start -d

В браузере открываем адрес http://[IP-адрес сервера]:8000 и указываем параметры подключения к серверу Prometheus. Для этого переходим на вкладку Servers, жмем New Server, в открывшейся форме вводим имя сервера (на ваше усмотрение), URL — http://[IP-адрес сервера]:9090 и выбираем тип сервера Prometheus:
add new server

Жмем Create Server и видим сообщение об успешной операции:
create server

Возвращаемся на вкладку Dashboards и создаем директорию для дашбордов нажатием на New Directory:
new directory

После ввода имени директории (на ваше усмотрение), жмем кнопку Create Directory, после чего появится следующее:
create directory

Теперь приступаем к созданию дашборда — жмем New Dashboard, вводим имя дашборда и в выпадающем меню выбираем только что созданную директорию:
new dashboard

После подтверждения формы вы увидите примерно следующее:
test dashboard

При наведении на заголовок графика (Title) появятся дополнительные иконки, с помощью которых можно настроить график. Например, изменить заголовок можно нажатием на Graph and Axis Settings (четвертая иконка слева), а с помощью Datasources (вторая иконка слева) можно ввести метрики и выражения, по которым будет строиться график:
configure dashboard

Давайте отобразим на графике 5 самых больших таблиц определенной базы (эту метрику мы уже использовали в предыдущей части знакомства с Prometheus) — в поле Enter Expression введем topk(5, sum(mysql_info_schema_table_size{schema='<ИМЯ_БД>'}) by (table)) и нажмем первую слева иконку в заголовку графика (Refresh):
top 5 tables

Дашборд с одним графиком имеет мало смысла, поэтому давайте добавим еще один график нажатием на кнопку Add Graph внизу.

На втором графике будем отображать количество запросов к MySQL-серверу с помощью метрики rate(mysql_global_status_queries [5m]). Процесс добавления нового графика подробно описан выше, а результат должен получиться примерно таким:
two graphs

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

На этом все, установка и настройка PromDash завершена, но остается самое сложное — из множества доступных выбрать действительно важные и необходимые метрики и создать нужные вам дашборды.

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