Как установить Прометей на Ubuntu 16.04
Введение
Графана.
По умолчанию Prometheus экспортирует только метрики о себе (например, количество полученных запросов, потребление памяти и т. д.). Но вы можете значительно расширить возможности Prometheus, установив экспортеры — дополнительные программы, которые генерируют дополнительные показатели.
Экспортеры — как официальные, поддерживаемые командой Prometheus, так и предоставленные сообществом — предоставляют информацию обо всем, от инфраструктуры, баз данных и веб-серверов до систем обмена сообщениями, API и многого другого.
Некоторые из самых популярных вариантов включают в себя:
- node_exporter – создает показатели инфраструктуры, включая текущее использование ЦП, памяти и диска, а также статистику ввода-вывода и сети, например количество байтов, считанных с диска, или среднюю нагрузку сервера.
- blackbox_exporter — создает показатели, полученные на основе протоколов проверки, таких как HTTP и HTTPS, для определения доступности конечной точки, времени отклика и т. д.
- mysqld_exporter — собирает показатели, связанные с сервером MySQL, такие как количество выполненных запросов, среднее время ответа на запрос и состояние репликации кластера.
- Система обмена сообщениями RabbitMQ, включая количество опубликованных сообщений, количество сообщений, готовых к доставке, и размер всех сообщений в очереди.
- Модуль Nginx VTS, включая количество открытых подключений, количество отправленных ответов (сгруппированных по кодам ответов) и общий размер отправленных или полученных запросов в байтах.
Вы можете найти более полный список как официальных, так и предоставленных сообществом экспортеров на веб-сайте Prometheus.
В этом руководстве вы установите, настроите и защитите Prometheus и Node Exporter для создания метрик, которые упростят мониторинг производительности вашего сервера.
Предпосылки
Прежде чем следовать этому руководству, убедитесь, что у вас есть:
- Одна капля Ubuntu 16.04, настроенная в соответствии с руководством Initial Server Setup with Ubuntu 16.04, включая пользователя без полномочий root и брандмауэр.
- Nginx устанавливается, выполнив первые два шага руководства по установке Nginx в Ubuntu 16.04.
Шаг 1 — Создание пользователей службы
В целях безопасности мы начнем с создания двух новых учетных записей пользователей, prometheus и node_exporter. Мы будем использовать эти учетные записи на протяжении всего руководства, чтобы изолировать права собственности на основные файлы и каталоги Prometheus.
Создайте этих двух пользователей и используйте параметры --no-create-home
и --shell /bin/false
, чтобы эти пользователи не могли войти на сервер.
- sudo useradd --no-create-home --shell /bin/false prometheus
- sudo useradd --no-create-home --shell /bin/false node_exporter
Прежде чем мы загрузим двоичные файлы Prometheus, создайте необходимые каталоги для хранения файлов и данных Prometheus. Следуя стандартным соглашениям Linux, мы создадим каталог в /etc
для файлов конфигурации Prometheus и каталог в /var/lib
для его данных.
- sudo mkdir /etc/prometheus
- sudo mkdir /var/lib/prometheus
Теперь установите пользователя и группу в новых каталогах для пользователя prometheus.
- sudo chown prometheus:prometheus /etc/prometheus
- sudo chown prometheus:prometheus /var/lib/prometheus
Теперь, когда у нас есть пользователи и каталоги, мы можем загрузить Prometheus, а затем создать минимальный файл конфигурации для запуска Prometheus в первый раз.
Шаг 2 — Загрузка Прометея
Сначала загрузите и распакуйте текущую стабильную версию Prometheus в свой домашний каталог. Вы можете найти последние двоичные файлы вместе с их контрольными суммами на странице загрузки Prometheus.
- cd ~
- curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz
Затем используйте команду sha256sum
для генерации контрольной суммы загруженного файла:
- sha256sum prometheus-2.0.0.linux-amd64.tar.gz
Сравните вывод этой команды с контрольной суммой на странице загрузки Prometheus, чтобы убедиться, что ваш файл является подлинным и не поврежденным.
Outpute12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46 prometheus-2.0.0.linux-amd64.tar.gz
Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги, чтобы повторно загрузить файл.
Теперь распакуйте скачанный архив.
- tar xvf prometheus-2.0.0.linux-amd64.tar.gz
Это создаст каталог с именем prometheus-2.0.0.linux-amd64
, содержащий два двоичных файла (prometheus
и promtool
), каталоги consoles
и console_libraries
, содержащие файлы веб-интерфейса, лицензию, уведомление и несколько файлов примеров.
Скопируйте два двоичных файла в каталог /usr/local/bin
.
- sudo cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/
- sudo cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/
Установите права пользователя и группы на двоичные файлы для пользователя prometheus, созданного на шаге 1.
- sudo chown prometheus:prometheus /usr/local/bin/prometheus
- sudo chown prometheus:prometheus /usr/local/bin/promtool
Скопируйте каталоги consoles
и console_libraries
в /etc/prometheus
.
- sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus
- sudo cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus
Установите права пользователя и группы на каталоги для пользователя prometheus. Использование флага -R
гарантирует, что право собственности будет установлено и для файлов внутри каталога.
- sudo chown -R prometheus:prometheus /etc/prometheus/consoles
- sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Наконец, удалите оставшиеся файлы из вашего домашнего каталога, так как они больше не нужны.
- rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64
Теперь, когда Prometheus установлен, мы создадим его конфигурационные и служебные файлы для подготовки к его первому запуску.
Шаг 3 — Настройка Прометея
В каталоге /etc/prometheus
используйте nano
или ваш любимый текстовый редактор, чтобы создать файл конфигурации с именем prometheus.yml
. На данный момент этот файл будет содержать достаточно информации для первого запуска Prometheus.
- sudo nano /etc/prometheus/prometheus.yml
Предупреждение: файл конфигурации Prometheus использует формат YAML, который строго запрещает вкладки и требует два пробела для отступа. Prometheus не запустится, если файл конфигурации неправильно отформатирован.
В настройках global
определите интервал по умолчанию для парсинга метрик. Обратите внимание, что Prometheus применит эти настройки к каждому экспортеру, если собственные настройки отдельного экспортера не переопределяют глобальные параметры.
global:
scrape_interval: 15s
Это значение scrape_interval
указывает Prometheus собирать метрики от своих экспортеров каждые 15 секунд, что достаточно для большинства экспортеров.
Теперь добавьте сам Prometheus в список экспортеров для очистки с помощью следующей директивы scrape_configs
:
...
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
Prometheus использует job_name
для маркировки экспортеров в запросах и на графиках, поэтому обязательно выберите здесь что-нибудь описательное.
И, поскольку Prometheus экспортирует важные данные о себе, которые вы можете использовать для мониторинга производительности и отладки, мы переопределили глобальную директиву scrape_interval
с 15 секунд до 5 секунд для более частых обновлений.
Наконец, Prometheus использует директивы static_configs
и targets
, чтобы определить, где работают экспортеры. Поскольку этот конкретный экспортер работает на том же сервере, что и сам Prometheus, мы можем использовать localhost
вместо IP-адреса вместе с портом по умолчанию, 9090
.
Теперь ваш файл конфигурации должен выглядеть так:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
Сохраните файл и выйдите из текстового редактора.
Теперь установите права пользователя и группы в файле конфигурации на пользователя prometheus, созданного на шаге 1.
- sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
После завершения настройки мы готовы протестировать Prometheus, запустив его в первый раз.
Шаг 4 — Запуск Прометея
Запустите Prometheus от имени пользователя prometheus, указав путь как к файлу конфигурации, так и к каталогу данных.
- sudo -u prometheus /usr/local/bin/prometheus \
- --config.file /etc/prometheus/prometheus.yml \
- --storage.tsdb.path /var/lib/prometheus/ \
- --web.console.templates=/etc/prometheus/consoles \
- --web.console.libraries=/etc/prometheus/console_libraries
Вывод содержит информацию о ходе загрузки Prometheus, файле конфигурации и связанных службах. Это также подтверждает, что Prometheus прослушивает порт 9090
.
Outputlevel=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re
vision=0a74f98628a0463dddc90528220c94de5032d1a0)"
level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108-
07:11:59)"
level=info ts=2017-11-17T18:37:27.474883982Z caller=main.go:217 host_details="(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 1
4:24:03 UTC 2017 x86_64 prometheus-update (none))"
level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0
:9090
level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB"
level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager...
"
level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started"
level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe
us.yml
level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."
Если вы получили сообщение об ошибке, еще раз проверьте, использовали ли вы синтаксис YAML в файле конфигурации, а затем следуйте инструкциям на экране, чтобы решить проблему.
Теперь остановите Prometheus, нажав CTRL+C
, а затем откройте новый служебный файл systemd
.
- sudo nano /etc/systemd/system/prometheus.service
Сервисный файл указывает systemd
запускать Prometheus от имени пользователя prometheus с файлом конфигурации, расположенным в каталоге /etc/prometheus/prometheus.yml
, и хранить его данные в Каталог /var/lib/prometheus
. (Подробности о служебных файлах systemd
выходят за рамки этого руководства, но вы можете узнать больше в разделе Общие сведения о модулях и файлах модулей Systemd.)
Скопируйте в файл следующее содержимое:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Наконец, сохраните файл и закройте текстовый редактор.
Чтобы использовать только что созданный сервис, перезагрузите systemd
.
- sudo systemctl daemon-reload
Теперь вы можете запустить Prometheus с помощью следующей команды:
- sudo systemctl start prometheus
Чтобы убедиться, что Prometheus работает, проверьте статус службы.
- sudo systemctl status prometheus
Вывод сообщает вам статус Prometheus, идентификатор основного процесса (PID), использование памяти и многое другое.
Если статус службы не активен
, следуйте инструкциям на экране и повторите предыдущие шаги, чтобы решить проблему, прежде чем продолжить обучение.
Output● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago
Main PID: 2104 (prometheus)
Tasks: 7
Memory: 13.8M
CPU: 470ms
CGroup: /system.slice/prometheus.service
...
Когда вы будете готовы двигаться дальше, нажмите Q
, чтобы выйти из команды status
.
Наконец, включите службу для запуска при загрузке.
- sudo systemctl enable prometheus
Теперь, когда Prometheus запущен и работает, мы можем установить дополнительный экспортер для создания метрик о ресурсах нашего сервера.
Шаг 5 — Загрузка Node Exporter
Чтобы расширить Prometheus за пределы метрик только о себе, мы установим дополнительный экспортер под названием Node Exporter. Node Exporter предоставляет подробную информацию о системе, включая использование ЦП, диска и памяти.
Сначала загрузите текущую стабильную версию Node Exporter в свой домашний каталог. Вы можете найти последние двоичные файлы вместе с их контрольными суммами на странице загрузки Prometheus.
- cd ~
- curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz
Используйте команду sha256sum
для создания контрольной суммы загруженного файла:
- sha256sum node_exporter-0.15.1.linux-amd64.tar.gz
Проверьте целостность загруженного файла, сравнив его контрольную сумму с контрольной суммой на странице загрузки.
Output7ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897df61a127 node_exporter-0.15.1.linux-amd64.tar.gz
Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги.
Теперь распакуйте скачанный архив.
- tar xvf node_exporter-0.15.1.linux-amd64.tar.gz
Будет создан каталог с именем node_exporter-0.15.1.linux-amd64
, содержащий двоичный файл с именем node_exporter
, лицензию и уведомление.
Скопируйте двоичный файл в каталог /usr/local/bin
и установите владельца и группу для пользователя node_exporter, созданного на шаге 1.
- sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin
- sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Наконец, удалите оставшиеся файлы из вашего домашнего каталога, так как они больше не нужны.
- rm -rf node_exporter-0.15.1.linux-amd64.tar.gz node_exporter-0.15.1.linux-amd64
Теперь, когда вы установили Node Exporter, давайте протестируем его, запустив перед созданием для него служебного файла, чтобы он запускался при загрузке.
Шаг 6 — Запуск экспортера узлов
Шаги для запуска Node Exporter аналогичны шагам для запуска самого Prometheus. Начните с создания файла службы Systemd для Node Exporter.
- sudo nano /etc/systemd/system/node_exporter.service
Этот служебный файл указывает вашей системе запускать Node Exporter от имени пользователя node_exporter с включенным набором сборщиков по умолчанию.
Скопируйте следующее содержимое в файл службы:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Коллекторы определяют, какие метрики будет генерировать Node Exporter. Вы можете увидеть полный список сборщиков Node Exporter, в том числе включенных по умолчанию и устаревших, в файле README Node Exporter.
Если вам когда-нибудь понадобится переопределить список сборщиков по умолчанию, вы можете использовать флаг --collectors.enabled
, например:
...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled meminfo,loadavg,filesystem
...
В предыдущем примере компоненту Node Exporter будет предложено генерировать метрики, используя только сборщики meminfo
, loadavg
и filesystem
. Вы можете ограничить количество сборщиков тем количеством, которое вам нужно, но обратите внимание, что перед или после запятых нет пробелов.
Сохраните файл и закройте текстовый редактор.
Наконец, перезагрузите systemd
, чтобы использовать только что созданный сервис.
- sudo systemctl daemon-reload
Теперь вы можете запустить Node Exporter с помощью следующей команды:
- sudo systemctl start node_exporter
Убедитесь, что Node Exporter работает правильно, с помощью команды status
.
- sudo systemctl status node_exporter
Как и раньше, этот вывод сообщает вам статус Node Exporter, идентификатор основного процесса (PID), использование памяти и многое другое.
Если статус службы не активен
, следуйте сообщениям на экране и повторите предыдущие шаги, чтобы устранить проблему, прежде чем продолжить.
Output● node_exporter.service - Node Exporter
Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago
Main PID: 2161 (node_exporter)
Tasks: 3
Memory: 1.4M
CPU: 11ms
CGroup: /system.slice/node_exporter.service
Наконец, включите Node Exporter для запуска при загрузке.
- sudo systemctl enable node_exporter
Когда Node Exporter полностью настроен и работает, как и ожидалось, мы скажем Prometheus начать сбор новых метрик.
Шаг 7 — Настройка Prometheus для очистки экспортера узлов
Поскольку Prometheus очищает только те экспортеры, которые определены в части scrape_configs
его файла конфигурации, нам нужно добавить запись для Node Exporter, как мы сделали это для самого Prometheus.
Откройте файл конфигурации.
- sudo nano /etc/prometheus/prometheus.yml
В конце блока scrape_configs
добавьте новую запись с именем node_exporter
.
...
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
Поскольку этот экспортер также работает на том же сервере, что и сам Prometheus, мы снова можем использовать localhost вместо IP-адреса вместе с портом по умолчанию Node Exporter, 9100
.
Весь ваш файл конфигурации должен выглядеть так:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
Сохраните файл и выйдите из текстового редактора, когда будете готовы продолжить.
Наконец, перезапустите Prometheus, чтобы изменения вступили в силу.
- sudo systemctl restart prometheus
Еще раз убедитесь, что все работает правильно с помощью команды status
.
- sudo systemctl status prometheus
Если статус службы не установлен на active
, следуйте инструкциям на экране и повторите предыдущие шаги, прежде чем двигаться дальше.
Output● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago
Main PID: 2219 (prometheus)
Tasks: 6
Memory: 19.9M
CPU: 433ms
CGroup: /system.slice/prometheus.service
Теперь у нас установлены, настроены и запущены Prometheus и Node Exporter. В качестве последней меры предосторожности перед подключением к веб-интерфейсу мы повысим безопасность нашей установки с помощью базовой HTTP-аутентификации, чтобы гарантировать, что неавторизованные пользователи не смогут получить доступ к нашим метрикам.
Шаг 8 — Защита Прометея
Prometheus не включает встроенную аутентификацию или какой-либо другой механизм безопасности общего назначения. С одной стороны, это означает, что вы получаете очень гибкую систему с меньшими ограничениями конфигурации; с другой стороны, это означает, что вы должны убедиться, что ваши показатели и общая настройка достаточно безопасны.
Для простоты мы будем использовать Nginx, чтобы добавить базовую HTTP-аутентификацию в нашу установку, которую Prometheus и его предпочтительный инструмент визуализации данных Grafana полностью поддерживают.
Начните с установки apache2-utils
, которая даст вам доступ к утилите htpasswd
для создания файлов паролей.
- sudo apt-get update
- sudo apt-get install apache2-utils
Теперь создайте файл паролей, указав htpasswd
, где вы хотите сохранить файл и какое имя пользователя вы хотите использовать для аутентификации.
Примечание. htpasswd
предложит вам ввести и повторно подтвердить пароль, который вы хотите связать с этим пользователем. Кроме того, запишите имя пользователя и пароль, которые вы вводите здесь, так как они понадобятся вам для входа в Prometheus на шаге 9.
- sudo htpasswd -c /etc/nginx/.htpasswd sammy
Результатом этой команды является вновь созданный файл с именем .htpasswd
, расположенный в каталоге /etc/nginx
, содержащий имя пользователя и хэшированная версия введенного вами пароля.
Затем настройте Nginx для использования вновь созданных паролей.
Во-первых, сделайте специфичную для Prometheus копию файла конфигурации Nginx по умолчанию, чтобы вы могли вернуться к значениям по умолчанию позже, если столкнетесь с проблемой.
- sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus
Затем откройте новый файл конфигурации.
- sudo nano /etc/nginx/sites-available/prometheus
Найдите блок location /
под блоком server
. Это должно выглядеть так:
...
location / {
try_files $uri $uri/ =404;
}
...
Так как мы будем перенаправлять весь трафик на Prometheus, замените директиву try_files
следующим содержанием:
...
location / {
auth_basic "Prometheus server authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:9090;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
...
Эти настройки гарантируют, что пользователи должны будут аутентифицироваться в начале каждого нового сеанса. Кроме того, обратный прокси-сервер будет направлять все запросы, обрабатываемые этим блоком, в Prometheus.
Когда вы закончите вносить изменения, сохраните файл и закройте текстовый редактор.
Теперь деактивируйте файл конфигурации Nginx по умолчанию, удалив ссылку на него в каталоге /etc/nginx/sites-enabled
, и активируйте новый файл конфигурации, создав ссылку на него.
- sudo rm /etc/nginx/sites-enabled/default
- sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/
Перед перезапуском Nginx проверьте конфигурацию на наличие ошибок с помощью следующей команды:
- sudo nginx -t
Вывод должен указывать на то, что синтаксис в порядке
и тест выполнен успешно
. Если вы получили сообщение об ошибке, следуйте инструкциям на экране, чтобы устранить проблему, прежде чем переходить к следующему шагу.
Output of Nginx configuration testsnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Затем перезагрузите Nginx, чтобы применить все изменения.
- sudo systemctl reload nginx
Убедитесь, что Nginx запущен и работает.
- sudo systemctl status nginx
Если ваши выходные данные не показывают, что статус службы активен
, следуйте сообщениям на экране и повторите предыдущие шаги, чтобы решить проблему, прежде чем продолжить.
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago
Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r
Main PID: 3053 (nginx)
Tasks: 2
Memory: 3.6M
CPU: 56ms
CGroup: /system.slice/nginx.service
На данный момент у нас есть полнофункциональный и защищенный сервер Prometheus, поэтому мы можем войти в веб-интерфейс, чтобы начать просмотр метрик.
Шаг 9 — Тестирование Прометея
Prometheus предоставляет базовый веб-интерфейс для мониторинга своего статуса и своих экспортеров, выполнения запросов и создания графиков. Но из-за простоты интерфейса команда Prometheus устанавливает и использует Grafana для чего-то более сложного, чем тестирование и отладка.
В этом руководстве мы воспользуемся встроенным веб-интерфейсом, чтобы убедиться, что Prometheus и Node Exporter запущены и работают, а также рассмотрим простые запросы и графики.
Для начала укажите в веб-браузере http://your_server_ip
.
В диалоговом окне проверки подлинности HTTP введите имя пользователя и пароль, выбранные на шаге 8.
После входа в систему вы увидите браузер выражений, где вы можете выполнять и визуализировать пользовательские запросы.
Прежде чем выполнять какие-либо выражения, проверьте состояние как Prometheus, так и Node Explorer, щелкнув сначала меню «Статус» в верхней части экрана, а затем пункт меню «Цели». Поскольку мы настроили Prometheus для очистки себя и Node Exporter, вы должны увидеть обе цели в состоянии UP
.
Если какой-либо экспортер отсутствует или отображает сообщение об ошибке, проверьте статус службы с помощью следующих команд:
- sudo systemctl status prometheus
- sudo systemctl status node_exporter
Выходные данные для обеих служб должны сообщать о состоянии Active: active (работает)
. Если служба либо вообще не активна, либо активна, но по-прежнему работает неправильно, следуйте инструкциям на экране и повторите предыдущие шаги, прежде чем продолжить.
Затем, чтобы убедиться, что экспортеры работают правильно, мы выполним несколько выражений для Node Exporter.
Сначала щелкните меню «График» в верхней части экрана, чтобы вернуться в браузер выражений.
В поле «Выражение» введите node_memory_MemAvailable
и нажмите кнопку «Выполнить», чтобы обновить вкладку «Консоль», указав объем памяти, которым располагает ваш сервер.
По умолчанию Node Exporter сообщает это количество в байтах. Чтобы преобразовать в мегабайты, мы будем использовать математические операторы, чтобы дважды разделить на 1024.
В поле «Выражение» введите node_memory_MemAvailable/1024/1024
и нажмите кнопку «Выполнить».
На вкладке Консоль теперь будут отображаться результаты в мегабайтах.
Если вы хотите проверить результаты, выполните команду free
со своего терминала. (Флаг -h
указывает free
отчитаться в удобочитаемом формате, давая нам количество в мегабайтах.)
- free -h
Этот вывод содержит сведения об использовании памяти, включая доступную память, отображаемую в доступном столбце.
Output total used free shared buff/cache available
Mem: 488M 144M 17M 3.7M 326M 324M
Swap: 0B 0B 0B
В дополнение к основным операторам язык запросов Prometheus также предоставляет множество функций для агрегирования результатов.
В поле «Выражение» введите avg_over_time(node_memory_MemAvailable[5m])/1024/1024
и нажмите кнопку «Выполнить». Результатом будет средняя доступная память за последние 5 минут в мегабайтах.
Теперь щелкните вкладку График, чтобы отобразить выполненное выражение в виде графика, а не в виде текста.
Наконец, не выходя из этой вкладки, наведите указатель мыши на график, чтобы получить дополнительные сведения о любой конкретной точке по осям X и Y графика.
Если вы хотите узнать больше о создании выражений во встроенном веб-интерфейсе Prometheus, см. раздел Querying Prometheus официальной документации.
Заключение
В этом руководстве мы загрузили, настроили, защитили и протестировали полную установку Prometheus с одним дополнительным экспортером.
Если вы хотите узнать больше о том, как Prometheus работает под капотом, взгляните на How To Query Prometheus в Ubuntu 14.04. (Поскольку у вас уже установлен Prometheus, вы можете пропустить первый шаг.)
Чтобы узнать, что еще может сделать Prometheus, посетите официальную документацию Prometheus.
А чтобы узнать больше о расширении Prometheus, посетите официальный сайт Grafana.