Einrichtung einer verteilten Monitoringlösung auf Basis von Prometheus und M3 im Bereich des behördlichen Gesundheitswesens
von Nico Kahlert

format_list_numbered_rtl

Agenda

Agenda

    apartment

    Vorstellung des Unternehmens

    Vorstellung des Unternehmens

    IT-Campus
    Infos
    • Netzlink Informationstechnik GmbH
    • IT-Dienstleister für den Mittelstand
    • 110 Mitarbeitende
    Standorte
    • Hannover
    • Kassel
    • Braunschweig
    Rechenzentren
    • Braunschweig
    • Hannover
    • Salzgitter
    • Limburg (OVH)
    Langjährige Geschäftsbeziehungen mit dem HZI
    person

    Vorstellung des Kunden

    Vorstellung des Kunden

    Bundesministerium für Gesundheit
    • CDU
    • Jens Spahn
    • 15 Mrd € Haushalt
    • Wegweisend für die Gesundheitsämter

    Projekteinordnung

    Projekteinordnung

    SORMAS Projekt
    • Pandemiemanagementsoftware
    • Kontaktverfolgung
    • Entwickelt vom HZI/Vitagroup
    • DevOps und Operations von NLI
    • Hosting im ITZBund RZ
    • 400 Instanzen
    • Containerisiert
    • Updates alle 2 Wochen
    • Herausforderung für das Monitoring
    map

    Ablaufplan & Aufwand

    Ablaufplan & Aufwand

    analytics

    IST/SOLL-Analyse

    IST/SOLL-Analyse

    • 1 vServer
    • 4vCPU, 16GB RAM, 500GB SSD
    • Prometheus & Grafana
    • circa 400 Endpunkte
    • Scraping: 468 MB/min
    • 3 vServer
    • 4 vCPU, 8 GB RAM, 500GB SSD
    • Prometheus, M3DB, Consul & Grafana
    Cluster Topologie
    Node Topologie
    Nutzen
    • No Single Point of Failure
    • Horizontal Skalierbar
    • Wachsende Community
    • Aggregation inklusive
    code

    Konstruktion von Playbook & Rollen

    Konstruktion von Playbook & Rollen

    
    ---
    - name: Setup Distributed Prometheus
      hosts: all
      become: yes
      remote_user: root
      roles:
      - cloudalchemy.node_exporter
      - common
      - consul
      - etcd
      - m3db
      - prometheus
      - grafana
              
    Playbook main.yml

    Konstruktion von Playbook & Rollen

    Common Rolle

    Konstruktion von Playbook & Rollen

    Consul Rolle

    Konstruktion von Playbook & Rollen

    ETCD Rolle

    Konstruktion von Playbook & Rollen

    M3DB Rolle

    Konstruktion von Playbook & Rollen

    Prometheus Rolle

    Prometheuskonfiguration

    
    # prometheus.yml.j2
    global:
      scrape_interval: 15s
      evaluation_interval: 15s
    remote_write:
    - url: "http://localhost:7201/api/v1/prom/remote/write"
    scrape_configs:
    - job_name: 'consul_services'
      consul_sd_configs:
      - server: "127.0.0.1:8500"
        datacenter: "{{ consul_datacenter }}"
        scheme: http
        refresh_interval: "60s"
    					
    Template der Prometheuskonfiguration

    Konstruktion von Playbook & Rollen

    Grafana Rolle - Node 0
    play_arrow

    Installation

    Installation

    trending_up

    Fazit

    Fazit

    Monitoring
    • Ausfalltolerant
    • Reproduzierbar
    • Dynamisch
    • Performant
    Planung
    • Verschiebung in den Rollen
    • In sich stimmig
    • Viel gelernt!

    Quellen

    
    https://www.bundesgesundheitsministerium.de/
    https://www.sormas-oegd.de/
    https://www.itzbund.de/
    https://etcd.io/
    https://m3db.io
    https://etcd.io/docs/v3.4/op-guide/configuration/
    https://www.youtube.com/watch?v=CcH13GyszHI
    https://www.itzbund.de/DE/home/home_node.html
    https://www.youtube.com/watch?v=gqwcUgZOoyI
    https://prometheus.io/docs/
    https://docs.ansible.com/ansible/latest/user_guide/
    https://www.ansible.com/resources/whitepapers
    https://grafana.com/docs
    https://podman.io/
              

    Danke für Ihre Aufmerksamkeit

    Haben Sie noch Fragen?

    Danke für Ihre Aufmerksamkeit

    Haben Sie noch Fragen?

    Und hier geht es online weiter