Obsługa i administracja siecią Zarządzanie funkcjami sieci telekomunikacyjnej 5G przy użyciu narzędzi Openshift Kubernetes

Świat telekomunikacji ewoluuje w szybkim tempie, a dla operatorów jest nie tylko ważne, ale wręcz kluczowe, aby wyprzedzać konkurencję. W miarę jak technologia 5G staje się normą, płynne przejście z technologii 4G (która działa w oparciu o technologię Kubernet) jest nie tylko niezbędne, ale wręcz strategiczne. OpenStack cloud) do technologii 5G (która wykorzystuje Kubernetes).

W obecnym scenariuszu operatorzy inwestują w narzędzia monitorujące wielu dostawców, co prowadzi do wyższych kosztów i mniej wydajnych operacji. Jednak w nadchodzącym świecie 5G operatorzy mogą przyjąć ujednolicony system monitorowania i ostrzegania dla wszystkich swoich produktów. Ten pojedynczy system, z możliwością monitorowania sprzętu sieciowego, urządzeń klienckich i platform usługowych, oferuje uspokajająco holistyczny widok całego systemu, zmniejszając w ten sposób złożoność i zwiększając wydajność.

Poprzez przyjęcie Prometheus-based operatorzy mogą usprawnić operacje, obniżyć koszty i poprawić jakość obsługi klienta. Dzięki pojedynczemu systemowi monitorowania operatorzy mogą płynnie monitorować cały swój system 5G, zapewniając optymalną wydajność i unikając zakłóceń.

To praktyczne rozwiązanie eliminuje potrzebę całkowitego remontu i oferuje opłacalną transformację.

Zanurzmy się głębiej.

Prometheus, Grafana i menedżer alertów

Prometheus to narzędzie do monitorowania i alarmowania systemów, wykorzystujące system monitorowania oparty na pullingu. Zbiera, gromadzi i przechowuje kluczowe wskaźniki wydajności (KPI) z etykietami i znacznikami czasu, umożliwiając zbieranie metryk z celów, które są przestrzeniami nazw funkcji sieciowych w świecie telekomunikacji 5G.

Grafana to dynamiczna aplikacja internetowa, która oferuje szeroki zakres funkcjonalności. Wizualizuje dane, umożliwiając tworzenie wykresów, grafów i pulpitów nawigacyjnych, które operator 5G Telecom chce wizualizować. Jej podstawową cechą jest wyświetlanie wielu trybów obsługi wykresów i dashboardów za pomocą GUI (graficznego interfejsu użytkownika). Grafana może płynnie integrować dane zebrane przez Prometheus, co czyni ją niezbędnym narzędziem dla operatorów telekomunikacyjnych. Jest to potężna aplikacja internetowa, która obsługuje integrację różnych źródeł danych w jednym pulpicie nawigacyjnym, umożliwiając ciągłe monitorowanie. Ta wszechstronność poprawia szybkość reakcji, ostrzegając zespół operatora telekomunikacyjnego o wystąpieniu incydentu, zapewniając minimalny czas przestoju funkcji sieci 5G.

Alert Manager jest kluczowym komponentem, który zarządza alertami z serwera Prometheus za pomocą reguł alertowania. Zarządza otrzymanymi alertami, w tym wycisza je i blokuje oraz wysyła powiadomienia za pośrednictwem poczty e-mail lub czatu. Menedżer alertów usuwa również duplikaty, grupuje i kieruje je do scentralizowanego odbiornika webhook, co czyni go niezbędnym narzędziem dla każdego operatora telekomunikacyjnego.

Schemat architektoniczny

Schemat architektoniczny serwera Prometheus

Prometheus

