Установка системы мониторинга Prometheus
В статье описывается установка системы Prometheus в совокупности с Grafana (визуализация данных), Alertmanager (обработчик уведомлений), Node exporter (сбор метрик). Установка Node exporter Скачиваем архив с бинарным файлом wget Распаковка В архиве содержится бинарник, который нужно перенести в /usr/local/bin: Создание отдельного юзера Необходимо создать юнит для возможности запуска при загрузке как системной службы. Создаем новый файл […]
В статье описывается установка системы Prometheus в совокупности с Grafana (визуализация данных), Alertmanager (обработчик уведомлений), Node exporter (сбор метрик).
Установка Node exporter
Скачиваем архив с бинарным файлом
Распаковка
tar -xzvf node_exporter-0.18.1.linux-amd64.tar.gz
В архиве содержится бинарник, который нужно перенести в /usr/local/bin:
mv node_exporter*/node_exporter /usr/local/bin
Создание отдельного юзера
useradd -rs /bin/false node_exporter
Необходимо создать юнит для возможности запуска при загрузке как системной службы.
Создаем новый файл
nano /etc/systemd/system/node_exporter.service
Содержимое:
[Unit]
#описание юнита
Description=Node Exporter
#старт после
After=network.target
[Service]
#пользователь
User=node_exporter
#группа
Group=node_exporter
#тип службы, simple – служба будет запущена незамедлительно.
Type=simple
#команда для запуска сервиса
ExecStart=/usr/local/bin/node_exporter
ExecStop=/usr/local/bin/node_exporter
ExecRestart=/usr/local/bin/node_exporter
#команда, указывающая на необходимость перезапуска демона
Restart=always
[Install]
#уровень запуска
WantedBy=multi-user.target
Далее необходимо перезагрузить демон system:
systemctl daemon-reload
Добавляем в автозагрузку и запускаем службу
systemctl enable node_exporter
systemctl start node_exporter
Установка Prometheus
Скачиваем Prometheus:
Распакуем архив и переместим бинарные файлы в /usr/local/bin:
tar -xzvf prometheus-2.14.0.linux-amd64.tar.gz
mv prometheus-2.14.0.linux-amd64/prometheus prometheus-2.14.0.linux-amd64/promtool /usr/local/bin
Создаем директории для конфигурационных файлов Prometheus
mkdir /etc/prometheus /var/lib/prometheus
Перемещаем конфигурационные файлы в ранее созданный каталог
mv prometheus-2.14.0.linux-amd64/console prometheus-2.14.0.linux-amd64/console_libraries /etc/prometheus
Удаляем оставшиеся файлы
rm -r prometheus-2.14.0.linux-amd64*
Установка Prometheus
После установки Prometheus необходимо создать конфигурационный файл /etc/prometheus/prometheus.yml
nano /etc/prometheus/prometheus.yml
Содержимое файла:
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus_metrics'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter_metrics'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
В конфигурационном файле задается интервал парсинга по умолчанию (параметром scrape_interval). Также заданы два источника метрик prometheus_metrics и node_exporter_metrics, для которых переопределен интервал парсинга в 5 сек. Заданы места, откуда эти метрики будут доступны – localhost. Prometheus использует порт 9090, node_explorer – 9100.
Создаем пользователя для Prometheus, как для node_explorer:
useradd -rs /bin/false prometheus
Изменим владельца файлов, которые будут использоваться Prometheus:
chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
Затем, создаем systemd юнит в файле /etc/systemd/system/prometheus.service
Содержание файла:
[Unit]
Description=Prometheus
After=network.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
Директива ExecStart задает пути, которые Prometheus должен использовать для хранения конфигурации, бд временных рядов, шаблонов визуализации веб-интерфейса.
Для применения изменений перезагружаем демон system:
systemctl daemon-reload
Также, добавляем сервис в автозагрузку и запускам сервис
systemctl enable prometheus
systemctl start prometheus
После окончания установки веб-интерфейс будет доступен по адресу http://ip_сервера:9090/
Вкладка “Console”, вкладка “Graph” для создания графиков на основе запроса.
Чтобы просмотреть список источников метрик, необходимо перейти на Status->Service Discovery. Здесь отображается список всех отслеживаемых служб, включая путь, по которому метрики доступны. По умолчанию путь /metrics.
Метрики и запросы Prometheus
Сервер Prometheus собирает метрики и сохраняет их в базе данных временных рядов.
Примеры метрик:
rate(node_network_receive_bytes_total[1m]) — средний сетевой трафик, полученный в секунду за последнюю минуту (в байтах)
node_filesystem_avail_bytes – объем файловой системы, доступное для пользователей без полномочий root (в байтах)
node_load1 – средняя загрузка за минуту
Установка AlertManager
Alertmanager — обработчик уведомлений.
Создаем юнит для systemd:
nano/etc/systemd/system/alertmanager.service
Содержимое файла:
[Unit]
Description=Alertmanager for prometheus
After=network.target
[Service]
User=alertmanager
ExecStart=/usr/local/bin/alertmanager \
--config.file=/etc/alertmanager/alertmanager.yml \
--storage.path=/var/lib/alertmanager/
ExecReload=/bin/kill -HUP $MAINPID
NoNewPrivileges=true
ProtectHome=true
ProtectSystem=full
[Install]
WantedBy=multi-user.target
Применение настроек и запуск alertmanager
systemctl daemon-reload
systemctl start alertmanager
systemctl status alertmanager
Веб-интерфейс alertmanager доступен по адресу http://ip_адрес_сервера:9093/
Установка Grafana
Grafana – инструмент визуализации данных.
Для получения Grafana переходим на https://grafana.com/grafana/download и скачиваем последнюю версию.
wget https://dl.grafana.com/oss/release/grafana-6.4.4-1.x86_64.rpm
yum localinstall grafana-6.4.4-1.x86_64.rpm
Запускаем Grafana, добавляем в автозагрузку.
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server.service
В веб-интерфейс Grafana можно попасть по адресу http://ip_адрес_сервера:3000/ По умолчанию учетные данные admin/admin. После входа можно установить новый пароль.
Переходим Configuration->Data Sourse->Prometheus и добавляем Prometheus.
Для установки dashboard’а (виджета) перейти в веб-интерфейсе Dashboards->Manage->Import.
Также необходимо зайти на https://grafana.com/grafana/dashboards, перейти на страницу dashboard’а. В поле «Get this dashboard» будет указан его ID, который необходимо вставить в Grafana в поле “Grafana.com Dashboard” (или скопировать и вставить url дашбоарда).
После этого подтвердить, нажав на “Import”.
В поле Datasourse дашбоарда 1 Node Exporter 0.18.x (Host Metrics) необходимо выбрать Prometheus
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.