Мы решили поделиться переводом статьи с описанием настроек для мониторинга сервера Ubuntu

Англоязычный оригинал статьи на https://medium.com/20ms/how-to-set-up-prometheus-to-monitor-your-ubuntu-server-da7973797616
Первоначально опубликовано в blog.100tb.com.

Существует множество пакетов для настройки мониторинга и регистрации метрик для вашего выделенного сервера Bare Metal или Virtual Server. Одним из самых новых приложений мониторинга является Prometheus.
Он был разработан компанией SoundCloud как инструмент для мониторинга ее собственных систем и использует темпоральную (time series) базу данных с многомерным хранилищем данных в сочетании с мощным языком запросов, позволяющим системным администраторам определять свои собственные метрики и создавать отчеты.
Prometheus состоит из нескольких элементов: собственно сервера Prometheus и модуля Node Exporter.

Начало работы с Prometheus

К сожалению, поскольку Prometheus включен в репозитории для Ubuntu 16.04, а они еще не выпущены, нам придется установить его из бинарных релизов на GitHub. Поэтому сначала нам нужно получить этот релиз из репозитория Prometheus GitHub и извлечь его.

mkdir ~/Prometheus
cd ~/Prometheus
wget https://github.com/prometheus/prometheus/releases/download/0.17.0/prometheus-0.17.0.linux-amd64.tar.gz
mkdir server
cd server
tar -xvzf ../prometheus-0.17.0.linux-amd64.tar.gz

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

cd prometheus-0.17.0.linux-amd64
./prometheus -version

Если все на этот момент прошло хорошо, у вас будет версия Prometheus и версия Go, который он использует. Поскольку Prometheus был разработан с основной целью мониторинга веб-сервисов, он сам по себе не будет осуществлять мониторинг ваших локальных систем. И здесь в игру вступает Node Exporter, который берет информацию из вашей системы и передает ее в Prometheus. Итак, следующим шагом является загрузка и установка Node Exporter:

cd ~/Prometheus
wget https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz
mkdir node_exporter
cd node_exporter
tar -xvzf ../https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz

Теперь, после того как Node Exporter запущен, он будет работать в фоновом режиме и экспортировать метрики в веб-интерфейс, с помощью которого эти метрики можно будет захватывать. Чтобы привязаться к тому, как сервисы обычно обрабатываются на Ubuntu, мы можем создать скрипт Upstart для запуска сервиса при загрузке. Создайте сначала ссылку для Node Exporter в /usr/bin

sudo ln -s ~/Prometheus/node_exporter/node_exporter /usr/bin

Затем нам потребуется создать скрипт запуска (upstart), поэтому откройте его, как показано ниже. Обратите внимание, что я здесь для редактирования файла использую nano, но доступны и другие текстовые редакторы:
sudo nano /etc/init/node_exporter.conf
Затем вставьте в этот файл следующие строки:

#Prometheus Node Exporter Upstart script
start on startup
script
/usr/bin/node_exporter
end script

Это хороший простой скрипт — сохраните его и выйдите, и теперь можно использовать команду service, чтобы запускать и останавливать Node Exporter по мере необходимости.
service node_exporter start
Вы можете проверить, что Node Exporter работает, подключившись к вашему серверу по порту 9100 с помощью веб-браузера и просмотрев файл метрик, который будет содержать множество метрик о вашем сервере, записанные Prometheus.
http://yourserver.com:9100/metrics
Следующее, что нужно сделать – это заставить Prometheus «слушать» метрики от Node Exporter, и для этого, во-первых, необходимо создать конфигурационный файл для Prometheus.
sudo nano /etc/prometheus.yml
Теперь добавьте следующую конфигурацию:

scrape_configs:
— job_name: “node”
scrape_interval: “15s”
target_groups:
— targets: [’localhost:9100’]

Сохраните и выйдите из файла, и теперь все готово к работе. Мы дали этому заданию имя «node» (узел), так как оно считывает некоторую конфигурацию «по умолчанию» для Node Exporter и экономит массу времени, заполняя конфигурационный файл.

Проверяем, что мониторинг работает

Наступает момент истины — если вы запустите Prometheus, он должен считать конфигурационный файл и запуститься без каких-либо ошибок. Это сделать легко — запустить основной исполняемый файл Prometheus:
prometheus -config.file /etc/prometheus.yml
Вы должны увидеть, как по экрану бегут вверх сообщения о статусе, из которых вам нужно обратить внимание на следующие: «Loading configuration file prometheus.yml» («Загрузка файла конфигурации prometheus.yml»), «Target manager started» («Целевая управляющая программа запущена») и «Listening on :9090» («Прослушивание порта: 9090»). Если вы видели все эти сообщения, и ошибок нет, то все работает. Теперь вы можете подключиться к порту 9090 на своем сервере, чтобы просмотреть ваши метрики.
http://yourserver.com:9090
Когда вы убедились, что все работает, то можете воспользоваться ctrl + c, чтобы остановить Prometheus, поскольку не очень практично каждый раз, когда сервер перезагружается, входить на него и вручную его запускать. Это означает, что следующим нашим шагом будет создание файла, запускающего сам Prometheus. Сначала так же создадим ссылку для Prometheus в /usr/bin:

ln -s ~/Prometheus/server/prometheus-0.17.0.linux-amd64/prometheus /usr/bin
Затем откройте конфигурационный файл для запуска Prometheus:
nano /etc/init/prometheus.conf
И вставьте в него следующий текст.
#Prometheus Upstart Script
start on startup
script
/usr/bin/prometheus -config.file /etc/prometheus.yml > /var/log/prometheus.log 2>&1 &
end script

Теперь вы можете запустить Prometheus как сервис:

service prometheus start

Prometheus теперь работает в фоновом режиме, записывая метрики вашего сервера в файле /var/log/prometheus; он также будет запускаться при перезагрузке вашего сервера. Если вы воспользуетесь веб-интерфейсом Prometheus, вы увидите, что Prometheus осуществляет мониторинг состояния вашего сервера, и также вам доступен набор графиков с подробным описанием этих данных.

Как настроить Prometheus для мониторинга вашего сервера Ubuntu