Składniki Prometheus (specyficzne dla operatora telekomunikacyjnego 5G)

  • Komponent podstawowy: Serwer Prometheus zeskrobuje punkty końcowe HTTP i przechowuje dane (szeregi czasowe).
  • The Serwer Prometheus, kluczowy komponent w świecie telekomunikacji 5G, zbiera metryki z celów Prometheus. W naszym kontekście cele te to klaster Kubernetes, w którym znajdują się funkcje sieciowe 5G.
  • Baza danych szeregów czasowych (TSDB): Prometheus przechowuje dane telecom Metrics jako dane szeregów czasowych.
  • Serwer HTTP: API do odpytywania danych przechowywanych w TSDB; Pulpit nawigacyjny Grafana może odpytywać te dane w celu wizualizacji.
  • Biblioteki specyficzne dla operatorów telekomunikacyjnych (5G) do oprzyrządowania kodu aplikacji.
  • Push gateway (cel scrape dla krótkotrwałych zadań)
  • Wykrywanie usług: W świecie 5G pody funkcji sieciowych są stale dodawane lub usuwane przez operatorów telekomunikacyjnych w celu skalowania w górę lub w dół. Adaptowalny komponent wykrywania usług Prometheus monitoruje stale zmieniającą się listę podów.
  • The Prometheus Web UI, dostępny przez port 9090, jest narzędziem do wizualizacji danych. Umożliwia ono użytkownikom przeglądanie i analizowanie danych Prometheus w przyjazny dla użytkownika i interaktywny sposób, zwiększając możliwości monitorowania operatorów telekomunikacyjnych 5G.
  • The Menedżer alertów, kluczowy komponent Prometheusa, jest odpowiedzialny za obsługę alertów. Został zaprojektowany, aby powiadamiać użytkowników, gdy coś pójdzie nie tak, wyzwalając powiadomienia, gdy spełnione są określone warunki. Po spełnieniu określonych warunków Prometheus powiadamia menedżera alertów, który wysyła alerty za pośrednictwem różnych kanałów, takich jak poczta e-mail lub komunikator, zapewniając terminową i skuteczną komunikację krytycznych problemów.
  • Grafana do wizualizacji pulpitu nawigacyjnego (rzeczywiste wykresy)

Dzięki solidnym komponentom Prometheus, funkcje sieci 5G Państwa operatora telekomunikacyjnego są monitorowane z należytą starannością, zapewniając niezawodne wykorzystanie zasobów, śledzenie wydajności, wykrywanie błędów w dostępności i nie tylko. Prometheus może zapewnić Państwu niezbędne narzędzia, aby Państwa sieć działała płynnie i wydajnie.

Funkcje Prometheus

  • Wielowymiarowy model danych określony przez szczegóły metryki wykorzystuje PromQL (Prometheus Querying Language) jako język zapytań i model HTTP Pull.
  • Operatorzy telekomunikacyjni mogą teraz odkrywać funkcje sieci 5G za pomocą wykrywania usług i konfiguracji statycznej.
  • Wiele trybów obsługi pulpitu nawigacyjnego i graficznego interfejsu użytkownika zapewnia użytkownikom wszechstronne i konfigurowalne doświadczenie.

Prometheus Remote Write to Central Prometheus z poziomu funkcji sieciowych

Zdalny zapis Prometeusza do centralnego Prometeusza z funkcji sieciowych

Operatorzy 5G będą mieli wiele funkcji sieciowych od różnych dostawców, takich jak SMF (Session Management Function), UPF (User Plane Function), AMF (Access and Mobility Management Function), PCF (Policy Control Function) i UDM (Unified Data Management).

Korzystanie z wielu pulpitów Prometheus/Grafana dla każdej funkcji sieciowej może prowadzić do złożonego i nieefektywnego procesu monitorowania operatora sieci 5G. Aby temu zaradzić, zdecydowanie zaleca się skonsolidowanie wszystkich danych / metryk z poszczególnych Prometheus w jednym centralnym Prometheus, upraszczając proces monitorowania i zwiększając wydajność.

