DE102018218034A1 - Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung - Google Patents

Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung Download PDF

Info

Publication number
DE102018218034A1
DE102018218034A1 DE102018218034.2A DE102018218034A DE102018218034A1 DE 102018218034 A1 DE102018218034 A1 DE 102018218034A1 DE 102018218034 A DE102018218034 A DE 102018218034A DE 102018218034 A1 DE102018218034 A1 DE 102018218034A1
Authority
DE
Germany
Prior art keywords
application
counter
server device
transaction type
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102018218034.2A
Other languages
English (en)
Inventor
Volker Fusenig
Angela Schattleitner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to PCT/EP2019/074162 priority Critical patent/WO2020064328A1/de
Publication of DE102018218034A1 publication Critical patent/DE102018218034A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung (300) ausgeführt wird, umfassend- Detektieren (S1) einer Aktivierung einer Ausführung (I) der Anwendung, wenn eine Anwendungsanforderungsnachricht (ReqI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) aktiviert, in der Servervorrichtung empfangen wird, undDetektieren eines Abschlusses der Ausführung der Anwendung, wenn eine Anwendungsabschlussnachricht (EndI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) beendet, von der Servervorrichtung (300) ausgegeben wird,- Ermitteln (S10) einer Anzahl (Z) von parallel ausgeführten Ausführungen (I) der Anwendung durcha) Inkrementieren (S11) eines Anwendungszählers (CI), wenn eine Anwendungsanforderungsnachricht detektiert wurde undb) Dekrementieren (S12) des Anwendungszählers (CI), wenn eine Anwendungsabschlussnachricht (EndI) in der Servervorrichtung (300) beendet, detektiert wurde;- Detektieren (S2) und Ermitteln (S50) jeweils ausgeführter weiterer Transaktionen (T) mindestens einer weiteren Transaktionsart,und- Bereitstellen (S20, S60) des aktuellen Anwendungszählerwertes (Z(I)) und des mindestens einen aktuellen Transaktionstypzählerwertes (Z(T)) an eine Auswertevorrichtung (400).

