MikroTik – Część 21: Monitorowanie i automatyzacja reakcji – Prometheus, Grafana, SNMP i Alertmanager z MikroTik
Sieci komputerowe

MikroTik – Część 21: Monitorowanie i automatyzacja reakcji – Prometheus, Grafana, SNMP i Alertmanager z MikroTik

MikroTik – kompleksowa konfiguracja sieci od podstaw do zaawansowanych rozwiązań

Część 21: Monitorowanie i automatyzacja reakcji – Prometheus, Grafana, SNMP i Alertmanager z MikroTik

W poprzedniej części zbudowaliśmy środowisko CI/CD do zarządzania konfiguracją MikroTików z użyciem GitLab, Ansible i NetBox. Tym razem skupimy się na tym, co następuje po wdrożeniu konfiguracji — czyli na monitorowaniu, alertowaniu i automatyzacji reakcji na zdarzenia sieciowe. W tej części przedstawimy kompletny ekosystem bazujący na Prometheusie, Grafanie i Alertmanagerze, który pozwala zbudować proaktywne centrum operacji sieciowych (NOC).

MikroTik – Część 21: Monitorowanie i automatyzacja reakcji – Prometheus, Grafana, SNMP i Alertmanager z MikroTik
MikroTik – Część 21: Monitorowanie i automatyzacja reakcji – Prometheus, Grafana, SNMP i Alertmanager z MikroTik

Dlaczego potrzebujemy aktywnego monitoringu MikroTik?

MikroTik, mimo że nie jest klasyfikowany jako rozwiązanie klasy enterprise, oferuje bogate możliwości monitorowania poprzez SNMP, NetFlow, API i syslog. W warunkach produkcyjnych każda infrastruktura wymaga nie tylko rejestrowania danych historycznych, ale i reakcji na:

  • przeciążenia interfejsów,
  • błędy routingu,
  • próby nieautoryzowanego dostępu,
  • nieprawidłowości w sesjach VPN czy BGP,
  • nadmierne zużycie CPU/RAM,
  • awarie zasilania lub przeładowanie UPS.

Architektura monitoringu

Komponenty:

  1. MikroTik RouterOS – źródło danych (SNMP, syslog, API).
  2. Prometheus – kolekcjonuje metryki.
  3. snmp_exporter – konwertuje SNMP na dane zrozumiałe przez Prometheus.
  4. Grafana – wizualizacja danych.
  5. Alertmanager – zarządzanie powiadomieniami.
  6. Webhooki / skrypty reakcyjne – automatyzacja odpowiedzi.

Konfiguracja SNMP na MikroTik

Na routerze:

/snmp set enabled=yes contact="noc@example.com" location="Serwerownia A"
/snmp community add name=public read-access=yes

Warto też ograniczyć dostęp do SNMP tylko do Prometheusa:

/ip firewall filter add chain=input protocol=udp dst-port=161 src-address=IP_PROMETHEUS action=accept
/ip firewall filter add chain=input protocol=udp dst-port=161 action=drop

snmp_exporter

Na serwerze z Prometheusem instalujemy snmp_exporter:

wget https://github.com/prometheus/snmp_exporter/releases/latest/download/snmp_exporter.tar.gz
tar -xzf snmp_exporter.tar.gz
cd snmp_exporter
./snmp_exporter

Przykładowa konfiguracja snmp.yml:

mikrotik:
  walk:
    - 1.3.6.1.2.1.1
    - 1.3.6.1.2.1.2
    - 1.3.6.1.2.1.31
    - 1.3.6.1.2.1.25
  version: 2c
  auth:
    community: public

Dodajemy target w Prometheusie:

- job_name: 'mikrotik'
  static_configs:
    - targets: ['192.168.88.1']  # adres MikroTik
  metrics_path: /snmp
  params:
    module: [mikrotik]

Grafana – dashboardy dla MikroTik

W Grafanie możemy zaimportować gotowe dashboardy z:

  • https://grafana.com/grafana/dashboards (np. ID: 13665 – MikroTik SNMP Interface Metrics)
  • lub stworzyć własne, np. z wykresami:
    • ruchu RX/TX,
    • obciążenia CPU,
    • statusów BGP/VPN,
    • liczby użytkowników HotSpot.
Czytaj  Nmap Inwigilacja sieci

Alertmanager – automatyzacja reakcji

Przykład prostego alertu:

groups:
  - name: router-health
    rules:
      - alert: CPUOverload
        expr: snmp_mikrotik_cpu_usage > 80
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "CPU MikroTik przekracza 80%"
          description: "Router {{ $labels.instance }} przekroczył 80% CPU"

Wyślij powiadomienie przez Slack, e-mail, Discord, Telegram lub webhooka:

receivers:
  - name: 'default'
    slack_configs:
      - channel: '#noc'
        send_resolved: true
        text: "{{ .CommonAnnotations.summary }}"

Automatyczne reakcje

Poza powiadomieniem możemy wykonać automatyczny rollback konfiguracji lub restart interfejsu:

  1. Tworzymy webhook w Alertmanagerze.
  2. Webhook uruchamia skrypt w Python/Bash (np. rollback.sh), który używa API do MikroTik.

Przykład webhooka:

{
  "receiver": "webhook",
  "status": "firing",
  "alerts": [
    {
      "labels": {
        "alertname": "VPNDown"
      },
      "annotations": {
        "description": "Połączenie VPN padło",
        "summary": "VPN site-to-site nie działa"
      }
    }
  ]
}

Wersjonowanie alertów i dashboardów

Zarówno dashboardy Grafany jak i reguły Alertmanagera można przechowywać w Git i wersjonować – integrując z naszym wcześniejszym pipeline CI/CD.


Wskazówki bezpieczeństwa

  • Nie udostępniaj publicznie SNMP v2 – używaj whitelistingu IP.
  • Prometheus i Grafana powinny być chronione VPN lub reverse proxy z autoryzacją.
  • Loguj wszystkie operacje wykonywane przez webhooki.

Podsumowanie

Monitoring MikroTików na poziomie enterprise jest możliwy — i to bez kosztownych licencji. Dzięki połączeniu Prometheus, Grafany, snmp_exporter i Alertmanagera tworzymy skalowalny i elastyczny system detekcji, który może nie tylko powiadamiać o problemach, ale i automatycznie na nie reagować.

W kolejnej części pokażemy, jak wprowadzić zasady Zero Trust do komunikacji z MikroTikami oraz jak wdrożyć wzorce microsegmentacji i inspekcji ruchu z pomocą EDR, firewalli i systemów typu SOAR.

Polecane wpisy
Konfiguracja MikroTik – Część 42: Zaawansowana konfiguracja BGP z wykorzystaniem filtrowania, rozgłaszania i redundancji
Konfiguracja MikroTik – Część 42: Zaawansowana konfiguracja BGP z wykorzystaniem filtrowania, rozgłaszania i redundancji

Konfiguracja MikroTik – Część 42: Zaawansowana konfiguracja BGP z wykorzystaniem filtrowania, rozgłaszania i redundancji Seria poświęcona konfiguracji MikroTik dociera do Czytaj dalej