Operator sieci 5G może teraz pewnie monitorować wszystkie dane w scentralizowanej lokalizacji Central Prometheus. Ten przyjazny dla użytkownika interfejs zapewnia kompleksowy wgląd w wydajność sieci, dając operatorowi niezbędne narzędzia do skutecznego monitorowania.

Grafana

Cechy Grafany

  • Panele: Ta potężna funkcja umożliwia operatorom wizualizację danych Telecom 5G na wiele sposobów, w tym histogramów, wykresów, map i wskaźników KPI. Oferuje wszechstronny i elastyczny interfejs do reprezentacji danych, zwiększając wydajność i skuteczność analizy danych.
  • Wtyczki: Funkcja ta skutecznie renderuje dane Telecom 5G w czasie rzeczywistym w przyjaznym dla użytkownika interfejsie API (Application Programming Interface), zapewniając operatorom zawsze najdokładniejsze i najbardziej aktualne dane na wyciągnięcie ręki. Umożliwia również operatorom tworzenie wtyczek źródeł danych i pobieranie danych z dowolnego interfejsu API.
  • Transformacje: Ta funkcja umożliwia elastyczne dostosowywanie, podsumowywanie, łączenie i wykonywanie zapytań / obliczeń wskaźników KPI w źródłach danych funkcji sieci 5G, zapewniając narzędzia do skutecznego manipulowania i analizowania danych.
  • Adnotacje: Bogate zdarzenia z różnych źródeł danych funkcji sieci Telecom 5G są wykorzystywane do adnotacji wykresów opartych na metrykach.
  • Edytor panelu: Niezawodny i spójny graficzny interfejs użytkownika do konfigurowania i dostosowywania paneli danych telekomunikacyjnych 5G.

Grafana Sample Dashboard GUI dla 5G

Grafana Sample Dashboard GUI dla 5G

Menedżer alertów

Składniki Menedżera alertów

  • The Ingester szybko pozyskuje wszystkie alerty, podczas gdy aplikacja Grouper grupuje je w kategorie.
  • The De-duplicator zapobiega powtarzającym się alertom, zapewniając, że nie są Państwo bombardowani powiadomieniami.
  • The Tłumik służy do wyciszania alertów na podstawie etykiety, a funkcja Throttler reguluje częstotliwość alertów.
  • Wreszcie Notifier zapewni niezwłoczne powiadomienie osób trzecich.

Funkcje menedżera alertów

  1. Grupowanie:
    • Grupowanie kategoryzuje podobne alerty w jednym systemie powiadomień. Jest to pomocne podczas bardziej rozległych awarii, gdy wiele funkcji sieci 5G ulega awarii jednocześnie i gdy wszystkie alerty muszą zostać uruchomione jednocześnie.
    • Operator telekomunikacyjny będzie oczekiwał, że otrzyma tylko jedną stronę, a jednocześnie będzie w stanie zwizualizować dokładne instancje usług, których to dotyczy.
  2. Inhibicja:
    • Inhibicja wstrzymuje powiadomienia dla określonych alertów o niskim priorytecie, jeśli niektóre główne/krytyczne alerty są już uruchomione.
    • Na przykład, gdy uruchomiony zostanie alert krytyczny, wskazujący, że cały klaster 5G SMF (Session Management Function) nie jest osiągalny, AlertManager może wyciszyć wszystkie inne alerty pomniejsze/ostrzegawcze dotyczące tego klastra.
  3. Wyciszenia: Wyciszenia to po prostu wyciszenie alertów na określony czas. Przychodzące alerty są sprawdzane pod kątem zgodności z wyrażeniami regularnymi aktywnego wyciszenia. Jeśli pasują, żadne powiadomienia nie zostaną wysłane dla tego alertu.
  4. Wysoka dostępność: Operatorzy telekomunikacyjni nie będą równoważyć ruchu między Prometheus a wszystkimi menedżerami alertów; zamiast tego wskażą Prometheus na listę wszystkich menedżerów alertów.

