Оглавление |
---|
Описание
Ряд модулей SoftWLC поддерживает метрики в формате Prometheus. Для отображения и анализа полученных метрик используется Grafana.
Сервис | Адрес получения метрик |
---|---|
eltex-apb | http://<IP-адрес сервера>:8090/apb/api/metrics |
eltex-ems | http://<IP-адрес сервера>:9091/metrics |
eltex-mercury | http://<IP-адрес сервера>:6564/mercury/prometheus |
eltex-ngw | http://<IP-адрес сервера>:8040/actuator/prometheus |
eltex-pcrf | http://<IP-адрес сервера>:7070/metrics/prometheus |
eltex-radius-nbi | http://<IP-адрес сервера>:9010/ |
node_exporter | http://<IP-адрес сервера>:9991/metrics |
Для мониторинга производительности сервера, на котором работает комплекс SoftWLC предполагается использование утилиты node_exporter.
Подготовка к развертыванию системы
Развертывать систему мониторинга рекомендуется на отдельном хосте, характеристики 4Gb RAM, 1 CPU, 100Gb HDD.
Так же на данный хост требуется установить пакеты docker, docker-compose.
Установка Node_Exporter
Node-Exporter может быть запущен в докере или как служба.
Пакет должен быть установлен на каждом сервере, используемом для функционирования SoftWLC или его компонентов.
Запуск Node_Exporter в докере
Обратим внимание, что используется не дефолтный порт сервиса, а 9991.
Создать папку:
Блок кода | ||
---|---|---|
| ||
sudo mkdir /opt/node_exporter/ |
В данной папке создать файл docker-compose.yml:
Блок кода | ||
---|---|---|
| ||
version: '3.4' services: node-exporter: container_name: node_exporter image: prom/node-exporter:v1.3.1 ports: - "9991:9100" volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.rootfs=/rootfs' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' restart: unless-stopped |
Выполнить запуск сервиса командой:
Блок кода | ||
---|---|---|
| ||
sudo docker-compose up -d |
Запуск Node-Exporter как службы
Скачать последнюю версию с сайта https://github.com/prometheus/node_exporter/releases
Блок кода | ||||
---|---|---|---|---|
| ||||
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz |
Создать директорию:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo mkdir /opt/node_exporter/ |
Распаковать архив в папку:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo tar xvzf node_exporter-1.3.1.linux-amd64.tar.gz -C /opt/node_exporter/ |
Создать симлинк:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo ln -s /opt/node_exporter/node_exporter-1.3.1.linux-amd64 /opt/node_exporter/run |
Создать пользователя для запуска сервиса:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo useradd -rs /bin/false node_exporter |
Создать файл сервиса:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo vim /etc/systemd/system/node_exporter.service |
Прописать в /etc/systemd/system/node_exporter.service
Блок кода | ||
---|---|---|
| ||
[Unit] Description=Node Exporter After=networki-online.target [Service] EnvironmentFile=-/etc/sysconfig/node_exporter WorkingDirectory=/opt/node_exporter/run ExecStart=/opt/node_exporter/run/node_exporter --web.listen-address=:9991 Restart=on-abort RestartSec=60 User=node_exporter Group=node_exporter Type=simple [Install] WantedBy=multi-user.target |
Обновить информацию в systemd:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl daemon-reload |
Запустить сервис:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl start node_exporter |
Включить автозапуск:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl enable node_exporter |
Проверить статус сервиса:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl status node_exporter ● node_exporter.service - Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-04-06 13:42:32 +07; 1min 25s ago Main PID: 28664 (node_exporter) Tasks: 4 (limit: 4915) CGroup: /system.slice/node_exporter.service └─28664 /opt/node_exporter/run/node_exporter --web.listen-address=:9991 |
Установка Prometheus и Grafana
Запуск выполняется в докере. На сервер потребуется установить docker и docker-compose.
В приложенном архиве содержаться файлы конфигурации: softwlc-monitoring.zip
На хосте, предназначенном для работы системы мониторинга распаковать архив в папку:
Блок кода | ||
---|---|---|
| ||
sudo tar xvzf softwlc-monitoring.tar.gz -C /opt |
Сменить владельца папки, если он не "root":
Без форматирования |
---|
chown -v root:root /opt/softwlc-monitoring/ chhow -Rv root:root /opt/softwlc-monitoring/ |
Сменить разрешения для папок и файлов:
Без форматирования |
---|
chmod -Rv 664 /opt/softwlc-monitoring/ chmod -v 755 /opt/softwlc-monitoring/ chmod -v 755 /opt/softwlc-monitoring/prometheus/ chmod -v 755 /opt/softwlc-monitoring/grafana/ chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/datasources/ chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/dashboards/ |
Отредактировать файл "/opt/softwlc-monitoring/prometheus/prometheus.yml", перечислив в нем адреса и порты всех служб :
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
scrape_configs: #EMS - job_name: 'EMS' metrics_path: '/' scrape_interval: 5s static_configs: - targets: ['<IP-адрес EMS>:9091'] #APB - job_name: 'APB' metrics_path: '/apb/api/metrics' scrape_interval: 5s static_configs: - targets: ['<IP-адрес APB>:8090'] #Mercury - job_name: 'Mercury' metrics_path: '/mercury/prometheus' scrape_interval: 5s static_configs: - targets: ['<IP-адрес Mercury>:6564'] #Portal - job_name: 'Portal' metrics_path: '/eltex_portal/api/metrics' scrape_interval: 5s static_configs: - targets: ['<IP-адрес портала>:9000'] #NBI - job_name: 'NBI' metrics_path: '/' scrape_interval: 5s static_configs: - targets: ['<IP-адрес Radius-NBI>:9010'] #NGW - job_name: 'NGW' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: ['<IP-адрес NGW>:8040'] #PCRF - job_name: 'PCRF' metrics_path: '/metrics/prometheus' scrape_interval: 5s static_configs: - targets: [ '<IP-адрес PCRF:7070' ] |
Так же в данном файле надо перечислить все сервера с установленным Node-Exporter, с указанием реального адреса каждого сервера:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
#Node-SoftWLC - job_name: 'Node-SoftWLC' scrape_interval: 5s static_configs: - targets: ['<IP-адрес сервера>:9991'] - job_name: 'p204i04app02' scrape_interval: 5s static_configs: - targets: ['10.62.18.19:9991'] |
Примечание |
---|
Для всех серверов, которые указаны в файле prometheus.yml, должен быть обеспечен доступ по соответствующим портам по протоколу TCP с сервера, на котором запущена система мониторинга! |
Выполнить запуск:
Блок кода | ||
---|---|---|
| ||
sudo docker-compose up -d |
После запуска сервисы будут доступны по адресам:
Prometheus:
Без форматирования |
---|
http://<IP-адрес сервера>:9990 |
Grafana:
Без форматирования |
---|
http://<IP-адрес сервера>:3000 |
После открытия стартовой страницы Grafana будет предложено ввести логин / пароль (по умолчанию admin / admin):
После успешного входы будет предложено сменить пароль:
Можно задать новый пароль или нажать "Skip", что бы вопрос более не задавался, при этом дефолтный пароль не будет сменен.
Откроется начальное окно Grafana.
Что бы увидеть список доступных панелей мониторинга надо нажать в панели слева кнопку
и в открывшемся меню выбрать "Manage".Откроется окно со списком панелей:
После этого можно перейти к просмотру мониторинга нужного сервиса.
Для предотвращения случайных изменений рекомендуется добавить пользователя, который будет иметь только права просмотра.
Для этого надо нажать в панели слева кнопку
и затем нажать кнопку "New user". После ввести данные пользователя: "Name", "Username", "Password" и нажать "Create user". В дальнейшем все действия по мониторингу выполнять под данным пользователем.Приложения
Сайт Prometheus: https://prometheus.io/
Сайт Grafana: https://grafana.com/