Как установить Prometheus в Ubuntu 16.04

Вступление

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 для создания метрик, которые облегчат мониторинг производительности вашего сервера.

Предпосылки

Прежде чем следовать этому уроку, убедитесь, что у вас есть:

Шаг 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.

Related