Wizualizacja pulpitu nawigacyjnego

Pulpit nawigacyjny Grafana wizualizuje powiadomienia o ruchu webhook Alert Manager, jak pokazano poniżej:

Pulpit nawigacyjny Grafana wizualizuje powiadomienia o ruchu webhook Alert Manager

Konfiguracja YAML (Yet Another Markup Language)

Operatorzy telekomunikacyjni mogą zainstalować i uruchomić Prometheus przy użyciu poniższej konfiguracji:

prometheus:
  enabled: true
  route:
    enabled: {}
  nameOverride: Prometheus
  tls:
    enabled: true
    certificatesSecret: backstage-prometheus-certs
    certFilename: tls.crt
    certKeyFilename: tls.key
  volumePermissions:
    enabled: true
  initdbScriptsSecret: backstage-prometheus-initdb
  prometheusSpec:
    retention: 3d
    replicas: 2
    prometheusExternalLabelName: prometheus_cluster
    image:
      repository: <5G operator image repository for Prometheus>
      tag: <Version example v2.39.1>
      sha: ""
    podAntiAffinity: "hard"
    securityContext: null
    resources:
      limits:
        cpu: 1
        memory: 2Gi
      requests:
        cpu: 500m
        memory: 1Gi
    serviceMonitorNamespaceSelector:
      matchExpressions:
        - {key: namespace, operator: In, values: [<Network function 1 namespace>, <Network function 2 namespace>]}
    serviceMonitorSelectorNilUsesHelmValues: false
    podMonitorSelectorNilUsesHelmValues: false
    ruleSelectorNilUsesHelmValues: false

Konfiguracja do kierowania danych scrape posegregowanych na podstawie przestrzeni nazw i kierowania do Central Prometheus.

  • Uwaga: Poniższą konfigurację można dołączyć do Prometheusa wspomnianego w powyższym instalacyjnym YAML.
    remoteWrite:
      - url: <Central Prometheus URL for namespace 1 by 5G operator>
        basicAuth:
          username:
            name: <secret username for namespace 1>
            key: username
          password:
            name: <secret password for namespace 1>
            key: password
        tlsConfig:
          insecureSkipVerify: true
        writeRelabelConfigs:
        - sourceLabels:
          - namespace
          regex: <namespace 1>
          action: keep
      - url: <Central Prometheus URL for namespace 2 by 5G operator>
        basicAuth:
          username:
            name: <secret username for namespace 2>
            key: username
          password:
            name: <secret password for namespace 2>
            key: password
        tlsConfig:
          insecureSkipVerify: true
        writeRelabelConfigs:
        - sourceLabels:
          - namespace
          regex: <namespace 2>
          action: keep

Operatorzy telekomunikacyjni mogą zainstalować i uruchomić Grafanę przy użyciu poniższej konfiguracji.