Description

  • Die Erfindung betrifft ein Verfahren, eine Überwachungsvorrichtung, ein System sowie ein Computerprogrammprodukt zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung, insbesondere auf einer verteilten, gemeinsam genutzten Servervorrichtung, auch als Cloud bezeichnet, ausgeführt wird, um insbesondere eine durch Vielanfragen verbreitete Verweigerung eines Dienstes zu erkennen. Ein solcher insbesondere von mehreren Angreifern verteilter ausgeführte Angriff wird häufig auch als Distributed Denial of Service (DDoS)-Angriff bezeichnet.
  • Herkömmlicherweise werden solche durch Vielanfragen verbreitete Dienstverweigerungsangriffe durch eine Überwachung der Bandbreite und des Paketdurchsatzes in zustandslos arbeitenden Geräten, wie beispielsweise Routern, oder durch eine Überwachung der Anzahl der Verbindungen pro Sekunde und der maximalen Anzahl paralleler Verbindungen bei zustandsbasiert arbeitenden Geräten erkannt. Es wird also eine Überwachung auf Netzwerkebene gemäß einem OSI-Referenzmodell bzw. auf einer Infrastrukturebene, die eine Kommunikation mit Netzwerkexternen Managementkomponente umfasst, durchgeführt.
  • Das offene Systemverbindungs-Referenzmodell, kurz OSI-Referenzmodell, wurde durch die Internationale Telekommunikationsunion (ITU-T) sowie die Internationale Organisation für Standardisierung (ISO) als Standard veröffentlicht und beschreibt ein Modell für Netzprotokolle als Schichtarchitektur. Auf einer Applikationsebene des OSI-Referenzmodells, werden Signalisierungsnachrichten zwischen dem Nutzer der Anwendung, auch als Applikationsklient bezeichnet, und der bereitstellenden Einheit einer Anwendung, auch als Applikationsserver bezeichnet, übermittelt, die eine Anwendung im Applikationsserver aktivieren beziehungsweise den Abschluss einer Anwendung dem Applikationsklienten mitteilen. Auf Applikationsebene wird somit eine Ausführung der betrachteten Anwendung veranlasst beziehungsweise beendet.
  • Eine solche Signalisierungsnachricht zum Anfordern einer Ausführung der Anwendung wird im Weiteren als eine Anwendungsanforderungsnachricht bezeichnet. Eine solche Signalisierungsnachricht zum Abschluss einer Ausführung der Anwendung wird im Weiteren als eine Anwendungsabschlussnachricht bezeichnet. Die Bezeichnung „Dienst“ und „Anwendung“ bezeichnen eine Computer-implementierte Applikation und werden als Synonym verwendet.
  • Auf Applikationsebene ist es schwieriger festzulegen, wann eine Überlast eines Dienstes vorliegt, so dass die Dienstqualität sinkt oder der Dienst gar nicht mehr erreichbar ist beziehungsweise der Dienst dem Client durch den Applikationsserver nicht mehr bereitgestellt werden kann. Besonders schwierig ist es Abhängigkeiten zwischen dem aufgerufenen so genannten Frontend-Service, der viele beispielsweise Ausführungsaktivierungen pro Sekunde abarbeiten kann und nachgelagerten Diensten, so genannten Backend-Services, bei denen die Anzahl der möglichen Anwendungen pro Sekunde geringer sein kann, oder abhängig von der Komplexität des Dienstes stark schwankt, bei der Lastüberwachung mit einzubeziehen. Beispiele für nachgelagerte Backend-Dienste sind beispielsweise eine Authentisierung oder Datenbankanfragen, die nach dem Aktivieren einer Ausführung der Anwendung ausgeführt werden.
  • Üblicherweise werden Lastparameter von beispielsweise Routern oder Firewalls, statisch eingestellt und streng überwacht. Eine Mitigation von Lastspitzen wird üblicherweise erst auf Lastverteilern, sogenannten Loadbalancern, und Reverse Proxies ermöglicht, da diese dediziert für eine Anwendung bzw. eine Gruppe von Anwendungen „zuständig“ sind. Lastverteiler auf Anwendungsebene sind üblicherweise vorkonfiguriert, um bei Lastspitzen Anfragen auf weitere Ressourcen umzuleiten. Wird die Anwendung durch Servervorrichtungen einer Cloud bereitgestellt, wird eine Lastverteilung so vorkonfiguriert, dass neuen Vorrichtungen, häufig in Form weiterer Virtueller Maschinen, zur Bereitstellung der Applikation dynamisch erzeugt werden. Damit wird die Verfügbarkeit der Anwendung gesichert, allerdings kann ein Angreifer in dieser Weise hohe Kosten für den Anwendungsbesitzer verursachen.
  • Da auch solche Lastverteiler den Verkehr auf Vermittlungs- oder Transportschichtebene, also Layer 3 oder Layer 4 des OSI-Modells, überwachen, wird eine Überlast nicht erkannt, beispielsweise aufgrund von nachgelagerten rechenintensiven Anwendungen.
  • Es ist somit die Aufgabe der vorliegenden Erfindung die durch eine Anwendung verursachte Auslastung einer Servervorrichtung, insbesondere eine auf eine Mehrzahl von Servervorrichtungen verteilte Last, frühzeitig erkennen und insbesondere die Ursache für die Last ermitteln zu können um basierend darauf gezielt Maßnahmen ergreifen zu können.
  • Die Aufgabe wird durch die in den unabhängigen Ansprüchen beschriebenen Maßnahmen gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindungen dargestellt.
  • Gemäß einem ersten Aspekt betrifft die Erfindung ein Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung ausgeführt wird. Es umfasst ein
    • - Detektieren einer Aktivierung einer Ausführung der Anwendung, wenn eine Anwendungsanforderungsnachricht auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung aktiviert, in der Servervorrichtung empfangen wird, und Detektieren eines Abschlusses der Ausführung der Anwendung, wenn eine Anwendungsabschlussnachricht auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung beendet, von der Servervorrichtung ausgegeben wird,
    • - Ermitteln einer Anzahl von parallel ausgeführten Ausführungen der Anwendung durch
      1. a) Inkrementieren eines Anwendungszählers, wenn eine Anwendungsanforderungsnachricht detektiert wurde und
      2. b) Dekrementieren des Anwendungszählers, wenn eine Anwendungsabschlussnachricht in der Servervorrichtung beendet, detektiert wurde;
    • - Detektieren jeweils ausgeführter weiterer Transaktionen mindestens einer weiteren Transaktionsart, die nach einer Anwendungsanforderungsnachricht und vor einer Anwendungsabschlussnachricht aktiviert werden,
    • - Ermitteln einer Anzahl von parallel ausgeführten weiteren Transaktionen mindestens eines weiteren Transaktionstyps, die während der Ausführung durchgeführt werden, mittels eines weiteren Transaktionstypzählers und
    • - Bereitstellen des aktuellen Anwendungszählerwertes und des mindestens einen aktuellen Transaktionstypzählerwertes an eine Auswertevorrichtung.
  • Eine Ausführung einer Anwendung wird somit durch eine Anwendungsanforderungsnachricht aktiviert und durch eine Anwendungsabschlussnachricht beendet. Die Anwendungsanforderungsnachricht und Anwendungsabschlussnachricht sind Signalisierungsnachrichten der Applikationsschicht gemäß dem OSI-Referenzmodell.
  • Die Anwendung wird auf einer Servervorrichtung bereitgestellt. Eine Anwendung umfasst üblicherweise mindestens eine weitere Transaktion, die während einer Ausführung auf der Servervorrichtung oder mindestens einer mit der Servervorrichtung verbundenen weiteren Vorrichtung, durchgeführt wird. Eine weitere Vorrichtung ist beispielsweise eine Datenbank-Vorrichtung. Eine weitere Transaktion ist beispielsweise eine Datenbankabfrage oder eine Authentisierungsprozedur.
  • Dies hat den Vorteil, dass die genaue Auslastung einer Anwendung anhand der aktuell ausgeführten Ausführungen und weiteren Transaktionen ermittelt und protokolliert wird. Eine Ausführung einer Anwendung bezeichnet eine aktive Ausführung einer bestimmten Anwendung.
    Dabei werden auch während der Ausführung der Anwendung angestoßene und ablaufende Transaktionen von parallel ausgeführten weiteren Transaktionsarten über einen separaten, dem weiteren Transaktionstyp zugeordneten Zähler erfasst. Weitere Transaktionen sind dabei insbesondere Transaktionen, die zur Bereitstellung der Anwendung ausgeführt werden müssen. Somit wird bereits auf Anwendungsebene die Auslastung der Servervorrichtung und weiterer Vorrichtungen erfasst. Diese Lastinformation auf Anwendungsebene kann zusammen beispielsweise mit einer auf Netzwerk- oder Transportebene gemessenen Lastinformation korreliert werden. Somit können in einem Validierungsprozess die ermittelten Zählerwerte permanent ohne eine Überprüfung eines sonstigen Kriteriums zur beispielsweise Überwachung oder Protokollierung übertragen werden. Somit können auch zielgerichtet Maßnahmen zur Lastabwehr an die vorliegende Situation angepasst und eingeleitet werden. Der Ausdruck „parallel“ wird dabei als zeitliche Angabe verwendet und bezeichnet gleichzeitig ausgeführte weitere Anwendungen.
  • Eine Ausführung kann dabei beispielsweise durch eine Anwendungssanforderungsnachricht erkannt und das Ende einer Anwendung durch eine Anwendungsabschlussnachricht erkannt werden. Eine Anwendungsanforderungsnachricht kann beispielsweise das Anfordern einer Ressource aus dem Internet durch die Nachricht „www.info-Applikationl.org“ sein. Die Anwendungsabschlussnachricht kann beispielsweise eine Übertragung der angeforderten Ressource oder eine abschließende „OK“-Nachricht sein. Weitere Transaktionen, die nach einer solchen Anwendungsanforderungsnachricht durch den Dienst aufgerufen werden, sind beispielsweise eine Nachricht an einen Namensserver zur Ermittlung einer routebaren Serveradresse, oder eine Authentisierungsanforderung zur Authentisierung des Nutzers der Anwendung.
  • Eine Ausführung wird in der Servervorrichtung detektiert. Eine Transaktion eines weiteren Transaktionstyps wird in der Servervorrichtung oder einer weiteren Vorrichtung detektiert. Das Ermitteln der Anzahl von Ausführungen bzw. der Transaktionen kann in der gleichen Servervorrichtung aufgeführt werden. Die Information der detektierten Ausführung bzw. der Transaktionen kann aber auch an eine von der Servervorrichtung unterschiedliche weitere Vorrichtung übermittelt werden. Ein in der Vorrichtung angeordneter Zähler wird bei Empfang der Information inkrementiert bzw. dekrementiert.
  • In einer vorteilhaften Ausführungsform werden der Empfangszeitpunkt und/oder die Dauer einer detektierten Ausführung der Anwendung oder einer weiteren Transaktion mindestens einer weiteren Transaktionsart ermittelt und bereitgestellt.
  • Dies erlaubt eine detaillierte Analyse der aktuellen Last durch die Anwendung und trägt somit zu einer zielgerichteten und ursachenbezogenen Verständnis und Abwehr der Last bei.
  • In einer vorteilhaften Ausführungsform wird abhängig von den parallel vorliegenden Ausführungen der Anwendung oder weiterer Transaktionen in einer vorgegebenen Zeiteinheit eine Steigerungsrate der Anzahl von parallel vorliegenden Ausführungen beziehungsweise eine Steigerungsrate der Anzahl von parallel vorliegenden weiteren Transaktionen ermittelt werden.
  • Eine solche Steigerungsrate ist ein signifikantes Indiz für die Beurteilung der aktuellen Last, die durch die Anwendung erzeugt wird.
  • Die Steigerungsrate von parallelen Ausführungen und Transaktionen ist ein aussagekräftiges Maß für die Lastentwicklung und ist somit ein frühzeitiges Indiz für eine zukünftige Lastsituation.
  • In einer vorteilhaften Ausführungsform umfasst das Verfahren des Weiteren die Verfahrensschritte: Vergleichen des Anwendungszählerwertes, des Transaktionstypzählerwertes und der jeweils entsprechend ermittelten Steigerungsrate mit einem jeweils konfigurierbaren Anwendungszählermaximalwert, einen Transaktionstypzählermaximalwert und einem jeweiligen Steigerungsmaximalwert und Bereitstellen einer Meldung, wenn der Anwendungszählerwert den Anwendungszählermaximalwert und/oder der Transaktionstypzähler den Transaktionstypzählermaximalwert und/oder jeweils eine Steigerungsrate einen Steigerungsmaximalwert überschreitet.
  • Durch die Überprüfung der aktuellen Zählerwerte mit den konfigurierbaren Maximalwerten der Zähler können zeitnah mögliche Überlastsituation erkannt werden.
  • In einer vorteilhaften Ausführungsform werden der Anwendungszählermaximalwert und/oder Transaktionstypenzählermaximalwert und/oder der Steigerungsmaximalwert durch jeweils einen automatisch ausgeführten Lasttest an der Servervorrichtung ermittelt.
  • Ein solcher automatisch ausgeführter Lasttest könnte beispielsweise in zeitlich vorgegebenen Abständen oder durch das Empfangen einer Meldung aktiviert werden.
  • In einer vorteilhaften Ausführungsform werden der Anwendungszählermaximalwert und/oder der Transaktionstypzählermaximalwert und/oder der Steigerungsmaximalwert durch zeitlich vorangehend ausgegebene Anwendungszählerwerte und/oder Transaktionstypenzählerwerte und/oder Steigerungswerte ermittelt werden.
  • Vorteilhafterweise werden durch die Verwendung der ermittelten Zählerwerte keine neuen zusätzlichen Lasttests benötigt und somit Prozessorkapazität und Performance der Servervorrichtung optimiert.
  • In einer vorteilhaften Ausführungsform werden die bereitgestellten Werte, insbesondere der aktuelle Anwendungszählerwert, der aktuelle Transaktionstypzählerwert, der Empfangszeitpunkt und/oder die Dauer mindestens einer der detektierten Ausführungen der Anwendung oder einer weiteren Transaktion an eine Auswertevorrichtung übermittelt.
  • Insbesondere kann die Auswertevorrichtung eine Logging-Vorrichtung sein, die zusätzlich zu überwachten und gespeicherten Nachrichten die Zählerwerte der Servervorrichtung speichert. Insbesondere können die dort gesammelten Zählerwerte für eine weitere Analyse und eine Weiterverarbeitung gesammelt und bereitgestellt werden.
  • In einer vorteilhaften Ausführungsform werden die bereitgestellten Werte durch maschinelles Lernen ausgewertet, insbesondere wird eine Anomalieerkennung durchgeführt, und bei einer erkannten Anomalie eine Meldung bereitgestellt.
  • Dies hat den Vorteil, dass die Anwendungszählerwerte, die Transaktionstypzähler sowie die zu den Ausführungen und Transaktionen zusätzlich ermittelten Parameter zur weiteren Analyse verwendet werden können. Durch maschinelles Lernen, insbesondere eine Anomalieerkennung können unübliche Zählerwertverläufe erkannt und somit frühzeitig mögliche Fehlverhalten oder auch Angriffe erkannt werden, insbesondere bevor die Qualität der Anwendung oder die Erreichbarkeit abnimmt. Nach einer Anlernphase können solche maschinellen Lernverfahren auch Prognosen für das Lastverhalten zu einem in der Zukunft liegenden Zeitpunkt oder Zeitraum erstellen.
  • Ein zweiter Aspekt der Erfindung betrifft eine Überwachungsvorrichtung zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung ausgeführt wird, und die derart ausgebildet ist, dass vorbeschriebene Verfahren auszuführen, umfassend - eine erste Detektionseinheit, die derart ausgebildet, eine Aktivierung einer Ausführung der Anwendung zu detektieren, wenn eine Anwendungsanforderungsnachricht auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung aktiviert, in der Servervorrichtung empfangen wird, und
    einen Abschluss der Ausführung der Anwendung zu detektieren, wenn eine Anwendungsabschlussnachricht auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung beendet, von der Servervorrichtung ausgegeben wird,
    • - eine erste Zählereinheit, die derart ausgebildet ist, eine Anzahl von parallel ausgeführten Ausführungen der Anwendung zu ermitteln durch
      1. a) Inkrementieren eines Anwendungszählers, wenn eine Anwendungsanforderungsnachricht detektiert wurde und
      2. b) Dekrementieren des Anwendungszählers, wenn eine Anwendungsabschlussnachricht in der Servervorrichtung beendet, detektiert wurde;
      • - eine zweite Detektionseinheit, die derart ausgebildet ist jeweils eine ausgeführte weitere Transaktin mindestens einer weiteren Transaktionsart, die während der Ausführung durchgeführt werden, zu detektieren,
      • - eine zweite Zählereinheit, die derart ausgebildet ist, eine Anzahl von parallel ausgeführten weiteren Transaktionen (T) mindestens eines weiteren Transaktionstyps, die während der Ausführung durchgeführt werden, mittels eines weiteren Transaktionstypzählers zu ermitteln; und
      • - eine Bereitstellungseinheit, die derart ausgebildet ist, den aktuellen Anwendungszählerwertes und den mindestens einen aktuellen Transaktionstypzählerwert an eine Auswertevorrichtung bereitzustellen.
  • Eine solche Vorrichtung kann als eigenständige Hardware oder als Software-technische Funktion ausgebildet sein, die zumindest teilweise in der Servervorrichtung angeordnet ist bzw. in der Servervorrichtung abläuft. Bei einer Softwaretechnischen Ausbildung kann die Überwachungsvorrichtung in einer geteilten Bibliothek gespeichert und von mehreren Servervorrichtungen aus zugreifbar, das heißt herunterladbar und aktivierbar, sein.
  • In einer vorteilhaften Ausführungsform umfasst die Überwachungsvorrichtung eine Überprüfungseinheit, die derart ausgebildet ist, einen Anwendungszählerwert, einen Transaktionstypzählerwert und eine jeweils ermittelte Steigerungsrate mit einem jeweils konfigurierbaren Anwendungszählermaximalwert, einem Transaktionstypzählermaximalwert und einem jeweiligen Steigerungsmaximalwert zu vergleichen und eine Meldung bereitzustellen, wenn der Anwendungszählerwert den Anwendungszählermaximalwert und/oder der Transaktionstypzählermaximalwert und einem jeweiligen Steigerungsmaximalwert zu vergleichen und eine Meldung bereitzustellen, wenn der Anwendungszählerwert den Anwendungszählermaximalwert und/oder der Transaktionstypzähler den Transaktionstypzählermaximalwert und/oder jeweils eine Steigerungsrate einen Steigerungsmaximalwert überschreitet.
  • Durch die Überprüfungseinheit kann in Echtzeit die Auslastung einer Anwendung, die auf einer insbesondere verteilten Servervorrichtung ausgebildet ist, ermittelt und ausgegeben werden. Durch die Ausgabe beziehungsweise das Bereitstellen der Auslastungskennzahlen, die durch die Zählerwerte gegeben sind, können anormale oder verdächtige Auslastungswerte frühzeitig erkannt und Maßnahmen zur Abwehr beziehungsweise zur Aufrechterhaltung der Anwendungsbereitstellung ausgelöst werden. Insbesondere kann die Überwachungsvorrichtung durch eine auf einer Servervorrichtung ablaufenden Anwendung aufgerufen und aktiviert werden.
  • Ein dritter Aspekt der Erfindung betrifft ein System zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung ausgeführt wird, umfassend mindestens eine Servervorrichtung, mindestens eine Überwachungsvorrichtung und eine Auswertevorrichtung, die derart ausgebildet sind, das beschriebene Verfahren auszuführen.
  • Ein solches System kann durch die Überwachungsvorrichtung einen Regelkreis zur Lastauswertung, Lasterkennung und Lastabwehr implementieren und somit eine verbesserte Verfügbarkeit und eine verbesserte Qualität einer Anwendung ermöglichen.
  • In einer vorteilhaften Ausführungsform wird die Überwachungsvorrichtung getrennt von der Servervorrichtung verwaltet.
  • Beispielsweise ist die Überwachungsvorrichtung auf einer Betriebseinheit der Servervorrichtung ausgebildet, über die beispielsweise ein Server abgeschaltet oder auch aktiviert werden kann. Dies stellt sicher, dass eine Servervorrichtung, die beispielsweise aus Überlast abgeschaltet wird, dennoch die Zählerwerte ausgeben kann. Somit bleiben die Lastwerte einer Servervorrichtung der Anwendung auch im Fehlerfall lange verfügbar.
  • In einer vorteilhaften Ausführungsform ist zumindest eine Überwachungsvorrichtung derart ausgebildet, eine Registrierungsnachricht mindestens einer weiteren Anwendung, die zur Durchführung der Anwendung benötigt wird, zu empfangen und die bereitgestellten Zählerwerte der Anwendung und bereitgestellte Zählerwerte der mindestens einen registrierten weiteren Anwendung zu empfangen und gemeinsam auszuwerten und eine Meldung einer Auswertevorrichtung bereitzustellen, wenn mindestens einer der Zählerwerte einen entsprechenden Zählermaximalwert überschreitet und/oder eine Steigerungsrate einen Steigerungsmaximalwert überschreitet und eine Anpassungsvorrichtung, die derart ausgebildet ist, abhängig von einer von der Auswertevorrichtung empfangenen Meldung mindestens eine Maßnahme zur Reduzierung der Auslastung durchzuführen.
  • Dies hat den Vorteil, dass weitere Anwendungen, insbesondere die zur Ausführung der Anwendung benötigt werden, in die Lastüberwachung integriert werden können. Durch eine Registrierung von Anwendungen kann eine Auswahl von überwachten weiteren Anwendungen kontrolliert und aktiv ausgewählt werden. Somit ist ein hierarchischer Aufbau der Lastüberwachung eines solchen Systems möglich. So kann eine Überwachungsvorrichtung Nachrichten über das Erreichen von Maximalwerten von Systemen entgegennehmen, auf deren Verfügbarkeit die eigene Anwendung beruht. Eine Registrierung beziehungsweise De-Registrierung von weiteren Überwachungsvorrichtungen am System erlaubt es, diese in eine Gesamtauswertung einzubeziehen. Somit kann eine Meldung beispielsweise eine Alarmfunktion auch dann gesendet beziehungsweise bereitgestellt werden, wenn nur ein registriertes System einen vorgegebenen Maximalwert überschreitet. Eine solche Meldung kann auch zusätzliche Daten enthalten und von der zu schützenden Anwendung abgefragt werden, um anwendungsbasiert die Auslastung bestimmter Prozesse zu steuern. Des Weiteren können solche zusätzlichen Daten an die Anpassungsvorrichtung weitergegeben werden, um beispielsweise bei einer erhöhten Last der Anwendung zusätzliche Ressourcen zur Bereitstellung der Anwendung zu aktivieren.
  • In einer vorteilhaften Ausführungsform ist eine Maßnahme zur Reduzierung der Auslastung ein Blockieren von IP-Adressen, ein Zuschalten von Servervorrichtungen, ein Zuschalten von Identifizierungsabfragen an eine Clientvorrichtung oder ein Umleiten einer Anwendungsanforderungsnachricht.
  • Die genannten Maßnahmen dienen einerseits aktiv zur Reduzierung der eingehenden Anwendungsanforderungsnachrichten durch das Blockieren von IP-Adressen, aber auch ein Skalieren der Ressourcen zur Bereitstellung zusätzlicher Anwendungsinstanzen durch Hinzuschalten von Servervorrichtungen, auf denen die Anwendung bereitgestellt wird. Durch Hinzuschalten von Identifizierungsabfragen, wie beispielsweise Captchas bei Login-Masken, werden automatisierte Angriffe erschwert.
  • In einer vorteilhaften Ausführungsform wird die Überwachungsvorrichtung durch die zu überwachende Anwendung, die auf der Servervorrichtung ausgeführt wird, aktiviert.
  • Dies ermöglicht eine Beibehaltung der Implementierung der Anwendung selbst und ein kombiniertes Aktivieren der Anwendung gleichzeitigen mit einer Aktivierung der Lastüberwachung.
  • Dies erlaubt eine einfache Bereitstellung der Überwachungsvorrichtung, beispielsweise durch eine geteilte Bibliothek, über die jede Auswendung die Überwachungsvorrichtung aufrufen und starten kann.
  • Ein vierter Aspekt der Erfindung betrifft ein Computerprogrammprodukt, umfassend ein nicht vorübergehendes computerlesbares Medium, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, die Schritte des beschriebenen Verfahrens durchzuführen.
  • Sofern es in der nachfolgenden Beschreibung nicht anders angegeben ist, beziehen sich die Begriffe „Detektieren“, „Inkrementieren“, „Dekrementieren“, „Bereitstellen“, „Ermitteln“, „Vergleichen“, vorzugsweise auf Handlungen und/oder Prozesse und/oder Verarbeitungsschritte, die Daten verändern und/oder erzeugen und/oder die Daten in andere Daten überführen, wobei die Daten insbesondere als physikalische Größen dargestellt werden oder vorliegen können, beispielsweise als elektrische Impulse. Insbesondere sollte der Ausdruck „Computer“ möglichst breit ausgelegt werden, um insbesondere alle elektronischen Geräte mit Datenverarbeitungseigenschaften abzudecken, Computer oder auch Vorrichtungen umfassen mindestens einen Prozessor und können beispielsweise ein Personalcomputer, Server, Handheld-Computersystem, die rechnergestützte Daten verarbeiten können, Prozessoren und andere elektronische Geräte zur Datenverarbeitung sein. Unter einer Servervorrichtung kann im Zusammenhang mit der Erfindung beispielsweise eine von mehreren Nutzern gemeinsam verwendete Vorrichtung verstanden werden, die aus einem oder mehreren Prozessoren ausgebildet sind, die insbesondere auch als virtuelle Maschinen oder virtuelle Prozessoren implementiert sind.
  • Eine „Einheit“, zum Beispiel eine „Detektionseinheit“, „Bereitstellungseinheit“, „Überprüfungseinheit“, kann hardwaretechnisch und/oder softwaretechnisch implementiert sein. Bei einer hardwaretechnischen Implementierung kann die jeweilige Einheit als Vorrichtung oder als Teil einer Vorrichtung, zum Beispiel als Computer oder als ein oder mehrere Mikroprozessoren, ausgebildet sein.
  • Bei einer softwaretechnischen Implementierung kann die jeweilige Einheit als Computerprogrammprodukt, als eine Funktion, als eine Routine, als Teil eines Programmcodes oder als ausführbares Objekt ausgebildet sein.
  • Ein Computerprogrammprodukt kann beispielsweise als Speichermedium, wie zum Beispiel Speicherkarte, USB-Stick, CD-ROM, DVD oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden.
  • Die nachfolgenden Ausführungsbeispiele weisen, sofern nicht anders angegeben oder bereits angegeben, zumindest einen Prozessor und/oder eine Speichereinheit auf, um das Verfahren zu implementieren oder auszuführen.
  • Ausführungsbeispiele des erfindungsgemäßen Verfahrens, der erfindungsgemäßen Überwachungsvorrichtung sowie des erfindungsgemäßen Systems sind in den Zeichnungen beispielhaft dargestellt und werden anhand der nachfolgenden Beschreibung näher erläutert. Es zeigen:
    • 1 ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens als Flussdiagramm;
    • 2 ein Ausführungsbeispiel der erfindungsgemäßen Überwachungsvorrichtung in Blockdarstellung; und
    • 3 ein Ausführungsbeispiel eines erfindungsgemäßen Systems in Blockdarstellung.
  • Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
  • 1 zeigt ein Ausführungsbeispiel des Verfahrens zur Überwachung der Auslastung einer Computer-implementierten Anwendung, das insbesondere einen Angriff durch Vielanfragen, der zur Verweigerung der Durchführung einer Anwendung führt, erkennt.
  • Im Ausgangszustand wird eine Computer-implementierte Anwendung, ein sogenannter Dienst, von einer Servervorrichtung bereitgestellt. Die Anwendung umfasst beispielsweise eine Eingabeseite eines Informationsproviders über die Ressourcen, wie beispielsweise eine Informationseiten, zugreifbar sind. Das Verfahren kann beispielsweise softwaretechnisch implementiert und als Funktion ausgebildet sein, die von der Anwendung aufgerufen wird.
  • In einem ersten Verfahrensschritt S1 werden eine Aktivierung einer Ausführung der Anwendung und das Ende der Ausführung der Anwendung detektiert. Eine Aktivierung der Ausführung wird detektiert, wenn eine Anwendungsanforderungsnachricht auf Anwendungsebene entsprechend einem OSI-Referenzmodell, die die Anwendung in der Servervorrichtung aktiviert, empfangen wird. Wird eine Ausführung abgeschlossen, erzeugt die Anwendung eine Anwendungsabschlussnachricht auf Anwendungsebene entsprechend dem OSI-Referenzmodell und übermittelt diese beispielsweise an eine Clientvorrichtung, die eine Ausführung der Anwendung aufgerufen hat. Wird eine Anwendungsabschlussnachricht von der Servervorrichtung erzeugt, so wird dies als Abschluss der Ausführung detektiert.
  • Alle parallel in der Servervorrichtung ausgeführten Ausführungen der Anwendung werden ermittelt, siehe Verfahrensschritt S10, indem ein Anwendungszähler um einen vorgegebenen Wert, beispielsweise um den Wert 1, erhöht wird, siehe S11, wenn eine eintreffende Anwendungsanforderungsnachricht detektiert und dem Anwendungszähler von einer Detektionseinheit gemeldet wird. Wurde eine Anwendungsabschlussnachricht ReqI detektiert, wird der Anwendungszähler um einen festen Wert, beispielsweise wiederum den Wert 1, erniedrigt, siehe Schritt S12. Der Zähler wird dabei bevorzugt um den gleichen festen Wert erhöht bzw. inkrementiert und erniedrigt bzw. dekrementiert.
  • Des Weiteren werden weitere Transaktionen, die zur Ausführung der Anwendung benötigt werden, ausgewertet. Dazu wird eine Anzahl von parallel ausgeführten weiteren Transaktionen mindestens einer weiteren Transaktionsart gezählt, die zeitlich nach einer Anwendungsanforderungsnachricht zur Durchführung der Anwendung ausgelöst werden. Dies können Transaktionen mindestens einer weiteren Transaktionsart sein. So kann eine erste Transaktionsart beispielsweise eine Authentifizierung des Anwendungsnutzer, beispielsweise einer Clientvorrichtung, sein. Eine zweite Transaktionsart kann beispielsweise ein Abfragen der angeforderten Information in einer Datenbank in einem Kommunikationssystem umfassen. Im Verfahrensschritt S2 wird die Aktivierung der weiteren Transaktion sowie der Abschluss der weiteren Transaktion detektiert. Im Verfahrensschritt S50 wird eine Anzahl von parallel ausgeführten Transaktionen mindestens eines Transaktionstyps, die während einer Ausführung der Anwendung durchgeführt werde, mittels jeweils eines Transaktionstypzählers CT pro Transaktionstyp ermittelt.
  • Der aktuelle Anwendungszählerwert Z(I) und der aktuelle Transaktionstypzählerwert Z(T) des mindestens einen zusätzlichen Anwendungstyps werden einer externen Vorrichtung, beispielsweise einer Auswertevorrichtung, bereitgestellt, siehe Verfahrensschritt S20, S60.
  • Neben dem Anwendungszählerwert Z(I) beziehungsweise dem Transaktionstypzählerwert Z(T) kann der Empfangszeitpunkt TS(I) einer Anwendungsanforderungsnachricht bzw. Aktivierungszeitpunkt einer Transaktion eines weiteren Transaktionstyps TS(T) ermittelt und beispielsweise in einer Tabelle abgespeichert werden. Des Weiteren kann die Dauer D(I) der Ausführung sowie eine Steigerungsrate S(I) der in einem vorgegebenen Zeitraum hinzugekommenen oder auch, bei negativer Steigung, verminderten Anzahl von Ausführungen ermittelt werden. Der Empfangszeitpunkt TS(I) kann beispielsweise durch einen Zeitstempel bei Empfang der Anwendungsanforderungsnachricht, der Empfangszeitpunkt der Transaktion TS(T) kann bei der Aktivierung der Transaktion aufgenommen werden. Die ermittelten Anfangszeitpunkte TS(I), Dauer D(I), Steigerungsrate S(I) sowie die entsprechenden Werte der weiteren Transaktionstypen TS(T), D(T), S(T) können zusammen mit den Zählerwerten Z(I), Z(T) in Verfahrensschritt S20 beziehungsweise S60 an eine Auswertevorrichtung bereitgestellt werden. Diese Auswertevorrichtung kann nun anhand der Daten die aktuelle Auslastung der Anwendung erkennen.
  • Zusätzlich kann in einem weiteren Schritt S30 beziehungsweise S70 der aktuelle Anwendungszählerwert Z(I) beziehungsweise der Transaktionstypzählerwert Z(T) sowie die Dauer D(I), D(T) und die Steigerungsrate S(I), S(T) gegenüber entsprechenden Maximalwerten maxi, maxT für diese jeweiligen Zählerwerte und Dauer- bzw. Steigerungswerte überprüft werden und bei Überschreitung von mindestens einem der vorgegebenen Maximalwerte eine Meldung S40, S80 ausgegeben werden.
  • 2 zeigt nun eine Servervorrichtung 300, die auch als eine virtuelle Maschine auf einer gemeinsam verwendeten einer Cloudvorrichtung, ausgebildet sein kann. Von der Servervorrichtung 300 wird eine Anwendung 200 bereitgestellt. Die Anwendung 200, insbesondere die Anforderung einer Ausführung der Anwendung 200, ruft die Überwachungsvorrichtung 100 auf. Die Überwachungsvorrichtung 100 kann beispielsweise in einer Managementeinheit der Servervorrichtung 300, wie beispielsweise einer „Integrated Lights Out“-Komponente eingebaut sein, die auch bei einem Ausfall der Anwendung 200 oder der Servervorrichtung 300 noch aktiv bleibt. Des Weiteren kann die Überwachungsvorrichtung 100 als ein Mikroservice ausgebildet sein. Kann die Computer-implementierte Anwendung 200 selbst nicht geändert werden, so kann die Überwachungsvorrichtung 100 und die gesamte Anwendung mit einem sogenannten Wrapper versehen werden. Ein solcher Wrapper stellt dann eine Schnittstelle zwischen der eigentlichen Anwendung 200 und der Überwachungsvorrichtung 100 bereit.
  • Die Überwachungseinheit 100 umfasst eine Detektionseinheit 1, eine erste Zählereinheit 4 und eine zweite Zählereinheit 5, eine Bereitstellungseinheit 20 und optional eine Überprüfungseinheit 30. Die Detektionseinheit 1 umfasst eine erste Detektionseinheit 2, die die Aktivierung und den Abschluss einer Ausführung der Anwendung 200 detektiert, sowie eine zweite Detektionseinheit 3, die die Aktivierung und den Abschluss einer Transaktion mindestens eines Transaktionstyps innerhalb der Anwendung 200 detektiert. Eine Aktivierung und ein Abschluss der Ausführung bzw. einer weiteren Transaktion wird an eine erste Zählereinheit 4 mit einem Anwendungszähler CI bzw. an eine zweite Zählereinheit 5 mit einem Transaktionstypzähler CT in beispielsweise durch eine Zählinformation N in Form einer Datenstruktur oder eines analogen Signals übermittelt.
  • Die erste Detektionseinheit 2 ist der Anwendung 200 räumlich zugeordnet und auf der Servervorrichtung 300, die die Anwendung 200 bereitstellt angeordnet. Die zweite Detektionseinheit 3 kann entsprechend der ersten Detektionseinheit 2 auf der Servervorrichtung 300 oder auf einer Vorrichtung, die die Transaktion ausführt, angeordnet sein. Die erste und zweite Zählereinheit 4, 5 sind beispielsweise in einer gemeinsamen Zählereinheit 10 auf der Servervorrichtung 300 angeordnet, wie in 2 dargestellt. Die erste und zweite Zählereinheit 4, 5 können aber auch räumlich voneinander getrennt, beispielsweise auf der Servervorrichtung 300 und der Vorrichtung, die die Transaktion ausführt, angeordnet sein.
  • Für jeden Zähler, beispielsweise den Ausführungszähler CI oder einen Transaktionstypzähler CT, ist ein Speicherelement, beispielsweise ein Stapelspeicher, in der Zählereinheit 10 der Überwachungsvorrichtung 100 ausgebildet. Bei Erkennen einer Anwendungsanforderungsnachricht ReqI oder einer Aktivierung der Transaktion ReqT in der ersten Detektionseinheit (1) wird eine Zählinformation N an die entsprechende erste oder zweite Zählereinheit 4, 5 übermittelt. Der Anwendungszähler CI bzw. der Transaktionstypzähler CT werden durch die Zählinformation N um einen vorgegebenen Wert, beispielsweise eine natürliche Zahl n oder in der einfachsten Form um den Wert 1 erhöht. Zu der Anforderungsanforderungsnachricht ReqI, ReqT wird ein Zeitstempel, der den Empfangszeitpunkt TS(I), TS(T) der Nachricht angibt, ermittelt und gespeichert und beispielsweise mit der Zählinformation N an die Zählereinheit 10 übermittelt. Wird eine Anwendungsabschlussnachricht EndI oder auch Abschlussnachricht EndT zu einer Transaktion in der Detektionseinheit 1 detektiert, wird eine weitere Zählinformation N an die Zählereinheit 10 übermittelt. Wird auch für die Abschlussnachrichten EndI, EndT beispielsweise ein Zeitstempel registriert, kann daraus beispielsweise die Dauer D(I), D(T) der Ausführung der Anwendung beziehungsweise der Transaktion des Transaktionstyps ermittelt werden.
    In der Bereitstellungseinheit 20 der Überwachungsvorrichtung 100 wird nun aus dem Anwendungszählerwert Z(I) beziehungsweise dem Transaktionstypzählerwert Z(T) und den entsprechenden Zeitstempeln TS(I), TS(T) die Dauer D(I), D(T) sowie eine Steigerungsrate S(I), S(T) der parallel ablaufenden Ausführungen I der Anwendung beziehungsweise Transaktionen des Transaktionstypen T ermittelt.
  • Eine eingegangene Anwendungsanforderungsnachricht ReqI oder ReqT kann bevorzugt durch eine standardisierte Applikationsschnittstelle wie beispielsweise entsprechend einem „Representational State Transfer“, auch als REST bezeichnet, oder als Transaktion in einer Rich Client Platform RCT oder als Cloud Serverless Computing Function aufgerufen werden. Die Zählerwerte Z(I) und Z(T) sowie die weiteren registrierten Zeitstempel TS(I), TS(T) sowie die daraus ermittelte Dauer einer Ausprägung D(I) beziehungsweise eines Transaktionstyps D(T) sowie die entsprechenden Steigerungsraten S(I), S(T) können nun ohne weitere Überprüfung über eine Nachricht 21 beispielsweise an eine externe Auswertevorrichtung 400, siehe 3, ausgegeben werden. Bevorzugt kann eine solche Auswertevorrichtung 400 eine Logging-Funktion umfassen, die Statusmeldungen der Servervorrichtung 300 beziehungsweise der Anwendung 100 speichert. Somit kann kontinuierlich die Auslastung der Anwendung 100 beziehungsweise der bei Durchführung der Anwendung notwendigen weiteren Transaktionen T überwacht werden.
  • Zusätzlich können die Zählerwerte Z(I), Z(T), die Dauer D(I), D(T) der Ausführung beziehungsweise der Transaktion mindestens eines Transaktionstyps, über eine Nachricht 22 intern an eine Überprüfungseinheit 30 der Überwachungsvorrichtung 100 weitergegeben werden. Die Überprüfungseinheit 30 vergleicht die erhaltenen Zählerwerte Z(I), Z(T) und weitere Daten gegenüber vorgegebenen Maximalwerten maxi, maxT. Kommt es zu einer Überschreitung der Maximalwerte maxi, maxT, wird eine Meldung M1 generiert, die beispielsweise einer Anpassungsvorrichtung 500, siehe 3, bereitgestellt wird. Die Maximalwerte maxi, maxT sind beispielsweise durch automatisch ausgeführte Lasttests an der Servervorrichtung 300 ermittelt, oder können auch aus zeitlich früher von der Überwachungsvorrichtung 100 bereitgestellten Zählerwerten Z, Dauer D und Steigerungswerten S abgeleitet sein.
  • Eine solche Meldung M1 kann entweder „in-band“, also innerhalb von Datenverbindung zwischen einer Servervorrichtung 100 und einer Auswertevorrichtung 400 oder auch out-of-band, also über eine zusätzlichen Signalisierungsverbindung, an die Auswertevorrichtung 400, übermittelt werden. Die Meldung M1 kann insbesondere über ein Sicherheitsinformations- und Event-Monitoring-System zur Auswertevorrichtung 400 geführt werden. Die Meldung M1 kann über ein standardisiertes Protokoll, wie beispielsweise Netflow, übertragen werden. Die in der Meldung M1 übertragenen Daten können dabei digital signiert sein um eine Integrität der Meldung M1 sowie eine Authentizität des Senders der Meldung M1 zu gewährleisten.
  • 3 zeigt ein System 600 umfassend eine Servervorrichtung 300, eine Auswertevorrichtung 400 sowie eine Anpassungsvorrichtung 500. In der Servervorrichtung 300 ist beispielhaft für eine Anwendung 200 eine Überwachungsvorrichtung 100 dargestellt. Die Detektionseinheit 10 sowie die Bereitstellungseinheit 20 sind dabei in der Servervorrichtung 300 ausgebildet, die Überprüfungseinheit 30 und optional eine Datenaufzeichnungseinheit 31 sind in der Auswertevorrichtung 400 implementiert.
  • Die Überwachungsvorrichtung 100, insbesondere die Überprüfungseinheit 30 kann Meldungen M2 von anderen Anwendungen oder Transaktionen, auf deren Verfügbarkeit die eigene Anwendung beruht empfangen. Die darüber bereitgestellte Information kann in die Lastauswertung für die betrachtete Anwendung einbezogen werden. Dazu ist eine Registrierung beziehungsweise De-Registrierung von weiteren Überwachungsvorrichtungen in einer Auswertevorrichtung 400 möglich, so dass eine Gesamtauswertung der Auslastung einer Servervorrichtung 300 beziehungsweise auch mehrerer Servervorrichtungen in einem solchen System möglich ist. In einem solchen Szenario wird eine Meldung M1 immer dann erzeugt, wenn mindestens ein Anwendungszählermaximalwert maxI oder Transaktionstypmaximalwert maxT überschritten wird. Eine Meldung M1' kann optional zusätzliche Daten enthalten und von der zu überwachenden Anwendung 100 abgefragt werden, um anwendungsbasiert die Auslastung bestimmter Anwendungen oder Prozesse zu steuern. Die Meldung M1 oder M1' kann wie in 3 dargestellt, auch an eine Anpassungsvorrichtung 500 weitergegeben werden.
  • Die Anpassungsvorrichtung 500 kann automatisiert, halbautomatisiert oder über Bedienpersonal eine Reduktion der Anwendungen durch beispielsweise vordefinierte Maßnahmen vornehmen.
  • Die Anpassungsvorrichtung 500 kann die Last der Applikation 200 auf der Servervorrichtung 300 durch Blockieren von Anwendungsanforderungsnachrichten ReqI von vorgegebenen Client-Vorrichtungsadressbereichen, von denen aus auf die Servervorrichtung zugegriffen wird, steuern. Es können weitere Ausführungen der Anwendung beispielsweise durch Hinzufügung von Infrastruktur wie beispielsweise weiteren virtuellen Maschinen, oder auch durch Zuschalten von zusätzlichen Servervorrichtungen, aktiviert werden. Des Weiteren können Methoden, die einen automatisierten Angriff erschweren, beispielsweise eine Abfragung von Captchas in Login-Masken, aktiviert werden.
  • Vorteilhafterweise werden die Zählereinheit 10, Bereitstellungseinheit 20 und die Überprüfungseinheit 30 einer Überwachungsvorrichtung 100 auf einem von der Servervorrichtung 300 getrennt verwalteten Bereich betrieben. Beispielsweise sind diese Einheiten der Überwachungsvorrichtung 100 im Administrationsnetz ausgebildet, so dass die Anwendung auch bei einer Abschaltung der Servervorrichtung beispielsweise im Überlastfall noch Lastdaten liefert. Die Detektionseinheit 1 bleibt auf der Servervorrichtung implementiert.
  • Durch das beschriebene Verfahren beziehungsweise die Überwachungsvorrichtung verfügen Anwendungen über eine dynamische Überlastüberwachung. Dies gilt für die Überwachung der Anwendung selbst sowie für andere Anwendungen, von deren Verfügbarkeit die Anwendung abhängt. Bei Änderungen der Infrastruktur, beispielsweise durch leistungsfähigere Servervorrichtungen oder das Hochskalieren von beispielsweise Servervorrichtungen, können nun die Maximalwerte, die als Schwellwert für eine Überlasterkennung dienen, automatisch konfiguriert werden. Durch Registrierung und De-Registrierung weiterer Anwendungen und deren Überwachungsvorrichtungen kann die Hierarchie der Überwachungsvorrichtung verändert und auf ein gesamtes Servernetz ausgedehnt werden. Es ist somit kaum manueller Eingriff zur Überlasterkennung, insbesondere zur Erkennung von Distributed Denial of Service-Angriffen, notwendig. Die Überwachungsvorrichtung muss selbst keine Alarmfunktion aufweisen, sondern lediglich den Anwendungszähler beziehungsweise Transaktionstypzähler erhöhen beziehungsweise erniedrigen und die in Überlasttests gefundenen Schwellwerte konfigurieren. Abhängig von weiteren Diensten kann optional auch eine Alarmfunktion durch bereitstellen oder senden einer Meldung mitberücksichtigt werden.
  • Alle beschriebenen und/oder gezeichneten Merkmale des Verfahrens und der Vorrichtung bzw. des Systems können im Rahmen der Erfindung vorteilhaft miteinander kombiniert werden. Die Erfindung ist nicht auf die beschriebenen Ausführungsbeispiele beschränkt.

