[Настройка Linux, Системное администрирование, Виртуализация] Мониторинг Virtuozzo Hybrid Server с помощь Prometheus
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Пользователи продуктов Virtuozzo и OpenVZ обычно работают с множеством развернутых машин под управлением нашего ПО. Поэтому для них логично запустить централизованный мониторинг всего парка таких серверов. И сегодня мы расскажем о том, как использовать для этого встроенные сервисы мониторинга Virtuozzo Hybrid Infrastructure на основе Prometheus.
Схожие сервисы доступны и в VHS, но только если вы используете графические интерфейс для управления кластером Virtuozzo Storage. Если же у вас нет кластера Storage, или вы не используете GUI для его администрирования (либо работаете с OpenVZ, где подключение Virtuozzo Storage является возможным, но редко встречающимся сценарием), то для мониторинга приходится обращаться к сторонним решениям.Анализ предпочтений пользователей (публично доступный для OpenVZ здесь) показывает следующее: как и для мониторинга серверов с Linux и основанных на нем решениями, для продуктов Virtuozzo популярны Zabbix и Prometheus.Мы поговорим сегодня про Prometheus – более молодой, но активно набирающий популярность инструментарий.Непосредственно Prometheus занимается сбором данных от подвластных ему экспортеров - в репозиториях VHS доступны node_exporter (для сбора общих характеристик сервера, таких как использование ресурсов и состояние дисков) и libvirt_exporter (для сбора информации о виртуальных машинах, управляемых libvirt). Экспортеры основаны на соответствующих стандартных проектах, но содержат ряд специфичных для Virtuozzo изменений.Для удобного изучения собираемой информации, в связке с Prometheus обычно устанавливается инструментарий визуализации данных Grafana, а для возможности получения оповещений о требующих внимания администратора событиях – Alertmanager.Готовим плацдармPrometheus, Grafana и Alertmanager можно развернуть на отдельной машине, не обязательно физической. Раз уж мы говорим о Virtuozzo Hybrid Server, то логично развернуть их внутри контейнера на одной из машин VHS. Например, внутри контейнера с Virtuozzo Linux 8; для функционирования вполне достаточно двух ядер ЦПУ и пары гигабайт памяти:
# prlctl create promct --vmtype=ct --ostemplate=vzlinux-8-x86_64
# prlctl set promct --cpu 2
# prlctl set promct --memsize 2G
Не забудьте выставить необходимый IP адрес и доменное имя, по которым будет доступен ваш контейнер.Внутри контейнера не помешает выставить правильный часовой пояс:# timedatectl set-timezone 'Europe/Moscow' А также настроить firewall – порт 9090 для веб-интерфейса Prometheus, 9093 для AlertManager и 3000 для Grafana. Обратите внимание, что веб Prometheus и Alertmanager доступны без пароля, так что выставляйте их только в ваши внутренние сети.
# firewall-cmd --zone=public --permanent --add-port=9090/tcp
# firewall-cmd --zone=public --permanent --add-port=9093/tcp
# firewall-cmd --zone=public --permanent --add-port=3000/tcp
# firewall-cmd --reload
Устанавливаем Prometheus & co.Prometheus входит в репозитории многих дистрибутивов, в том числе и Virtuozzo Linux 8, поэтому можно его установить штатными средствами:# yum install prometheusЕсли вас не устраивает версия из дистрибутива (например, хочется самую свежую, либо наоборот - свежая имеет какие-то раздражающие вас проблемы), то можно просто скачать бинарные файлы с GitHub и положить их в директорию /opt (или в другую на ваш выбор). Например, для версии 2.21.0:
# cd /opt
# wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz
# tar -xzf prometheus*.tar.gz
Единственный нюанс при ручной установке - не забыть создать (либо скорректировать) service-файл для systemd, чтобы там были правильные пути:
# cat /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/prometheus-2.21.0.linux-amd64
Restart=on-failure
ExecStart=/opt/prometheus-2.21.0.linux-amd64/prometheus
[Install]
WantedBy=multi-user.target
Аналогично с Alertmanager - можно установить из репозиториев:# yum install alertmanager ... А можно и с сайта, точно также не забыв service-файл:
# wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
# cd /opt
# tar -xzf alertmanager*.tar.gz
# cat /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=Alertmanager
Wants=network-online.target
After=network-online.target
After=prometheus.service
[Service]
Type=simple
WorkingDirectory=/root/alertmanager-0.21.0.linux-amd64
Restart=on-failure
ExecStart=/root/alertmanager-0.21.0.linux-amd64/alertmanager --config.file=alertmanager.yml
[Install]
WantedBy=multi-user.target
Grafana сразу предоставляет собранные rpm-пакеты, так что можно, опять же, поставить либо из дистрибутива:# yum install grafana либо с сайта проекта: # yum install https://dl.grafana.com/oss/release/grafana-7.1.5-1.x86_64.rpm Подготавливаем машины с Virtuozzo Hybrid Server На каждом сервере VHS, который предполагается мониторить, необходимо установить пакеты с экспортерами: # yum install node_exporter libvirt_exporterЧтобы экспортеры могли отдавать данные в Prometheus, необходимо открыть соответствующие порты - 9177 для libvirt_exporter и 9100 для node_exporter. Доступ к ним желательно ограничить адресом машины с Prometheus, чтобы посторонние люди не делали попыток снять метрики с ваших серверов:
# firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="1.2.3.4/32"
port protocol="tcp" port="9177" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="1.2.3.4/32"
port protocol="tcp" port="9100" accept'
# firewall-cmd --reload
Здесь "1.2.3.4" необходимо поменять на реальный адрес Prometheus.Наконец, смело включаем и запускаем сервисы экспортеров:
# systemctl enable node_exporter
# systemctl enable libvirt-exporter
# systemctl start node_exporter
# systemctl start libvirt-exporter
Дело за малым - надо сообщить Прометею, откуда ему собирать информацию.Настройка PrometheusКонфигурация самого Prometheus содержится в наборе Yaml-файлов. Писать их с нуля, даже с помощью примеров из документации — то еще развлечение. Именно этот процесс и решили улучшить в Virtuozzo, положив в репозитории VHS 7 пакет vz-prometheus-cfg с шаблонами файлов конфигурации. Его можно установить на любой машине VHS 7, а если вы развернули Prometheus внутри VzLinux 8 — то можно его поставить прямо на сервере из репозиториев этого дистрибутива:# yum install vz-prometheus-cfgПосле чего изучать директорию /usr/share/vz-prometheus-cfg/, начав с файла prometheus-example.yml.Этот файл необходимо отредактировать под ваши нужды и под именем prometheus.yml сохранить в машину или контейнер, где у вас расположен Prometheus. Главное, что там необходимо изменить – это местоположение файлов *rules.yml и *alerts.yml, которые также можно скопировать из директории /usr/share/vz-prometheus-cfg/ на сервер Prometheus. Можно их изучить и даже отредактировать, однако они вполне работоспособны и в исходном варианте.В первую очередь здесь интересны vz-rules, содержащие правила сбора информации о потреблении ресурсов (диска, процессора, памяти и сети) виртуальными окружениями и предупреждения о проблемах с ресурсами (останов ВМ из-за ошибки диска, исчерпание диска на сервере и тому подобное).Непосредственно машины, с которых надо собирать информацию, указываются в target-файлах. В первом приближении достаточно одного такого файла со списком машин для каждого экспортера (напомним, node_exporter отдает информацию на порту 9100, а libvirt - 9177):
# cat my-vz-libvirt.yml
- labels:
group: my-vz-deployment
targets:
- my.node1:9177
- my.node2:9177
# cat my-vz-node.yml
- labels:
group: my-vz-deployment
targets:
- my.node1:9100
- my.node2:9100
Пути к этим файлам необходимо указать в соответствующих разделах секции scrape_configs в prometheus.yml:
scrape_configs:
...
- job_name: node
...
file_sd_configs:
- files:
- /root/prometheus-2.21.0.linux-amd64/targets/my-vz-node.yml
- job_name: libvirt
...
file_sd_configs:
- files:
- /root/prometheus-2.21.0.linux-amd64/targets/my-vz-libvirt.yml
Пример полного файла конфигурации можно посмотреть в документации: https://docs.virtuozzo.com/virtuozzo_hybrid_server_7_users_guide/advanced-tasks/monitoring-via-prometheus.html. Обратите внимание, что важными параметрами являются job_name — на них идет отсылка в файлах с правилами и алертами. Так что если задумаете менять эти имена — не забудьте пройтись и по другим файлами конфигурации и провести соответствующие замены.Как только все необходимые файлы отредактированы - пора стартовать сервисы:
# systemctl start prometheus
# systemctl start alertmanager
# systemctl start grafana-server
После чего продолжать уже с настройкой двух других инструментовGrafana и AlertmanagerКонфигурация Grafana осуществляется через ее веб-интерфейс по адресу http://<ваш-сервер>:3000. Логин-пароль по умолчанию - "admin" / "admin".Настройка достаточно проста и стандартна - сначала необходимо указать "Prometheus" как источник данных, пройдя в Configuration -> Data Sources -> "Add data source", выбрав "Prometheus" и указав http://localhost:9090 в качестве его адреса.Далее можно импортировать готовые json-файлы, опять же поставляемые с пакетов vz-prometheus-cfg - grafana_hn_dashboard.json и grafana_ve_dashboard.json - служащие соответственно для отображения информации о серверах и о виртуальных окружениях. Импорт осуществляется в меню "Dashboards" -> "Manage" -> "Import", в качестве источника данных необходимо добавить настроенный ранее Prometheus.И, вуаля, – к этому моменту Prometheus уже вполне мог получить какие-то данные с ваших машин, так что можно практически сразу изучать графики.
Наконец, настройка оповещений Alertmanager – тут все на ваше усмотрение, готовых рецептов а-ля “отправить отчет в саппорт Virtuozzo” не предусмотрено. Так что можно, например, просто настроить типичные оповещения по email в /etc/alertmanager/alertmanager.yaml:
route: receiver: 'email'
group_by: ['alertname', 'cluster'] group_wait: 30s group_interval: 5m repeat_interval: 3h receivers: - name: 'email' email_configs: - to: 'admin@myserver.com' from: 'vz-alert@myserver.com' smarthost: smtp.myserver.com:587
Всего алертов «из коробки» предусмотрено почти три десятка — полный перечень доступен в документации.
Надеемся, обилие и нетривиальность параметров не отпугнет вас от использования Prometheus. Тем более что настроить его достаточно один раз, а шаблоны от Virtuozzo должны в этом неплохо помочь. В результате вы получаете красивую, удобную и функциональную систему мониторинга, без которой современному системному администратору будет намного сложнее работать.
===========
Источник:
habr.com
===========
Похожие новости:
- [Системное администрирование, Системное программирование, Сетевые технологии, API] Как использовать REST и SOAP API в Zimbra OSE
- [Системное администрирование, Программирование, Виртуализация, DevOps] Знакомство с Docker (перевод)
- [Системное администрирование, Конференции, Облачные сервисы, Искусственный интеллект] Вебинары Hewlett Packard Enterprise | Июнь 2021
- [Системное администрирование, Oracle, Программирование, *nix] Актуальность инициативы #BAAG — BattleAgainstAnyGuess
- [Системное администрирование, IT-инфраструктура, Хранение данных, Хранилища данных] Нагрузочное тестирование СХД на Эльбрусе на базе нового ядра Линукс версии 5.4
- [Системное администрирование, *nix] О неоправданно хорошей работе [ -z $var ] (перевод)
- [Настройка Linux, Серверное администрирование] Уютный VPS-сервер для маленьких проектов: как настроить
- [Системное администрирование, *nix] Буферы и окна: подробности о тайне ssh и цикла чтения while (перевод)
- [Системное администрирование, GitHub, Разработка под Windows, Софт] Microsoft представила версию 1.0 пакетного менеджера winget
- [Системное администрирование, Сетевые технологии, Хранение данных, Финансы в IT] Как посчитать окупаемость при внедрении Zextras Suite
Теги для поиска: #_nastrojka_linux (Настройка Linux), #_sistemnoe_administrirovanie (Системное администрирование), #_virtualizatsija (Виртуализация), #_virtuozzo, #_virtualization, #_prometheus, #_nastrojka (настройка), #_blog_kompanii_virtuozzo (
Блог компании Virtuozzo
), #_nastrojka_linux (
Настройка Linux
), #_sistemnoe_administrirovanie (
Системное администрирование
), #_virtualizatsija (
Виртуализация
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 09:12
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Пользователи продуктов Virtuozzo и OpenVZ обычно работают с множеством развернутых машин под управлением нашего ПО. Поэтому для них логично запустить централизованный мониторинг всего парка таких серверов. И сегодня мы расскажем о том, как использовать для этого встроенные сервисы мониторинга Virtuozzo Hybrid Infrastructure на основе Prometheus. Схожие сервисы доступны и в VHS, но только если вы используете графические интерфейс для управления кластером Virtuozzo Storage. Если же у вас нет кластера Storage, или вы не используете GUI для его администрирования (либо работаете с OpenVZ, где подключение Virtuozzo Storage является возможным, но редко встречающимся сценарием), то для мониторинга приходится обращаться к сторонним решениям.Анализ предпочтений пользователей (публично доступный для OpenVZ здесь) показывает следующее: как и для мониторинга серверов с Linux и основанных на нем решениями, для продуктов Virtuozzo популярны Zabbix и Prometheus.Мы поговорим сегодня про Prometheus – более молодой, но активно набирающий популярность инструментарий.Непосредственно Prometheus занимается сбором данных от подвластных ему экспортеров - в репозиториях VHS доступны node_exporter (для сбора общих характеристик сервера, таких как использование ресурсов и состояние дисков) и libvirt_exporter (для сбора информации о виртуальных машинах, управляемых libvirt). Экспортеры основаны на соответствующих стандартных проектах, но содержат ряд специфичных для Virtuozzo изменений.Для удобного изучения собираемой информации, в связке с Prometheus обычно устанавливается инструментарий визуализации данных Grafana, а для возможности получения оповещений о требующих внимания администратора событиях – Alertmanager.Готовим плацдармPrometheus, Grafana и Alertmanager можно развернуть на отдельной машине, не обязательно физической. Раз уж мы говорим о Virtuozzo Hybrid Server, то логично развернуть их внутри контейнера на одной из машин VHS. Например, внутри контейнера с Virtuozzo Linux 8; для функционирования вполне достаточно двух ядер ЦПУ и пары гигабайт памяти: # prlctl create promct --vmtype=ct --ostemplate=vzlinux-8-x86_64
# prlctl set promct --cpu 2 # prlctl set promct --memsize 2G # firewall-cmd --zone=public --permanent --add-port=9090/tcp
# firewall-cmd --zone=public --permanent --add-port=9093/tcp # firewall-cmd --zone=public --permanent --add-port=3000/tcp # firewall-cmd --reload # cd /opt
# wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz # tar -xzf prometheus*.tar.gz # cat /lib/systemd/system/prometheus.service
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] Type=simple WorkingDirectory=/opt/prometheus-2.21.0.linux-amd64 Restart=on-failure ExecStart=/opt/prometheus-2.21.0.linux-amd64/prometheus [Install] WantedBy=multi-user.target # wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
# cd /opt # tar -xzf alertmanager*.tar.gz # cat /usr/lib/systemd/system/alertmanager.service [Unit] Description=Alertmanager Wants=network-online.target After=network-online.target After=prometheus.service [Service] Type=simple WorkingDirectory=/root/alertmanager-0.21.0.linux-amd64 Restart=on-failure ExecStart=/root/alertmanager-0.21.0.linux-amd64/alertmanager --config.file=alertmanager.yml [Install] WantedBy=multi-user.target # firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4" source address="1.2.3.4/32" port protocol="tcp" port="9177" accept' # firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="1.2.3.4/32" port protocol="tcp" port="9100" accept' # firewall-cmd --reload # systemctl enable node_exporter
# systemctl enable libvirt-exporter # systemctl start node_exporter # systemctl start libvirt-exporter # cat my-vz-libvirt.yml
- labels: group: my-vz-deployment targets: - my.node1:9177 - my.node2:9177 # cat my-vz-node.yml - labels: group: my-vz-deployment targets: - my.node1:9100 - my.node2:9100 scrape_configs:
... - job_name: node ... file_sd_configs: - files: - /root/prometheus-2.21.0.linux-amd64/targets/my-vz-node.yml - job_name: libvirt ... file_sd_configs: - files: - /root/prometheus-2.21.0.linux-amd64/targets/my-vz-libvirt.yml # systemctl start prometheus
# systemctl start alertmanager # systemctl start grafana-server Наконец, настройка оповещений Alertmanager – тут все на ваше усмотрение, готовых рецептов а-ля “отправить отчет в саппорт Virtuozzo” не предусмотрено. Так что можно, например, просто настроить типичные оповещения по email в /etc/alertmanager/alertmanager.yaml: route: receiver: 'email'
group_by: ['alertname', 'cluster'] group_wait: 30s group_interval: 5m repeat_interval: 3h receivers: - name: 'email' email_configs: - to: 'admin@myserver.com' from: 'vz-alert@myserver.com' smarthost: smtp.myserver.com:587 Надеемся, обилие и нетривиальность параметров не отпугнет вас от использования Prometheus. Тем более что настроить его достаточно один раз, а шаблоны от Virtuozzo должны в этом неплохо помочь. В результате вы получаете красивую, удобную и функциональную систему мониторинга, без которой современному системному администратору будет намного сложнее работать. =========== Источник: habr.com =========== Похожие новости:
Блог компании Virtuozzo ), #_nastrojka_linux ( Настройка Linux ), #_sistemnoe_administrirovanie ( Системное администрирование ), #_virtualizatsija ( Виртуализация ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 09:12
Часовой пояс: UTC + 5