grafana:
  replicas: 2
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: "app.kubernetes.io/name"
                operator: In
                values:
                  - Grafana
          topologyKey: "kubernetes.io/hostname"
  securityContext: false
  rbac:
    pspEnabled: false # Must be disabled due to tenant permissions
    namespaced: true
  adminPassword: admin
  image:
    repository: <artifactory>/Grafana
    tag: <version>
    sha: ""
    pullPolicy: IfNotPresent
  persistence:
    enabled: false
  initChownData:
    enabled: false
  sidecar:
    image:
      repository: <artifactory>/k8s-sidecar
      tag: <version>
      sha: ""
    imagePullPolicy: IfNotPresent
    resources:
     limits:
       cpu: 100m
       memory: 100Mi
     requests:
       cpu: 50m
       memory: 50Mi
    dashboards:
      enabled: true
      label: grafana_dashboard
      labelValue: "Vendor name"
    datasources:
      enabled: true
      defaultDatasourceEnabled: false
  additionalDataSources:
  - name: Prometheus
    type: Prometheus
    url: http://<prometheus-operated>:9090
    access: proxy
    isDefault: true
    jsonData:
      timeInterval: 30s
  resources:
   limits:
     cpu: 400m     
     memory: 512Mi 
   requests:
     cpu: 50m      
     memory: 206Mi 
  extraContainers: 
    - name: oauth-proxy
      image: <artifactory>/origin-oauth-proxy:<version>
      imagePullPolicy: IfNotPresent
      ports:
        - name: proxy-web
          containerPort: 4181
      args:
        - --https-address=:4181
        - --provider=openshift
        # Service account name here must be "<Helm Release name>-grafana"
        - --openshift-service-account=monitoring-grafana
        - --upstream=http://localhost:3000
        - --tls-cert=/etc/tls/private/tls.crt
        - --tls-key=/etc/tls/private/tls.key
        - --cookie-secret=SECRET
        - --pass-basic-auth=false
      resources:
        limits:
          cpu: 100m
          memory: 256Mi
        requests:
          cpu: 50m
          memory: 128Mi
      volumeMounts:
        - mountPath: /etc/tls/private
          name: grafana-tls
  extraContainerVolumes:
    - name: grafana-tls
      secret:
        secretName: grafana-tls
  serviceAccount:
    annotations:
      "serviceaccounts.openshift.io/oauth-redirecturi.first":  https://[SPK exposed IP for Grafana]
  service:
    targetPort: 4181
    annotations:
      service.alpha.openshift.io/serving-cert-secret-name: <secret>

Operatorzy telekomunikacyjni mogą zainstalować i uruchomić Alert Manager przy użyciu poniższej konfiguracji.

alertmanager:
  enabled: true
  alertmanagerSpec:
    image:
      repository: prometheus/alertmanager
      tag: <version>
    replicas: 2
    podAntiAffinity: hard
    securityContext: null
    resources:
      requests:
        cpu: 25m
        memory: 200Mi
      limits:
        cpu: 100m
        memory: 400Mi
    containers:
      - name: config-reloader
        resources:
          requests:
            cpu: 10m
            memory: 10Mi
          limits:
            cpu: 25m
            memory: 50Mi

Konfiguracja kierowania danych Prometheus Alert Manager do scentralizowanego odbiornika webhook operatora.

  • Uwaga: Poniższa konfiguracja może zostać dołączona do Menedżera alertów wspomnianego w powyższym instalacyjnym YAML.
config:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 12h
      receiver: 'null'
      routes:
      - receiver: '<Network function 1>'
        group_wait: 10s
        group_interval: 10s
        group_by: ['alertname','oid','action','time','geid','ip']
        matchers:
        - namespace="<namespace 1>"
      - receiver: '<Network function 2>'
        group_wait: 10s
        group_interval: 10s
        group_by: ['alertname','oid','action','time','geid','ip']
        matchers:
        - namespace="<namespace 2>"

Wnioski

Narzędzia open-source OAM (Operation and Maintenance) Prometheus, Grafana i Alert Manager mogą przynieść korzyści operatorom 5G Telecom. Prometheus okresowo przechwytuje cały stan monitorowanych funkcji sieciowych 5G Telecom za pośrednictwem protokołu HTTP, a każdy komponent może być podłączony do monitorowania, o ile operator 5G Telecom zapewnia odpowiedni interfejs HTTP. Prometheus i Grafana Agent dają operatorowi 5G Telecom kontrolę nad metrykami, które operator chce raportować; gdy dane znajdą się w Grafanie, mogą być przechowywane w bazie danych Grafana jako dodatkowa redundancja danych.

Podsumowując, Prometheus pozwala operatorom 5G Telecom usprawnić swoje operacje i zaoferować lepszą obsługę klienta. Przyjęcie ujednoliconego systemu monitorowania i ostrzegania, takiego jak Prometheus, jest jednym ze sposobów osiągnięcia tego celu.