Знакомство с Prometheus. Часть 3: установка и настройка PromDash
Feb 25, 2016 21:42 · 409 words · 2 minute read
В первой части нашего знакомства с 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 завершена, но остается самое сложное — из множества доступных выбрать действительно важные и необходимые метрики и создать нужные вам дашборды.