Вступление
Prometheus - это мощная система мониторинга с открытым исходным кодом, которая собирает показатели из ваших служб и сохраняет их в базе данных временных рядов. Он предлагает многомерную модель данных, гибкий язык запросов и разнообразные возможности визуализации с помощью таких инструментов, как Grafana.
По умолчанию Прометей экспортирует только метрики о себе (например, количество полученных запросов, потребление памяти и т. д.). Но вы можете значительно расширить Prometheus, установив exporters, дополнительные программы, которые генерируют дополнительные метрики.
Экспортеры - как официальные, которых поддерживает команда Prometheus, так и разработчики, представляющие сообщество, - предоставляют информацию обо всем: от инфраструктуры, баз данных и веб-серверов до систем обмена сообщениями, API и многого другого.
Некоторые из самых популярных вариантов включают в себя:
-
node_exporter - это создает показатели об инфраструктуре, включая текущее использование ЦП, памяти и диска, а также статистику ввода-вывода и сети, такую как количество байтов, прочитанных из диск или средняя загрузка сервера.
-
blackbox_exporter - генерирует метрики, полученные из протоколов зондирования, таких как HTTP и HTTPS, для определения доступности конечной точки, времени отклика и многого другого.
-
mysqld_exporter - собирает метрики, относящиеся к серверу MySQL, такие как количество выполненных запросов, среднее время ответа на запрос и состояние репликации кластера.
-
rabbitmq_exporter - выводит метрики о системе обмена сообщениями RabbitMQ, включая количество опубликованных сообщений, количество сообщений, готовых к отправке. доставлено, и размер всех сообщений в очереди.
-
nginx-vts-exporter - предоставляет метрики о веб-сервере Nginx с использованием Nginx. Модуль VTS, включая количество открытых соединений, количество отправленных ответов (сгруппированных по кодам ответов) и общий размер отправленных или полученных запросов в байтах.
Вы можете найти более полный список как официальных, так и общественных экспортеров на веб-сайте Prometheus '.
В этом руководстве вы будете устанавливать, настраивать и защищать Prometheus и Node Exporter для создания метрик, которые облегчат мониторинг производительности вашего сервера.
Предпосылки
Прежде чем следовать этому уроку, убедитесь, что у вас есть:
-
Одна Ubuntu 16.04 Droplet, созданная с помощью Initial Настройка сервера с руководством по Ubuntu 16.04, включая sudo пользователь без полномочий 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//
Затем с помощью команды + sha256sum +
создайте контрольную сумму загруженного файла:
sha256sum
Сравните вывод этой команды с контрольной суммой на странице загрузки Prometheus, чтобы убедиться, что ваш файл является подлинным и не поврежден.
Output
Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги, чтобы повторно загрузить файл.
Теперь распакуйте загруженный архив.
tar xvf
Это создаст каталог с именем ++
, содержащий два двоичных файла (+ prometheus +
и + promtool +
), каталоги + consoles +
и + console_libraries +
, содержащие файлы веб-интерфейса, лицензию, уведомление и несколько файлы примеров.
Скопируйте два двоичных файла в каталог + / usr / local / bin +
.
sudo cp /prometheus /usr/local/bin/
sudo cp /promtool /usr/local/bin/
Установите владельца пользователя и группы в двоичных файлах для пользователя * prometheus *, созданного на шаге 1.
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Скопируйте каталоги + console
и` + console library` в + / etc / prometheus
.
sudo cp -r /consoles /etc/prometheus
sudo cp -r /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 установлен, мы создадим его конфигурационные и служебные файлы для подготовки к его первому запуску.
Шаг 3 - Настройка Прометея
В каталоге + / etc / prometheus +
используйте + nano +
или ваш любимый текстовый редактор, чтобы создать файл конфигурации с именем + prometheus.yml +
. На данный момент этот файл будет содержать достаточно информации для первого запуска Prometheus.
sudo nano /etc/prometheus/prometheus.yml
В настройках + global +
задайте интервал по умолчанию для очистки показателей. Обратите внимание, что Prometheus будет применять эти настройки к каждому экспортеру, если только собственные настройки отдельного экспортера не перекрывают глобальные параметры.
Файл конфигурации Prometheus, часть 1 - /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
Это значение + scrape_interval +
указывает Prometheus собирать показатели от своих экспортеров каждые 15 секунд, что достаточно для большинства экспортеров.
Теперь добавьте сам Прометей в список экспортеров, чтобы очистить его с помощью следующей директивы + scrape_configs +
:
Конфигурационный файл Prometheus, часть 2 - /etc/prometheus/prometheus.yml
...
scrape_configs:
- job_name: ''
scrape_interval:
static_configs:
- targets: ['']
Прометей использует + job_name +
для обозначения экспортеров в запросах и на графиках, поэтому обязательно выберите здесь что-нибудь описательное.
И поскольку Prometheus экспортирует важные данные о себе, которые вы можете использовать для мониторинга производительности и отладки, мы переопределили глобальную директиву + scrape_interval +
с 15 секунд до 5 секунд для более частых обновлений.
Наконец, Прометей использует директивы + static_configs +
и + target +
, чтобы определить, где работают экспортеры. Поскольку этот конкретный экспортер работает на том же сервере, что и сам Прометей, мы можем использовать + localhost +
вместо IP-адреса вместе с портом по умолчанию, + 9090 +
.
Ваш конфигурационный файл должен теперь выглядеть так:
Файл конфигурации Prometheus - /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: ''
scrape_interval:
static_configs:
- targets: ['']
Сохраните файл и выйдите из текстового редактора.
Теперь установите владельца файла и пользователя в файле конфигурации для пользователя * 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, файле конфигурации и связанных службах. Это также подтверждает, что Прометей прослушивает порт + 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. / Прометей + `каталог. (Подробная информация о служебных файлах `+ systemd +
выходит за рамки этого руководства, но вы можете узнать больше по адресу https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files# where-are-systemd-unit-files-found [Общие сведения о системных единицах и файлах модулей].)
Скопируйте следующее содержимое в файл:
Файл службы Прометея - /etc/systemd/system/prometheus.service
[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
Вывод сообщает вам статус Прометея, идентификатор основного процесса (PID), использование памяти и многое другое.
Если статус службы не ++
, следуйте инструкциям на экране и повторно просмотрите предыдущие шаги, чтобы устранить проблему, прежде чем продолжить обучение.
Output● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
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//
Используйте команду + sha256sum +
для генерации контрольной суммы загруженного файла:
sha256sum
Проверьте целостность загруженного файла, сравнив его контрольную сумму с контрольной суммой на странице загрузки.
Output
Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги.
Теперь распакуйте загруженный архив.
tar xvf
Это создаст каталог с именем ++
, содержащий двоичный файл с именем + node_exporter +
, лицензию и уведомление.
Скопируйте двоичный файл в каталог + / usr / local / bin +
и установите владельца пользователя и группы для пользователя * node_exporter *, который вы создали на шаге 1.
sudo cp /node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Наконец, удалите оставшиеся файлы из вашего домашнего каталога, поскольку они больше не нужны.
rm -rf
Теперь, когда вы установили Node Exporter, давайте проверим его, запустив перед созданием служебного файла для него, чтобы он запускался при загрузке.
Шаг 6 - Запуск экспортера узлов
Шаги для запуска Node Exporter аналогичны шагам для запуска самого Prometheus. Начните с создания файла службы Systemd для Node Exporter.
sudo nano /etc/systemd/system/node_exporter.service
Этот служебный файл указывает вашей системе запускать Node Exporter от имени пользователя * node_exporter * с включенным набором сборщиков по умолчанию.
Скопируйте следующий контент в сервисный файл:
Файл службы Node Exporter - /etc/systemd/system/node_exporter.service
[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, в том числе включенных по умолчанию и устаревших, можно найти в https://github.com/prometheus/node_exporter/blob/master/README.md#enabled-by-default[Node. Экспортный файл README.
Если вам когда-нибудь понадобится переопределить список сборщиков по умолчанию, вы можете использовать флаг + - collectors.enabled +
, например:
Часть файла службы Node Exporter - /etc/systemd/system/node_exporter.service
...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled
...
Предыдущий пример сказал бы 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: (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 +
.
Файл конфигурации Prometheus, часть 1 - /etc/prometheus/prometheus.yml
...
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
Поскольку этот экспортер также работает на том же сервере, что и сам Prometheus, мы можем снова использовать localhost вместо IP-адреса вместе с портом по умолчанию Node Exporter, «+ 9100 +».
Весь ваш файл конфигурации должен выглядеть так:
Файл конфигурации Prometheus - /etc/prometheus/prometheus.yml
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']
Сохраните файл и выйдите из текстового редактора, когда будете готовы продолжить.
Наконец, перезапустите Прометей, чтобы изменения вступили в силу.
sudo systemctl restart prometheus
Еще раз проверьте, что все работает правильно с помощью команды + status +
.
sudo systemctl status prometheus
Если статус службы не установлен на «++», следуйте инструкциям на экране и проследите свои предыдущие шаги, прежде чем двигаться дальше.
Output● prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
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 +
, где вы хотите сохранить файл и какое имя пользователя вы хотите использовать для аутентификации.
sudo htpasswd -c
Результатом этой команды является вновь созданный файл с именем + .htpasswd +
, расположенный в каталоге ++
, содержащий имя пользователя и хешированную версию введенного вами пароля.
Затем настройте Nginx для использования вновь созданных паролей.
Сначала сделайте Prometheus-специфическую копию файла конфигурации Nginx по умолчанию, чтобы вы могли вернуться к настройкам по умолчанию позже, если столкнетесь с проблемой.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus
Затем откройте новый файл конфигурации.
sudo nano /etc/nginx/sites-available/prometheus
Найдите блок + location / +
под блоком + server +
. Это должно выглядеть так:
/ И т.д. / Nginx / сайты-отсутствуют / по умолчанию
...
location / {
try_files $uri $uri/ =404;
}
...
Поскольку мы будем перенаправлять весь трафик в Prometheus, замените директиву + try_files +
следующим содержанием:
/ И т.д. / Nginx / сайты Недоступные / Prometheus
...
location / {
auth_basic "";
auth_basic_user_file ;
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: (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 recommend install и использование Grafana для чего угодно сложнее, чем тестирование и отладка.
В этом руководстве мы будем использовать встроенный веб-интерфейс, чтобы убедиться, что Prometheus и Node Exporter запущены и работают, а также взглянем на простые запросы и графики.
Для начала наведите указатель на веб-браузер на + http: // +
.
В диалоговом окне HTTP-аутентификации введите имя пользователя и пароль, которые вы выбрали в шаге 8.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Authentication.png [Аутентификация Prometheus]
После входа в систему вы увидите * Браузер выражений *, где вы можете выполнять и визуализировать пользовательские запросы.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Welcome.png [Приветствие Prometheus Dashboard]
Прежде чем выполнять какие-либо выражения, проверьте статус Prometheus и Node Explorer, щелкнув сначала в меню * Status * в верхней части экрана, а затем в пункте меню * Targets *. Поскольку мы настроили Prometheus для очистки как самого себя, так и Node Exporter, вы должны увидеть обе цели в состоянии «+ UP +».
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Targets.png [Цели панели Prometheus]
Если экспортер отсутствует или отображается сообщение об ошибке, проверьте состояние службы с помощью следующих команд:
sudo systemctl status prometheus
sudo systemctl status node_exporter
Выходные данные для обеих служб должны сообщать о состоянии + Active: (выполняется) +
. Если служба либо вообще не активна, либо активна, но все еще не работает должным образом, следуйте инструкциям на экране и проследите предыдущие шаги, прежде чем продолжить.
Далее, чтобы убедиться, что экспортеры работают правильно, мы выполним несколько выражений против Node Exporter.
Сначала щелкните меню * График * в верхней части экрана, чтобы вернуться в * Браузер выражений *.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Graph.png [График панели Prometheus]
В поле * Expression * введите + node_memory_MemAvailable +
и нажмите кнопку * Execute *, чтобы обновить вкладку * Console * объемом памяти, имеющимся на вашем сервере.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal.png [Панель управления Prometheus MemTotal]
По умолчанию Node Exporter сообщает эту сумму в байтах. Чтобы преобразовать в мегабайты, мы будем использовать математические операторы для деления на 1024 дважды.
В поле * Expression * введите + node_memory_MemAvailable / 1024/1024 +
и затем нажмите кнопку * Execute *.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal-MB.png [Панель управления Prometheus MemTotal MB]
На вкладке * Console * теперь отображаются результаты в мегабайтах.
Если вы хотите проверить результаты, выполните команду + free +
на вашем терминале. (Флаг + -h +
указывает + free +
сообщать в удобочитаемом формате, давая нам сумму в мегабайтах.)
free -h
Этот вывод содержит сведения об использовании памяти, включая доступную память, отображаемую в столбце * available *.
Output total used free shared buff/cache available
Mem: 488M 144M 17M 3.7M 326M 324M
Swap: 0B 0B 0B
В дополнение к основным операторам язык запросов Prometheus также предоставляет множество функций для агрегирования результатов.
В поле * Expression * введите + avg_over_time (node_memory_MemAvailable [5m]) / 1024/1024 +
и нажмите кнопку * Execute *. Результатом будет средний доступный объем памяти за последние 5 минут в мегабайтах.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Average-Memory.png [Средняя память Прометея]
Теперь нажмите на вкладку * График *, чтобы отобразить выполненное выражение в виде графика, а не в виде текста.
изображение: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Graph-Average-Memory2.png [Средняя память графика Прометея]
Наконец, оставаясь на этой вкладке, наведите курсор мыши на график для получения дополнительной информации о любой конкретной точке вдоль осей X и Y графика.
Если вы хотите больше узнать о создании выражений во встроенном веб-интерфейсе Prometheus, см. Раздел официальной документации Querying Prometheus.
Заключение
В этом руководстве мы загрузили, настроили, защитили и протестировали полную установку Prometheus с одним дополнительным экспортером.
Если вы хотите узнать больше о том, как Прометей работает под капотом, взгляните на https://www.digitalocean.com/community/tutorials/how-to-query-prometheus-on-ubuntu-14-04- part-1 # step-2-% E2% 80% 94-Установка-демо-экземпляров [Как запросить Прометей в Ubuntu 14.04]. (Поскольку у вас уже установлен Prometheus, вы можете пропустить первый шаг.)
Чтобы узнать, что еще может сделать Прометей, посетите the официальная документация Прометея.
А чтобы узнать больше о расширении Prometheus, посетите list доступных экспортеров, а также official Grafana.