Claims (16)

  1. Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung (300) ausgeführt wird, umfassend - Detektieren (S1) einer Aktivierung einer Ausführung (I) der Anwendung, wenn eine Anwendungsanforderungsnachricht (ReqI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) aktiviert, in der Servervorrichtung empfangen wird, und Detektieren eines Abschlusses der Ausführung der Anwendung, wenn eine Anwendungsabschlussnachricht (EndI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) beendet, von der Servervorrichtung (300) ausgegeben wird, - Ermitteln (S10) einer Anzahl (Z) von parallel ausgeführten Ausführungen (I) der Anwendung durch a) Inkrementieren (S11) eines Anwendungszählers (CI), wenn eine Anwendungsanforderungsnachricht detektiert wurde und b) Dekrementieren (S12) des Anwendungszählers (CI), wenn eine Anwendungsabschlussnachricht (EndI) in der Servervorrichtung (300) beendet, detektiert wurde; - Detektieren (S2) jeweils ausgeführter weiterer Transaktionen (T) mindestens einer weiteren Transaktionsart, die nach einer Anwendungsanforderungsnachricht (ReqT) und vor einer Anwendungsabschlussnachricht (EndT) aktiviert werden, - Ermitteln (S50) einer Anzahl von parallel ausgeführten weiteren Transaktionen (T) mindestens eines weiteren Transaktionstyps, die während der Ausführung durchgeführt werden, mittels eines weiteren Transaktionstypzählers (CT) und - Bereitstellen (S20, S60) des aktuellen Anwendungszählerwertes (Z(I)) und des mindestens einen aktuellen Transaktionstypzählerwertes (Z(T)) an eine Auswertevorrichtung (400).
  2. Verfahren nach Anspruch 1, wobei ein Empfangszeitpunkt (TS) und/oder eine Dauer (D) der detektierten Ausführung (I) der Anwendung (200) oder einer weiteren Transaktion (T) mindestens einer weiteren Transaktionsart ermittelt und bereitgestellt werden.
  3. Verfahren nach Anspruch 2, mit den weiteren Verfahrensschritten: - Ermitteln einer Steigerungsrate (S(I), S(T)) der Anzahl von parallel vorliegenden Ausführungen beziehungsweise eine Steigerungsrate der Anzahl von parallel vorliegenden weiteren Transaktionen abhängig von den parallel vorliegenden Ausführungen der Anwendung oder weiterer Transaktionen in einer vorgegebenen Zeiteinheit.
  4. Verfahren nach einem der vorhergehenden Ansprüche, mit den weiteren Verfahrensschritten: - Vergleichen des Anwendungszählerwertes (Z(I)), des Transaktionstypzählerwertes (Z(T)) und der jeweils entsprechend ermittelten Steigerungsrate (S(I), S(T)) mit einem jeweils konfigurierbaren Anwendungszählermaximalwert, einem Transaktionstypzählermaximalwert, und einem jeweiligen Steigerungsmaximalwert, und - Bereitstellen (S40) einer Meldung (M), wenn der Anwendungs zählerwert (Z(I)) den Anwendungszählermaximalwert und/oder der Transaktionstypzähler den Transaktionstypzählermaximalwert und/oder jeweils eine Steigerungsrate (S(I)) einen Steigerungsmaximalwert überschreitet.
  5. Verfahren nach Anspruch 4, wobei der Anwendungszählermaximalwert und/oder Transaktionstypzählermaximalwert und/oder der Steigerungsmaximalwert durch jeweils einen automatisch ausgeführten Lasttest an der Servervorrichtung (300) ermittelt werden.
  6. Verfahren nach einem der Ansprüche 4 oder 5, wobei der Anwendungszählermaximalwert und/oder der Transaktionstypzählermaximalwert und/oder der Steigerungsmaximalwert durch zeitlich vorangehend ausgegebene Ausführungszählerwerte und/oder Transaktionstypzählerwerte und/oder Steigerungswert ermittelt werden.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei die bereitgestellten Werte, insbesondere der aktuelle Anwendungszählerwert, der aktuelle Transaktionstypzählerwert, der Empfangszeitpunkt und/oder die Dauer mindestens einer der detektierten Ausführungen der Anwendung oder einer weiteren Transaktion an eine Auswertevorrichtung übermittelt werden.
  8. Verfahren nach Anspruch 7, wobei die bereitgestellten Werte durch Maschinelles Lernen ausgewertet werden, insbesondere eine Anomalieerkennung durchgeführt wird, und bei einer erkannten Anomalie eine Meldung bereitgestellt wird.
  9. Überwachungsvorrichtung (100) zur Überwachung der Auslastung einer Computer-implementierten Anwendung (200), die auf einer Servervorrichtung (300) ausgeführt wird, und die derart ausgebildet ist das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen, umfassend - eine erste Detektionseinheit (2), die derart ausgebildet, eine Aktivierung einer Ausführung (I) der Anwendung zu detektieren, wenn eine Anwendungsanforderungsnachricht (ReqI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) aktiviert, in der Servervorrichtung empfangen wird, und einen Abschluss der Ausführung der Anwendung zu detektieren, wenn eine Anwendungsabschlussnachricht (EndI) auf Anwendungsebene entsprechend einem OSI Referenzmodell, die die Anwendung in der Servervorrichtung (300) beendet, von der Servervorrichtung (300) ausgegeben wird, - eine erste Zählereinheit (4), die derart ausgebildet ist, eine Anzahl (Z) von parallel ausgeführten Ausführungen (I) der Anwendung zu ermitteln durch a) Inkrementieren (S11) eines Anwendungszählers (CI), wenn eine Anwendungsanforderungsnachricht detektiert wurde und b) Dekrementieren (S12) des Anwendungszählers (CI), wenn eine Anwendungsabschlussnachricht (EndI) in der Servervorrichtung (300) beendet, detektiert wurde; - eine zweite Detektionseinheit (2), die derart ausgebildet ist jeweils eine ausgeführte weitere Transaktion (T) mindestens einer weiteren Transaktionsart, die während der Ausführung durchgeführt werden, zu detektieren, - eine zweite Zählereinheit (5), die derart ausgebildet ist, eine Anzahl von parallel ausgeführten weiteren Transaktionen (T) mindestens eines weiteren Transaktionstyps, die während der Ausführung durchgeführt werden, mittels eines weiteren Transaktionstypzählers (CT) zu ermitteln; und - eine Bereitstellungseinheit, die derart ausgebildet ist, den aktuellen Anwendungszählerwertes (Z(I)) und den mindestens einen aktuellen Transaktionstypzählerwert (Z(T)) an eine Auswertevorrichtung (400) bereitzustellen.
  10. Überwachungsvorrichtung (100) nach Anspruch 9, umfassend - Überprüfungseinheit (30), die derart ausgebildet ist, den Anwendungszählerwert (Z(I)), einen Transaktionstypzählerwert (Z(T)) und eine jeweils ermittelte Steigerungsrate (S(I), S(T)) mit einem jeweils konfigurierbaren Anwendungszählermaximalwert, einem Transaktionstypzählermaximalwert, und einem jeweiligen Steigerungsmaximalwert zu vergleichen und eine Meldung (M) bereitzustellen, wenn der Anwendungszählerwert (Z(I)) den Anwendungszählermaximalwert und/oder der Transaktionstypzähler den Transaktionstypzählermaximalwert und/oder jeweils eine Steigerungsrate (S(I)) einen Steigerungsmaximalwert überschreitet.
  11. System zur Überwachung der Auslastung einer Computer-implementierten Anwendung, die auf einer Servervorrichtung ausgeführt wird, umfassend - mindestens eine Servervorrichtung (300), - mindestens eine Überwachungsvorrichtung (100) - eine Auswertevorrichtung (400), die derart ausgebildet sind das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
  12. System nach Anspruch 11, wobei die Überwachungsvorrichtung (100) getrennt von der Servervorrichtung (300) verwaltet wird.
  13. System nach Anspruch 11 oder 12, wobei die mindestens eine Überwachungsvorrichtung (100) derart ausgebildet ist, eine Registrierungsnachricht mindestens einer weiteren Anwendung, die zur Durchführung der Anwendung benötigt wird, zu empfangen und die bereitgestellten Zählerwerte der Anwendung (200), und bereitgestellte Zählerwerte von mindestens einer registrierten weiteren Anwendung (210), die zur Ausführung der Anwendung (200) benötigt wird, zu empfangen und gemeinsam auszuwerten, und eine Meldung (M) einer Auswertevorrichtung (400) bereitzustellen, wenn mindestens einer der Zählerwerte (Z(I)) einen entsprechenden Zählermaximalwert überschreitet und/oder eine Steigerungsrate einen Steigerungsmaximalwert überschreitet; und - eine Anpassungsvorrichtung (500), die derart ausgebildet ist, abhängig von einer von der Auswertevorrichtung empfangenen Meldung mindestens eine Maßnahme zur Reduzierung der Auslastung durchzuführen.
  14. System nach Anspruch 12 oder 13, wobei eine Maßnahme ein Blockieren von IP Adressen, ein Zuschalten von Servervorrichtungen, ein Zuschalten von Identifizierungsabfragen oder ein Umleiten einer Transaktionsanforderungsnachricht ist.
  15. System nach einem der Ansprüche 10 bis 14, wobei die Überwachungsvorrichtung (100) durch die zu überwachende Anwendung (200), die auf der Servervorrichtung (300) ausgeführt wird, aktiviert wird.
  16. Computerprogrammprodukt umfassend ein nicht vorübergehendes Computerlesbares Medium, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 8 durchzuführen.
