Поиск по сайту:

Как установить Прометей на 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, чтобы эти пользователи не могли войти на сервер.

  1. sudo useradd --no-create-home --shell /bin/false prometheus
  2. sudo useradd --no-create-home --shell /bin/false node_exporter

Прежде чем мы загрузим двоичные файлы Prometheus, создайте необходимые каталоги для хранения файлов и данных Prometheus. Следуя стандартным соглашениям Linux, мы создадим каталог в /etc для файлов конфигурации Prometheus и каталог в /var/lib для его данных.

  1. sudo mkdir /etc/prometheus
  2. sudo mkdir /var/lib/prometheus

Теперь установите пользователя и группу в новых каталогах для пользователя prometheus.

  1. sudo chown prometheus:prometheus /etc/prometheus
  2. sudo chown prometheus:prometheus /var/lib/prometheus

Теперь, когда у нас есть пользователи и каталоги, мы можем загрузить Prometheus, а затем создать минимальный файл конфигурации для запуска Prometheus в первый раз.

Шаг 2 — Загрузка Прометея

Сначала загрузите и распакуйте текущую стабильную версию Prometheus в свой домашний каталог. Вы можете найти последние двоичные файлы вместе с их контрольными суммами на странице загрузки Prometheus.

  1. cd ~
  2. curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

Затем используйте команду sha256sum для генерации контрольной суммы загруженного файла:

  1. sha256sum prometheus-2.0.0.linux-amd64.tar.gz

Сравните вывод этой команды с контрольной суммой на странице загрузки Prometheus, чтобы убедиться, что ваш файл является подлинным и не поврежденным.

Output
e12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46 prometheus-2.0.0.linux-amd64.tar.gz

Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги, чтобы повторно загрузить файл.

Теперь распакуйте скачанный архив.

  1. tar xvf prometheus-2.0.0.linux-amd64.tar.gz

Это создаст каталог с именем prometheus-2.0.0.linux-amd64, содержащий два двоичных файла (prometheus и promtool), каталоги consoles и console_libraries, содержащие файлы веб-интерфейса, лицензию, уведомление и несколько файлов примеров.

Скопируйте два двоичных файла в каталог /usr/local/bin.

  1. sudo cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/
  2. sudo cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/

Установите права пользователя и группы на двоичные файлы для пользователя prometheus, созданного на шаге 1.

  1. sudo chown prometheus:prometheus /usr/local/bin/prometheus
  2. sudo chown prometheus:prometheus /usr/local/bin/promtool

Скопируйте каталоги consoles и console_libraries в /etc/prometheus.

  1. sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus
  2. sudo cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus

Установите права пользователя и группы на каталоги для пользователя prometheus. Использование флага -R гарантирует, что право собственности будет установлено и для файлов внутри каталога.

  1. sudo chown -R prometheus:prometheus /etc/prometheus/consoles
  2. sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Наконец, удалите оставшиеся файлы из вашего домашнего каталога, так как они больше не нужны.

  1. rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64

Теперь, когда Prometheus установлен, мы создадим его конфигурационные и служебные файлы для подготовки к его первому запуску.

Шаг 3 — Настройка Прометея

В каталоге /etc/prometheus используйте nano или ваш любимый текстовый редактор, чтобы создать файл конфигурации с именем prometheus.yml. На данный момент этот файл будет содержать достаточно информации для первого запуска Prometheus.

  1. 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.

  1. sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

После завершения настройки мы готовы протестировать Prometheus, запустив его в первый раз.

Шаг 4 — Запуск Прометея

Запустите Prometheus от имени пользователя prometheus, указав путь как к файлу конфигурации, так и к каталогу данных.

  1. sudo -u prometheus /usr/local/bin/prometheus \
  2. --config.file /etc/prometheus/prometheus.yml \
  3. --storage.tsdb.path /var/lib/prometheus/ \
  4. --web.console.templates=/etc/prometheus/consoles \
  5. --web.console.libraries=/etc/prometheus/console_libraries

Вывод содержит информацию о ходе загрузки Prometheus, файле конфигурации и связанных службах. Это также подтверждает, что Prometheus прослушивает порт 9090.

Output
level=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.

  1. 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.

  1. sudo systemctl daemon-reload

Теперь вы можете запустить Prometheus с помощью следующей команды:

  1. sudo systemctl start prometheus

Чтобы убедиться, что Prometheus работает, проверьте статус службы.

  1. 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.

Наконец, включите службу для запуска при загрузке.

  1. sudo systemctl enable prometheus

Теперь, когда Prometheus запущен и работает, мы можем установить дополнительный экспортер для создания метрик о ресурсах нашего сервера.

Шаг 5 — Загрузка Node Exporter

Чтобы расширить Prometheus за пределы метрик только о себе, мы установим дополнительный экспортер под названием Node Exporter. Node Exporter предоставляет подробную информацию о системе, включая использование ЦП, диска и памяти.

