для построения дашбордов в системе мониторинга Prometheus используется инструмент PromDash. Установка и настройка PromDash начинается с установки необходимых компонентов (Git, Ruby, MySQL, Bundler) и их зависимостей:
yum install git ruby-full mysql-server libmysqlclient-dev
далее:
1 2 |
gem install bundler |
загружаем исходники:
1 2 |
git <span class="hljs-built_in">clone</span> <a class="vglnk" href="https://github.com/prometheus/promdash.git" rel="nofollow">https://github.com/prometheus/promdash.git</a> |
переходим в каталог с исходниками:
1 2 |
cd promdash |
и выполняем:
1 2 |
bundle install --without sqlite3 postgresql |
После успешного завершения скопируем настройки базы данных из файла-примера:
1 2 |
cp config/database.yml.example config/database.yml |
Приведем конфигурационный файл database.yml
к следующему виду:
[codesyntax lang="php"]
1 2 3 4 5 6 7 |
production: adapter: mysql2 database: promdash_test host: localhost username: root pool: 5 timeout: 5000 |
[/codesyntax]
Примечание. Это тестовый пример настройки, ни к коем случае не используйте эти параметры на вашем production-сервере.
Выполняем первичную настройку (инициализацию) базы данных:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 |
[/codesyntax]
Следуя инструкции создаем Ruby-окружение:
1 2 |
make build |
и запускаем сервер в режиме демона на 8000 порту:
1 2 |
bin/env bin/bundle <span class="hljs-built_in">exec</span> bin/thin -p 8000 start <span class="hljs-_">-d</span> |
В браузере открываем адрес http://[IP-адрес сервера]:8000 и указываем параметры подключения к серверу Prometheus. Для этого переходим на вкладку Servers, жмем New Server, в открывшейся форме вводим имя сервера (на ваше усмотрение), URL — http://[IP-адрес сервера]:9090 и выбираем тип сервера Prometheus.
После добавления сервера возвращаемся на вкладку Dashboards и создаем директорию для дашбордов нажатием на New Directory (имя директории на ваше усмотрение). Дальше приступаем к созданию дашборда — жмем New Dashboard.
Давайте отобразим на графике 5 самых больших таблиц определенной базы — в поле Enter Expression введем topk(5, sum(mysql_info_schema_table_size{schema='<ИМЯ_БД>'}) by (table))
и нажмем первую слева иконку в заголовку графика (Refresh).
Дашборд с одним графиком имеет мало смысла, добавить еще графики нажатием на кнопку Add Graph внизу. После внесения изменений не забываем нажимать кнопку Save Changes.
На этом все, установка и настройка PromDash завершена, но остается самое сложное — из множества доступных выбрать действительно важные и необходимые метрики и создать нужные вам дашборды.