DE102018218034.2A 2018-09-27 2018-10-22 Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung Withdrawn DE102018218034A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/074162 WO2020064328A1 (de) 2018-09-27 2019-09-11 Verfahren zur überwachung der auslastung einer computer-implementierten anwendung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018216606 2018-09-27
DE102018216606.4 2018-09-27

Publications (1)

Publication Number Publication Date
DE102018218034A1 true DE102018218034A1 (de) 2020-04-02

Family

ID=69781559

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018218034.2A Withdrawn DE102018218034A1 (de) 2018-09-27 2018-10-22 Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung

Country Status (2)

Country Link
DE (1) DE102018218034A1 (de)
WO (1) WO2020064328A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028467A1 (en) * 2006-01-17 2008-01-31 Chris Kommareddy Detection of Distributed Denial of Service Attacks in Autonomous System Domains
EP2739003A1 (de) * 2012-11-28 2014-06-04 Verisign, Inc. Systeme und Verfahren zur Detektion von und Reaktion auf verteilte Dienstverweigerungsangriffe (DDoS-Angriffe)
US20140259145A1 (en) * 2013-03-08 2014-09-11 Barracuda Networks, Inc. Light Weight Profiling Apparatus Distinguishes Layer 7 (HTTP) Distributed Denial of Service Attackers From Genuine Clients
EP1839160B1 (de) * 2004-12-07 2018-03-14 Cisco Technology, Inc. Schutz vor angriffen auf netzwerke und anwendungen durch inspektion der anwendungsschicht-nachrichten

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002611A1 (en) * 2000-04-17 2002-01-03 Mark Vange System and method for shifting functionality between multiple web servers
US7877482B1 (en) * 2008-04-01 2011-01-25 Google Inc. Efficient application hosting in a distributed application execution system
US9983955B1 (en) * 2014-12-22 2018-05-29 Amazon Technologies, Inc. Remote service failure monitoring and protection using throttling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1839160B1 (de) * 2004-12-07 2018-03-14 Cisco Technology, Inc. Schutz vor angriffen auf netzwerke und anwendungen durch inspektion der anwendungsschicht-nachrichten
US20080028467A1 (en) * 2006-01-17 2008-01-31 Chris Kommareddy Detection of Distributed Denial of Service Attacks in Autonomous System Domains
EP2739003A1 (de) * 2012-11-28 2014-06-04 Verisign, Inc. Systeme und Verfahren zur Detektion von und Reaktion auf verteilte Dienstverweigerungsangriffe (DDoS-Angriffe)
US20140259145A1 (en) * 2013-03-08 2014-09-11 Barracuda Networks, Inc. Light Weight Profiling Apparatus Distinguishes Layer 7 (HTTP) Distributed Denial of Service Attackers From Genuine Clients