Сначала загрузите текущую стабильную версию Node Exporter в свой домашний каталог. Вы можете найти последние двоичные файлы вместе с их контрольными суммами на странице загрузки Prometheus.

  1. cd ~
  2. curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

Используйте команду sha256sum для создания контрольной суммы загруженного файла:

  1. sha256sum node_exporter-0.15.1.linux-amd64.tar.gz

Проверьте целостность загруженного файла, сравнив его контрольную сумму с контрольной суммой на странице загрузки.

Output
7ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897df61a127 node_exporter-0.15.1.linux-amd64.tar.gz

Если контрольные суммы не совпадают, удалите загруженный файл и повторите предыдущие шаги.

Теперь распакуйте скачанный архив.

  1. 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.

  1. sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin
  2. sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Наконец, удалите оставшиеся файлы из вашего домашнего каталога, так как они больше не нужны.

  1. 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.

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

  1. sudo systemctl daemon-reload

Теперь вы можете запустить Node Exporter с помощью следующей команды:

  1. sudo systemctl start node_exporter

Убедитесь, что Node Exporter работает правильно, с помощью команды status.

  1. 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 для запуска при загрузке.

  1. sudo systemctl enable node_exporter

Когда Node Exporter полностью настроен и работает, как и ожидалось, мы скажем Prometheus начать сбор новых метрик.

Шаг 7 — Настройка Prometheus для очистки экспортера узлов

Поскольку Prometheus очищает только те экспортеры, которые определены в части scrape_configs его файла конфигурации, нам нужно добавить запись для Node Exporter, как мы сделали это для самого Prometheus.

Откройте файл конфигурации.

  1. 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, чтобы изменения вступили в силу.

  1. sudo systemctl restart prometheus

Еще раз убедитесь, что все работает правильно с помощью команды status.

  1. 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 для создания файлов паролей.

  1. sudo apt-get update
  2. sudo apt-get install apache2-utils

Теперь создайте файл паролей, указав htpasswd, где вы хотите сохранить файл и какое имя пользователя вы хотите использовать для аутентификации.

Примечание. htpasswd предложит вам ввести и повторно подтвердить пароль, который вы хотите связать с этим пользователем. Кроме того, запишите имя пользователя и пароль, которые вы вводите здесь, так как они понадобятся вам для входа в Prometheus на шаге 9.

  1. sudo htpasswd -c /etc/nginx/.htpasswd sammy

Результатом этой команды является вновь созданный файл с именем .htpasswd, расположенный в каталоге /etc/nginx, содержащий имя пользователя и хэшированная версия введенного вами пароля.

Затем настройте Nginx для использования вновь созданных паролей.

Во-первых, сделайте специфичную для Prometheus копию файла конфигурации Nginx по умолчанию, чтобы вы могли вернуться к значениям по умолчанию позже, если столкнетесь с проблемой.

  1. sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus

Затем откройте новый файл конфигурации.

  1. 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, и активируйте новый файл конфигурации, создав ссылку на него.

  1. sudo rm /etc/nginx/sites-enabled/default
  2. sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/

Перед перезапуском Nginx проверьте конфигурацию на наличие ошибок с помощью следующей команды:

  1. sudo nginx -t

Вывод должен указывать на то, что синтаксис в порядке и тест выполнен успешно. Если вы получили сообщение об ошибке, следуйте инструкциям на экране, чтобы устранить проблему, прежде чем переходить к следующему шагу.

Output of Nginx configuration tests
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезагрузите Nginx, чтобы применить все изменения.

  1. sudo systemctl reload nginx

Убедитесь, что Nginx запущен и работает.

  1. 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.

Если какой-либо экспортер отсутствует или отображает сообщение об ошибке, проверьте статус службы с помощью следующих команд:

  1. sudo systemctl status prometheus
  1. sudo systemctl status node_exporter

Выходные данные для обеих служб должны сообщать о состоянии Active: active (работает). Если служба либо вообще не активна, либо активна, но по-прежнему работает неправильно, следуйте инструкциям на экране и повторите предыдущие шаги, прежде чем продолжить.

Затем, чтобы убедиться, что экспортеры работают правильно, мы выполним несколько выражений для Node Exporter.

Сначала щелкните меню «График» в верхней части экрана, чтобы вернуться в браузер выражений.

В поле «Выражение» введите node_memory_MemAvailable и нажмите кнопку «Выполнить», чтобы обновить вкладку «Консоль», указав объем памяти, которым располагает ваш сервер.

По умолчанию Node Exporter сообщает это количество в байтах. Чтобы преобразовать в мегабайты, мы будем использовать математические операторы, чтобы дважды разделить на 1024.

В поле «Выражение» введите node_memory_MemAvailable/1024/1024 и нажмите кнопку «Выполнить».

На вкладке Консоль теперь будут отображаться результаты в мегабайтах.

Если вы хотите проверить результаты, выполните команду free со своего терминала. (Флаг -h указывает free отчитаться в удобочитаемом формате, давая нам количество в мегабайтах.)

  1. 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.