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

Prometheus описание

Prometheus — это очень мощная система мониторинга и оповещения с открытым исходным кодом, подходящая для динамических сред, таких как облачное пространство.

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

Редко вам нужно будет скомпилировать приложение из кода.

В этом руководстве мы расскажем, как установить на Prometheus на сервере Ubuntu 18.04.

Prometheus способен записывать любые чисто числовые временные ряды, как для машинно-ориентированных мониторов, таких как системы Linux, так и для мониторинга высокодинамичных сервис-ориентированных архитектур.

Инструменты визуализации, такие как Grafana, поддерживают запрос Прометея с источником данных Grafana для Prometheus, включенным с Grafana 2.5.0.

Компоненты Prometheus

Экосистема Прометея включает в себя различные компоненты, которые вместе работают для обеспечения полной системы мониторинга и оповещения.

Большинство компонентов являются необязательными, и вам нужно только установить их по требованию.

Основные компоненты:

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

Особенности Prometheus

  • многомерную модель данных с данными временных рядов, идентифицированными метрическим именем и парами ключ / значение
  • Он имеет очень гибкий язык запросов для использования своей многомерной модели
  • Одиночные серверные узлы автономны и не полагаются на распределенное хранилище.
  • Коллекция временных рядов Prometheus использует модель pull по протоколу HTTP
  • У этого есть автоматическое обнаружение целей целей, и файлы конфигурации могут быть использованы для того же самого.
  • Проброс временных рядов поддерживается через посреднический шлюз
  • Prometheus поддерживает несколько режимов графического отображения и панели управления

Установка Prometheus на Ubuntu 18.04

Поскольку Prometheus написан на Go, его пакеты распространяются как двоичные файлы.

На момент написания этой статьи последняя версия Prometheus была v2.2.1.

Вы можете проверить выпуски на официальной странице загрузки.

Предоставляемые пакеты предназначены для MacOS, Linux и Windows, поэтому убедитесь, что вы загружаете правильный пакет.

 # sudo su -
# export RELEASE = "2.2.1"
# wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz 

После загрузки архива извлеките его с помощью tar.

 # tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
prometheus-2.2.1.linux-amd64/
prometheus-2.2.1.linux-amd64/consoles/
prometheus-2.2.1.linux-amd64/consoles/index.html.example
prometheus-2.2.1.linux-amd64/consoles/node-cpu.html
prometheus-2.2.1.linux-amd64/consoles/node-disk.html
prometheus-2.2.1.linux-amd64/consoles/node-overview.html
prometheus-2.2.1.linux-amd64/consoles/node.html
prometheus-2.2.1.linux-amd64/consoles/prometheus-overview.html
prometheus-2.2.1.linux-amd64/consoles/prometheus.html
prometheus-2.2.1.linux-amd64/console_libraries/
prometheus-2.2.1.linux-amd64/console_libraries/menu.lib
prometheus-2.2.1.linux-amd64/console_libraries/prom.lib
prometheus-2.2.1.linux-amd64/prometheus.yml
prometheus-2.2.1.linux-amd64/LICENSE
prometheus-2.2.1.linux-amd64/NOTICE
prometheus-2.2.1.linux-amd64/prometheus
prometheus-2.2.1.linux-amd64/promtool

Перейдите во вновь созданный каталог

 # cd prometheus - $ {RELEASE} .linux-amd64 / 

Создание  системной группы Prometheus

Прометею нужен собственный пользователь и группа, чтобы работать от его лица.

 # groupadd --ystem prometheus
# grep prometheus / etc / group
Prometheus: х: 999:

Создание пользователя системы Prometheus

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

 # useradd -s / sbin / nologin -r -g prometheus prometheus # id prometheus uid = 999 (prometheus) gid = 999 (prometheus) groups = 999 (prometheus)

Создание каталогов конфигурации и данных для Prometheus

Прометею нужен каталог для хранения своих файлов данных и конфигурации.

Мы создадим / var / lib / prometheus для данных и / etc / prometheus для файлов конфигурации.

 # mkdir -p /etc/prometheus/{rules,rules.d,files_sd} / var / lib / prometheus 

 

Скопируйте двоичные файлы Prometheus в каталог в $ PATH

Предпочтительным каталогом для размещения сторонних двоичных файлов в Linux является / usr / local / bin /, поскольку он по умолчанию равен $ PATH и не мешает системным двоичным файлам.

 # cp prometheus promtool / usr / local / bin /
# ls / usr / local / bin /
Prometheus promtool 

Скопируйтеconsolesи console_libraries в каталог файлов конфигурации:

Консольные файлы и библиотеки необходимо размещать в каталоге / etc / prometheus /.

 # cp -r consoles/ console_libraries/ /etc/prometheus/

Создайте файл unitd:

Ubuntu 18.04 использует systemd init system по умолчанию, нам нужно создать файл Service unit для управления службой Prometheus.

Мы поместим файл в каталог / etc / systemd / system.

Имя файла должно заканчиваться на .service

 # cat /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus systemd service unit
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
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 \
--web.listen-address=0.0.0.0:9090

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target 

Обратите внимание, что:

Мы связываем службу с 0.0.0.0:9090.

он будет доступно из всех сетевых интерфейсов на сервере.

Ограничьте его, указав IP-адрес интерфейса, который вы хотите использовать, 127.0.0.1 только для локального доступа.

Указанный файл конфигурации — /etc/prometheus/prometheus.yml

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

Создайте файл конфигурации Prometheus.

Он будет помещено в каталог / etc / prometheus /.

 # cat /etc/prometheus/prometheus.yml
# Global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds.
evaluation_interval: 15s # Evaluate rules every 15 seconds.
scrape_timeout: 15s # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['localhost:9090'] 

Дополнительные параметры конфигурации см. Prometheus Configuration guide.

Изменение прав на каталог для пользователя и группы Prometheus

Владение файлами и данными Prometheus должно быть его пользователем и группой.

# chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/
# chmod -R 775 /etc/prometheus/ /var/lib/prometheus/

Запуск и включение службы Prometheus

Запустите и включите сервис Prometheus для запуска при загрузке системы

# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service.

Проверить состояние:

 # systemctl status prometheus 

Убедитесь, что порт 9090 прослушивается

# netstat -tunlp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 2140/prometheus

# telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]

Если у вас есть брандмауэр, например ufw, откройте порт 9090, чтобы иметь доступ к нему с удаленного устройства.

# ufw allow 9090
Rule added
Rule added (v6)

Чтобы разрешить определенную сеть, используйте:

# ufw allow from 192.168.10.0/24 to any port 9090
Rule added

# ufw status
Status: active

To Action From
-- ------ ----
9090 ALLOW Anywhere
9090 ALLOW 192.168.10.0/24
9090 (v6) ALLOW Anywhere (v6)

Чтобы запустить веб-интерфейс, откройте http://ip:9090

 

 

 

 

 

 

 

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40