Also Published As

Publication number Publication date
WO2020064328A1 (de) 2020-04-02

Similar Documents

Publication Publication Date Title
EP3097506B1 (de) Verfahren und system zur gewinnung und analyse von forensischen daten in einer verteilten rechnerinfrastruktur
DE60220959T2 (de) Verfahren und Vorrichtung zur Bereitstellung einer Liste von öffentlichen Schlüsseln in einem Public-Key-System
DE102014113582B4 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
DE112012002054T5 (de) Spoofing-Angriff-Abwehrverfahren unter Verwendung eines Blockierungsservers
US20160380867A1 (en) Method and System for Detecting and Identifying Assets on a Computer Network
CN110855717B (zh) 一种物联网设备防护方法、装置和系统
CN108900374A (zh) 一种应用于dpi设备的数据处理方法和装置
EP3432507B1 (de) Überwachung einer blockchain
CN111191247A (zh) 数据库安全审计系统
CN110661717A (zh) 一种限流方法、装置及电子设备
CN111343135B (zh) 一种网络安全态势检测方法
DE102016206739A1 (de) Systeme und Verfahren zum Absichern einer Remotekonfiguration
EP1287655B1 (de) Verfahren zur authentizitätssicherung von hard- und software in einem vernetzten system
DE102018130297A1 (de) Arbeitsnachweis-Konzept für ein Fahrzeug
WO2021052739A1 (de) Verfahren zur überlastabwehr in einer container-virtualisierten rechenvorrichtung
DE102018218034A1 (de) Verfahren zur Überwachung der Auslastung einer Computer-implementierten Anwendung
EP3556071B1 (de) Verfahren, vorrichtung und computerlesbares speichermedium mit instruktionen zum signieren von messwerten eines sensors
CN114205169B (zh) 网络安全防御方法、装置及系统
DE102012208290B4 (de) Netzübergangskomponente mit anfrage/antwort-zuordnung und überwachung
CN115242494A (zh) 一种控制设备接入的方法、系统、装置及介质
DE102014225418A1 (de) Verfahren und Vorrichtung zur Überwachung einer Zertifizierungsstelle
DE102016206741A1 (de) Systeme und Verfahren zum Absichern einer Remote-Konfiguration
EP3025476B1 (de) Anpassen von zugriffsregeln für einen datenaustausch zwischen einem ersten netzwerk und einem zweiten netzwerk
CN112287252A (zh) 网站域名劫持检测方法、装置、设备及存储介质
CN113726812B (zh) 一种终端运行日志审计方法及系统

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee