- Prometheus описание
- Компоненты Prometheus
- Особенности Prometheus
- Установка Prometheus на Ubuntu 18.04
- Создание системной группы Prometheus
- Создание пользователя системы Prometheus
- Скопируйте двоичные файлы Prometheus в каталог в $ PATH
- Скопируйтеconsolesи console_libraries в каталог файлов конфигурации:
- Создайте файл unitd:
- Создайте файл конфигурации Prometheus.
- Изменение прав на каталог для пользователя и группы Prometheus
- Запуск и включение службы Prometheus
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
Бездушный сраный копипаст!!!!
не копипаст, а перевод