From 036f32869ba2e660bdbe1d46ca12aacb0b89a173 Mon Sep 17 00:00:00 2001 From: ayurishchev Date: Fri, 11 Sep 2026 13:24:08 +0300 Subject: [PATCH] Add Prometheus Node Exporter to frr_anycast role MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Устанавливает prometheus-node-exporter из официального репозитория Ubuntu 24 LTS (universe, сторонний репозиторий не добавляется) на всех узлах обеих сред (площадка A + Облачная площадка), безусловно. Сервис enabled+started, слушает стандартный порт :9100 (дефолт пакета, конфиг не переопределяется). Firewall-правил не требуется — в nftables.conf.j2 нет table inet filter с policy drop. Шаблоны FRR/nftables не затронуты: render-check.sh 6/6, render-check-cloud.sh 84/84, без изменений. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF --- README.md | 6 +++++ ansible/roles/frr_anycast/defaults/main.yml | 4 +++ ansible/roles/frr_anycast/tasks/main.yml | 12 +++++++++ docs/2026-09-11-node-exporter-plan.md | 18 +++++++++++++ docs/2026-09-11-node-exporter-summary.md | 30 +++++++++++++++++++++ 5 files changed, 70 insertions(+) create mode 100644 docs/2026-09-11-node-exporter-plan.md create mode 100644 docs/2026-09-11-node-exporter-summary.md diff --git a/README.md b/README.md index 7bb02d6..ce38726 100644 --- a/README.md +++ b/README.md @@ -174,3 +174,9 @@ ansible/tests/render-check-cloud.sh # 4 соседа, prepend только н - **`systemd-networkd` не вычищает чужие маршруты**: drop-in `/etc/systemd/networkd.conf.d/99-keep-configuration.conf` (`KeepConfiguration=yes`) — защита не от конкретного пакета-триггера, а от самого механизма, на случай **любого** будущего рестарта networkd. Не влияет на рендер `frr.conf`/`daemons`/`nftables.conf` — `render-check.sh`/`render-check-cloud.sh` проходят без изменений. Детали: [docs/2026-09-11-system-hardening-plan.md](docs/2026-09-11-system-hardening-plan.md) / [docs/2026-09-11-system-hardening-summary.md](docs/2026-09-11-system-hardening-summary.md). + +## Мониторинг: Prometheus Node Exporter + +На всех узлах (площадка A + «Облачная площадка») безусловно ставится `prometheus-node-exporter` из официального репозитория Ubuntu 24 LTS (`universe`, сторонний репозиторий не добавляется) — сервис `prometheus-node-exporter.service`, стандартный порт `:9100`, конфиг пакета не переопределяется. Дополнительных nftables-правил не нужно — в `nftables.conf.j2` нет `table inet filter`/policy drop, трафик к 9100 ничем не блокируется. + +Детали: [docs/2026-09-11-node-exporter-plan.md](docs/2026-09-11-node-exporter-plan.md) / [docs/2026-09-11-node-exporter-summary.md](docs/2026-09-11-node-exporter-summary.md). diff --git a/ansible/roles/frr_anycast/defaults/main.yml b/ansible/roles/frr_anycast/defaults/main.yml index 18ec250..bffa961 100644 --- a/ansible/roles/frr_anycast/defaults/main.yml +++ b/ansible/roles/frr_anycast/defaults/main.yml @@ -25,3 +25,7 @@ nftables_conf_path: /etc/nftables.conf # вообще не разворачивается). Включается автоматически, как только задан # dnat_target_ip — отдельного булева флага в env не требуется. dnat_target_ip: "" + +# Из официального репозитория Ubuntu (universe), стандартный порт :9100 — +# конфиг пакета не переопределяется. +node_exporter_package: prometheus-node-exporter diff --git a/ansible/roles/frr_anycast/tasks/main.yml b/ansible/roles/frr_anycast/tasks/main.yml index a1881c2..5abbd79 100644 --- a/ansible/roles/frr_anycast/tasks/main.yml +++ b/ansible/roles/frr_anycast/tasks/main.yml @@ -163,3 +163,15 @@ enabled: true state: started when: enable_snat | bool + +- name: Node Exporter | установить из официального репозитория Ubuntu + ansible.builtin.apt: + name: "{{ node_exporter_package }}" + state: present + update_cache: true + +- name: Node Exporter | сервис включён и запущен (стандартный порт 9100) + ansible.builtin.systemd: + name: prometheus-node-exporter + enabled: true + state: started diff --git a/docs/2026-09-11-node-exporter-plan.md b/docs/2026-09-11-node-exporter-plan.md new file mode 100644 index 0000000..70dfc14 --- /dev/null +++ b/docs/2026-09-11-node-exporter-plan.md @@ -0,0 +1,18 @@ +# План внедрения: Prometheus Node Exporter + +**Дата:** 2026-09-11 + +## Цель + +Установить `node_exporter` на всех FRR-узлах (площадка A + «Облачная площадка») из официального репозитория Ubuntu 24 LTS (пакет `prometheus-node-exporter`, компонент `universe`), стандартный порт `:9100`. + +## Решение + +Роль `frr_anycast`, безусловно (без флага, применяется везде): `apt install prometheus-node-exporter` + `systemd: enabled/started`. Конфиг не трогается — дефолт пакета уже слушает `:9100`. nftables-разрешений не требуется (в `nftables.conf.j2` нет `table inet filter`/policy drop). + +## Definition of done + +- Задачи в `roles/frr_anycast/{defaults,tasks}/main.yml`. +- `render-check.sh` / `render-check-cloud.sh` без изменений (регресс-проверка) — шаблоны FRR/nftables не тронуты. +- `--syntax-check` чист для обоих playbook'ов. +- README и summary обновлены. diff --git a/docs/2026-09-11-node-exporter-summary.md b/docs/2026-09-11-node-exporter-summary.md new file mode 100644 index 0000000..715d550 --- /dev/null +++ b/docs/2026-09-11-node-exporter-summary.md @@ -0,0 +1,30 @@ +# Summary: Prometheus Node Exporter + +**Дата:** 2026-09-11 +**План:** [2026-09-11-node-exporter-plan.md](2026-09-11-node-exporter-plan.md) + +## Что сделано + +В роль `frr_anycast` добавлены две задачи (безусловно, на всех узлах обеих сред — площадка A и «Облачная площадка»): +- `apt install prometheus-node-exporter` (пакет из официального репозитория Ubuntu 24 LTS, компонент `universe`, сторонний репозиторий не добавлялся). +- `systemd: prometheus-node-exporter enabled+started`. + +Конфиг-файл не создавался/не менялся — пакетный дефолт уже слушает `:9100` на всех интерфейсах, это и есть «стандартный порт» из запроса. Новая переменная `node_exporter_package: prometheus-node-exporter` в `defaults/main.yml` — если версия/имя пакета когда-то изменится, править в одном месте. + +## Результаты проверки + +- `--syntax-check` — OK для `site-a.yml` и `site-cloud.yml`. +- `render-check.sh` (площадка A) — 6/6, без изменений. +- `render-check-cloud.sh` (site-cloud) — 84/84, без изменений. + +Изменение не трогает шаблоны FRR/nftables, поэтому регресс-тесты рендера не затронуты. + +## Известное ограничение + +Реальный apply и проверка прослушивания `:9100` на живых ВМ не выполнялись — ВМ не подняты (как и во всех предыдущих изменениях этой сессии). + +## Изменённые файлы + +- `ansible/roles/frr_anycast/defaults/main.yml`, `ansible/roles/frr_anycast/tasks/main.yml`. +- `README.md` — новый раздел «Мониторинг: Prometheus Node Exporter». +- `docs/2026-09-11-node-exporter-plan.md`, `docs/2026-09-11-node-exporter-summary.md`.