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

Feb 25, 2016 21:42 · 409 words · 2 minute read prometheus monitoring

В первой части нашего знакомства с 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.

После добавления сервера возвращаемся на вкладку Dashboards и создаем директорию для дашбордов нажатием на New Directory (имя директории на ваше усмотрение). Дальше приступаем к созданию дашборда — жмем New Dashboard.

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

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

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

tweet Share