Logdaten unterschiedlicher Lizenzserver-Produkte

Werbung
Seminararbeit über das Thema:
Logdaten unterschiedlicher Lizenzserver-Produkte - Entwurf eines
normalisierten Datenmodells und einer einheitlichen
Auswerte-Schnittstelle
vorgelegt von:
Robert Patrick Degen
aus Neuss
Geschrieben am Fachbereich Medizintechnik und Technomathematik der
Fachhochschule Aachen (Standort Jülich) bei
Prof. Dr. Andreas Terstegge
(2. Betreuer: Dr. Thomas Eifert)
Im Wintersemester 2011/1012
Kurzfassung
Floating-Lizenzen spielen aus wirtschaftlicher Sicht eine große Rolle in großen Unternehmen oder Organisationen deren Struktur die klassische Bindung zwischen
Rechner und Programm unattraktiv machen. Eine dynamische und damit kosteneffizientere Nutzung kommerzieller Programme entspricht der Arbeitsweise eines modernen IT Dienstleisters. Diese Arbeit beschäftigt sich mit Analyse der Nutzung
von Softwarelizenzen aus der Sicht des anbietenden Dienstleisters und den Möglichkeiten im speziellen mit Hilfe des Lizenzmanagers FLEXlm ein generelles Modell
zu entwickeln, das nach Gesichtspunkten eines proaktiven ITSM nach ITIL, dieses
unterstützt und ihm gerecht wird.
Schlagwörter: ITSM, FLEXlm, Lizenzmanager, Auswertung, Asset-Management
2
Erklärung
Ich erkläre hiermit, die vorgelegte Arbeit ohne fremde Hilfe verfasst zu haben. Ich
habe keine andere als die angegebene Literatur verwendet. Alle wörtlichen oder
gedanklichen Übernahmen sind zitiert.
Aachen, den 16. Dezember 2011.
Unterschrift
3
Inhaltsverzeichnis
Kurzfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Erklärung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Abkürzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Einleitung
8
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
FLEXlm Logfile . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
FLEXlm Instanzen / Ports . . . . . . . . . . . . . . . . . . . . . . 11
Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Datenkonsistenz . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Auswertung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Workflow Latenz . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1 Stand der Technik
1.1
1.2
1.3
15
Lizenzserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.1.1
DEBUG Mode Logfile . . . . . . . . . . . . . . . . . . . . 15
1.1.2
Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Wireshark Network Sniffer . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1
Dump-/Logfile . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.2
Rotation und Nachbearbeitung . . . . . . . . . . . . . . . 16
Defizite des Systems . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Analyse
18
2.1
Software-Recherche . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2
Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1
ITIL Anforderungen: Floating-Lizenzen . . . . . . . . . . . 18
2.2.2
Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3
Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4
2.3
2.4
Datenkonsistenz . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1
Berücksichtigung des Dienst-Zyklus . . . . . . . . . . . . . 20
2.3.2
Strategie der Korrektur . . . . . . . . . . . . . . . . . . . 21
Auswertung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1
Betriebsunterbrechungen . . . . . . . . . . . . . . . . . . . 23
2.4.2
Abrechnung (Accounting) . . . . . . . . . . . . . . . . . . 23
2.4.3
Qualitätssicherung . . . . . . . . . . . . . . . . . . . . . . 25
3 Zusammenfassung
27
3.1
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2
Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1
Erweiterung der Produktunterstützung . . . . . . . . . . . 27
3.2.2
Integration in den Batchbetrieb . . . . . . . . . . . . . . . 27
Literatur
29
Anhang
30
3.3
SQL Table Creation . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4
SQL Test-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5
Abbildungsverzeichnis
1
Floating-Lizenzen Modell (schematisch) . . . . . . . . . . . . . . .
2
Schematischer Aufbau der Datenerfassung . . . . . . . . . . . . . 12
3
Aufbau der Ziel-Architektur (schematisch) . . . . . . . . . . . . . 14
6
8
Abkürzungsverzeichnis
BSI
British Standards Institution
ITIL
IT Infrastructure Library
ITSM
IT Service Management
LM
License Manager
NTP
Network Time Protocol
RZ
Rechen- und Kommunikationszentrum der RWTH Aachen
TCP
Transmission Control Protocol
VPN
Virtual Private Network
7
Einleitung
Motivation
Das Rechen- und Kommunikationszentrum der RWTH Aachen hat sich entschieden, die bereitgestellten Dienstleitungen nach ITIL, einer ursprünglich in England
durch das BSI entwickelten und definierten Norm, umzustrukturieren [RWT08].
Würde man ITIL mit nur wenigen Worten erklären müssen, so könnte man vielleicht sagen, daß die zentrale Aufgabe von ITIL darin besteht, IT-Dienste planbar, messbar und damit optimierbar zu gestalten und zu betreiben. Das hohe Ziel
all dieser Bemühungen ist eine verbesserte Berücksichtigung der spezifischen Anforderungen, die jedes Unternehmen an einen modernen IT Dienstleister stellt.
Geschäftsprozesse im Sinne von ITIL zu unterstützen, stellt also einen wesentlichen Anteil der Arbeit der Mitarbeiter des Rechen- und Kommunikationszentrum
der RWTH Aachen dar. Diese Seminararbeit beschäftigt sich mit Aspekten der
Dienstüberwachung sowie der zugehörigen Abrechnung, Planung und Analyse der
Lizenzdienste (vgl. Abbildung 1, S. 8) für kostenpflichtige Software innerhalb der
Hochschule.
Organisation/Firma
Keine zeitgleiche
Nutzung (hier: max. 3,
Ersparnis pro Nutzer:
[Y-X]/X Lizenzkosten)
Lizenz 1
Lizenz 2
Lizenz 3
Nutzer 1 Nutzer 2 Nutzer 3
Lizenz-Manager
Nutzer 4 Nutzer 5 Nutzer 6
Netzwerk
Nutzer 7 Nutzer 8 Nutzer ...
Anzahl der Nutzer: X
Anzahl der Lizenzen: Y
X«Y
Abbildung 1: Floating-Lizenzen Modell (schematisch)
8
Über die vergangenen Jahre wurden zu diesem Zweck im Bereich der Lizenzserver1 zahlreiche Skript-Programme erzeugt, die aus den erzeugten Logdateien aller
Dienste möglichst sinnvoll bzgl. einer Weiterverarbeitung Protokolldaten extrahieren.
Für einen Softwareentwickler ist die Verbesserung eines existierenden SoftwareSystems ein alltägliches Szenario. Neben den Möglichkeiten Fehler zu korrigieren,
müssen auch Erfahrungen und Erkenntnisse umgesetzt werden. Die Machbarkeit
technischer Feinheiten spielt eine wichtige Rolle bei der Umsetzung von Verbesserungen im Bezug auf höhere Konzepte, hier am Beispiel ITIL.
1
Ein Lizenzserver ist ein Dienst, der die Verteilung von Softwarelizenzen im Netzwerk verwaltet. Netzwerklizenzen ermöglichen den Zugriff auf lizenzpflichtige Software dynamisch
zu gestalten. Meistens nutzen nur sehr weniger Benutzer gleichzeitig eine kostenpflichtige Software. Wenn eine Softwarelizenz nicht an einen speziellen Computer gebunden
ist können eine deutlich größere Zahl von Nutzern mit der gleichen Anzahl von Lizenzen zurechtkommen. Die finanzielle Ersparnis kann dann offensichtlich wieder auf alle
beteiligten Nutzer umgelegt werden.
9
Problemstellung
Das Rechen- und Kommunikationszentrum der RWTH Aachen betreibt mehr als
50 Instanzen der Lizenzsoftware FlexLM auf einem zentralen Lizenzserver. Jede
dieser Instanzen verwaltet eine lizenzpflichtige Softwarekomponente, die im Netzwerk der Hochschule (und für Angehörige der Hochschule auch extern über VPN
Dienste) genutzt werden kann.
Für die Auswertung wird zum einen das proprietäre Logfile des FLEXlm Prozesses
rotiert2 , nachbearbeitet und archiviert und desweiteren ein für den Lizenzserver im
gleichen Zeitraum speziell gefiltertes und ausgewertetets Protokoll auf Ebene des
Netzwerks mit Hilfe einer sogenannten Sniffersoftware namens Wireshark3 auf Basis einer heuristischen Funktion zu einem zusammengesetzten Logfile verarbeitet,
das im wesentlichen dem Logfile des FLEXlm entspricht, nun aber um einige Daten (wie z.B. die IP Adresse des Nutzers) erweitert ist (vgl. Abbildung 2 auf S. 12).
FLEXlm Logfile
Im Logfile des FLEXlm wird die Verteilung der zur Verfügung stehenden Floating
Lizenzen mit Hilfe von IN-, OUT- und DENY-Transaktionen protokolliert. Für ein
fiktives Softwareprodukt SW-A wäre folgender schematisch veranschaulichter Log2
Unter der Rotation von Logfiles versteht man den Vorgang kontinuierlich wachsende Dateien wie z.B. Protokolldateien in sortierte Segmente zu zerlegen, um die Dateigröße
handlich zu halten so daß auf sehr einfache Art und Weise alte Daten nach Bedarf entfernt werden können. Der Vorgang ist ein kritischer Moment der Ausführung, da der
schreibende Dienst gestoppt werden muss um während der Dateioperationen keinen Datenverlust zu erzeugen. Aus dem gleichen Grund kann auch nicht zuverlässig aus dem
aktiven Logfile gelesen werden. Manche Betriebssysteme sperren sogar den Lesezugriff
3
ganz sofern ein anderer Prozess die jeweilige Datei geöffnet hat.
Eine Netzwerk-Sniffersoftware ermöglicht ein Mitschneiden aller Datenpakete einer Netzwerkkarte ohne an die Zugangsmechanismen des Betriebssystems gebunden zu sein, wie
z.B. Sockets und Sessions des IP. Die erhobenen Daten sind u.U. sehr Umfangreich und
müssen gefiltert werden. Die Filterung der Daten kann nur eingeschränkt für den Zeitpunkt der Erfassung eingestellt werden. Aus diesem Grund schneidet man in genügend
großen Blöcken den gesamten Verkehr mit und führt anschließend eine zeitunkritische
Nachbearbeitung (Filterung) durch.
10
fileeintrag möglich:
1
# anwendung startet
2
TIMESTAMP -1 SW - A OUT ( number of licenses =7 , client = user 1@instit ut )
3
[...]
4
# anwendung verlaengert
5
# kein neuer eintrag im logfile
6
[...]
7
TIMESTAMP -2 SW - A IN ( number of licenses =7 , client = user1@ institut )
Aus verschiedenen Gründen kann es dazu kommen, daß der Rechner auf dem die
Lizenzserversoftware betrieben wird abstürzt oder aus Wartungsgründen neugestartet werden muss. Gleich welchen Falles entsteht dabei in der Historie der protokollierten Lizenzzugriffe eine Inkonsistenz, die zu fehlerhaften Schlüssen in der
weiteren Verarbeitung führen kann.
1
TIMESTAMP -1 SW - A OUT ( number of licenses =7 , client = user 1@instit ut )
2
[...]
3
# system stuerzt ab oder muss neugestartet werden
4
[...]
5
# anwendung verlaengert
6
# erneuter checkout wird markiert , software laeuft weiter
7
# wenn software regulaer beendet ist , bleibt eine anzahl von checkouts uebrig
8
TIMESTAMP -1 SW - A OUT ( number of licenses =7 , client = user 1@instit ut )
9
[...]
10
TIMESTAMP -2 SW - A IN ( number of licenses =7 , client = user1@ institut )
Es ist eine Inkonsistenz enstanden. Zählt man die OUT-Einträge, so errechnet man
zwangsweise eine falsche Zahl an genutzten Lizenzen.
FLEXlm Instanzen / Ports
Für jede Software läuft eine einzelne Instanz des FLEXlm Daemons, die wiederum exklusiv an einen TCP/UDP Port auf der Servermaschine gebunden ist. Diese
Bindung wird vom Administrator des Systems frei gewählt. Anhand der gewählten
Portnummern und dem Sniffer-Logfile (das ja die Portnummern enthält) kann eindeutig erkannt werden, zu welchem Lizenzprodukt ein Datenpaket gehört.
Die Zeitstempel von Lizenz-Logfile und Sniffer-Logfile stammen von der gleichen
11
Maschine. Anhand der Zeitstempel können die Sniffer-Pakete den jeweiligen LizenzEinträgen zugeordent werden, um reale IP Daten zu ermitteln.
Sniffer protokolliert
Netzwerkverkehr
Software: Wireshark
Pro Tag ca: 10 MB Text
Mehr als 100.000 Zeilen
Lizenzserverinstanz protokolliert
nach proprieträem Format
Software: FlexLM
Pro Tag ca: 1 MB Text
Mehr als 30.000 Zeilen
Zentrales Logfile enthält nun Informationen
kombiniert/synchronisiert und aufbereitet
Abbildung 2: Schematischer Aufbau der Datenerfassung
12
Zielsetzung
Schnittstelle
Es ist eine Schnittstelle zu entwickeln, die in der Lage ist, alle Informationen bereitzustellen, die zur weiteren Verarbeitung (Analyse) geeignet ist. Diese Schnittstelle
soll nur relevante Daten enthalten. Prinzipiell soll es möglich sein zu einem späteren
Zeitpunkt weitere Lizenz-Produkte in die Verarbeitung mit aufzunehmen (Normierung).
Neben den Möglichkeiten zur qualitativen Bewertung der Dienste sollen die Daten
der Schnittstelle außerdem dazu geeignet sein, dem Nutzer gegenüber transparent
Rechenschaft4 über die genutzten Dienste ablegen zu können.
Datenkonsistenz
Die gewonnenen Daten müssen konsistent sein. Ein Neustart des Lizenzserverprozesses beispielsweise darf zu keiner falschen Auswertung führen.
Auswertung
Die Daten der Lizenz-Nutzung sollen in einen für die Geschäftsprozesse nach ITIL
aussagekräftigen Bericht verwertet werden. Das dazu nötige Konzept ist nach folgenden Aspekten zu entwickeln:
• (A) Welcher Nutzer hat (B) wann (C) wie viele Instanzen (D) eines welchen
Produkts (E) von welchem Rechner aus (E) wie lange genutzt?
• Erkennung überflüssiger Lizenzkontingente
• Erkennung nicht ausreichender Lizenzkontingente
4
Der Hintergrund dieser Funktionalität ist in der Arbeitsweise der Lizenzsoftware begründet. Diese sieht technisch vor, daß Clients (also Lizenz-Konsumenten-Software) den
Nutzernamen des angemeldeten Benutzers sowie den eingetragenen Hostnamen mitsenden. Oft sind diese Hostnamen nicht eindeutig. Im Falle einer Rückfrage durch den
Kunden muss das System in der Lage sein diese (für den Betreiber der Lizenzserver ursprünglich irrelevante) Information zu geben um dem Kunden wiederum gemäß seiner
Infrastruktur einen verwertbaren Hinweis auf die Konsumierung geben zu können.
13
Zusätzlich sollen weitere Berichte leicht implementiert werden können.
Workflow Latenz
Die Nutzung des Sniffer-Logfiles kann nicht performant in Echtzeit ausgeführt werden. Um die Fehlerquellen5 möglichst gering zu halten genügt eine Auswertung wie
bisher im 24h Rhythmus.
Lizenzserver
Client Software
Server-Prozess
Lizenz-Log
Ethernet Sniffer
Eth-Log
Matlab, Intel-Compiler
Ergänztes Lizenzlogfile (IP...)
Report
Datenbank
Abbildung 3: Aufbau der Ziel-Architektur (schematisch)
5
Das zu erstellende Logfile basiert auf der Zusammenführung von 2 einzelnen Logfiles.
Quelle dieser Logfiles sind mit hoher Frequenz auftretende Ereignisse aus dem Netzwerk.
Je häufiger diese beiden Dateien rotiert werden, desto größer wird auch die Wahrscheinlichkeit, daß einzelne Pakete wegen der nicht unbegrenzt genau zeitlich kontrollierbaren
Verzögerung der beiden Rotationen verloren gehen, d.h. nicht mehr in den korrekten
Dateiblöcken auftauchen und sogar ganz verschwinden.
14
1 STAND DER TECHNIK
1 Stand der Technik
1.1 Lizenzserver
Die Lizenzdienste des Rechen- und Kommunikationszentrum der RWTH Aachen basieren hauptsächlich auf der Software FLEXlm der Firma Flexera Soft.
1.1.1 DEBUG Mode Logfile
Der Lizenzserver-Daemon wird im DEBUG-Modus betrieben. Auf diese Art wird
ein Logfile erzeugt, in dem Uhrzeit, exakter Produktname, Anzahl der Lizenzen,
Aktion (Nutzung, Freigabe, Verweigerung) sowie ein Zeitstempel erzeugt wird.
Auszug aus dem Logfile (Software: Abaqus):
1
[...]
2
19:49:04 ( ABAQUSLM ) OUT : " parallel " user1@client1
3
19:49:05 ( ABAQUSLM ) OUT : " abaqus " user2@client2
4
19:49:05 ( ABAQUSLM ) OUT : " explicit " user2@client2
5
19:49:05 ( ABAQUSLM ) OUT : " abaqus " user2@client2
6
19:49:05 ( ABAQUSLM ) OUT : " explicit " user2@client2
7
19:49:05 ( ABAQUSLM ) 1315936149/0/6.8 -1/0/500/12 ,22/12/ sta_par /2536/ user1 /
8
19:49:05 ( ABAQUSLM ) OUT : " abaqus " user1@client1
(8 licenses )
(5 licenses )
(5 licenses )
(5 licenses )
(5 licenses )
unknown
(12 licenses )
9
19:49:05 ( ABAQUSLM ) OUT : " standard " user1@client1
(12 licenses )
10
19:49:05 ( ABAQUSLM ) OUT : " parallel " user1@client1
(8 licenses )
11
19:49:07 ( ABAQUSLM ) IN : " standard " user1@client1
12
19:49:07 ( ABAQUSLM ) IN : " abaqus " user1@client1
13
19:51:10 ( ABAQUSLM ) DENY : " abaqus " user1@client1
14
[...]
(12 licenses )
(12 licenses )
(9 licenses )
1.1.2 Rotation
Die Logfiles des FLEXlm Daemon werde jede Nacht um 23:45h6 rotiert. Erst nach
einer Rotation können die Daten des Logfiles für den zurückliegenden Zeitraum
ohne Probleme durch den Schreibzugriff durch den Daemon verarbeitet werden.
Hieraus ergibt sich eine Verzögerung vom Erhalt der Analysedaten von maximal
24h.
6
Die Systemzeit wird über einen zentralen NTP-Server synchronisiert.
15
1.2 Wireshark Network Sniffer
1 STAND DER TECHNIK
1.2 Wireshark Network Sniffer
Jeder Lizenzserverprozess eines Produktes (wie z.B. MATLAB, Simulink, etc) nutzt
einen eigenen TCP Kanal7 . Um neben den durch das Lizenzserverprotokoll übermittelten Rechnerdaten an die reale IP Adresse des Rechners der eine Liznez konsumiert hat zu gelangen kann die Information über den Kanal dazu genutzt werden
eben diese aus dem mitgeschnittenen Netzwerkverkehr eindeutig zu extrahieren.
Für jedes Produkt wird der Kanal manuell durch den Administrator eingestellt.
Aus diesem Grund ist es leicht anhand der Portkonfiguration Rückschlüsse auf die
verwendete Software zu ziehen.
1.2.1 Dump-/Logfile
Eine Verarbeitung der Netzwerkdaten zum Zeitpunkt der Erfassung (Echtzeitverarbeitung) ist mit den eingesetzten Werkzeugen und unter Berücksichtigung der
Leistungsfähigkeit des Rechners nicht möglich. Daten des Netzwerkverkehrs werden aus diesem Grund im ersten Schritt vollständig in eine Datei geschrieben.
1.2.2 Rotation und Nachbearbeitung
Die Datei mit den Netzwerkdaten wird analog zu den von FLEXlm generierten
Logdateien rotiert. Im Anschluß analysiert eine bereits erstellte Software aus den
binären Daten die relevanten Informationen und gleicht diese Daten auf Basis einer
heuristischen Funktion mit den FLEXlm Logdaten zu einer kombinierten Logdatei
ab.
Die erzeugte Logdatei gibt nun Aufschluß über die bereits im FLEXlm Format
vorliegenden Daten und fügt zusätzlich die IP Adresse des Rechners ein, der die
Anfrage zum Lizenzdienst erzeugt hat.
7
Kanäle entsprechen einer Nummer zwischen 1 und 65536. Kommuniziert ein Computersystem über IP so kann ein Kanal nur von einer Anwendung gleichzeitig verwendet werden.
16
1.3 Defizite des Systems
1 STAND DER TECHNIK
Ein Auszug aus dieser Datei wird im folgenden dargestellt und erläutert. Die Nutzerund Rechnernamen wurden aus Gründen des Datenschutz ersetzt.
1
/ - - UNIXTIME
2
|
/ - - YYYY - MM - DD_HH - MM - SS
3
|
|
/ - - DNS - NAME
4
|
|
|
/ - - Username
5
|
|
|
|
/ - - Hostname
6
|
|
|
|
|
/ - - SW
7
|
|
|
|
|
|
8
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1:
9
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: INTEL
10
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: rational
11
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: toolworks
12
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: eds_id11
13
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: cdlmd
14
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: eds_id11
15
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: INTEL
16
1317110413:2011 -09 -27 _10 -00 -13: cli -1. inst - x . RWTH - Aachen . DE :u -1 @cli -1: rational
1.3 Defizite des Systems
Das implementierte System bietet bisher noch nicht die gewünschte Funktionalität.
Die Grundfunktionalitäten wurden hergestellt. Für jeden technischen Teilbereich
existieren Lösungen, die rudimentär über Skripte miteinander verknüpft wurden.
Eine Automatisierung Aufbereitung der bisherigen Daten zu einer korrekten Wissensbasis hat noch nicht stattgefunden.
• Die zur Auswertung und Analyse benötigten Daten liegen in Form von einzelnen Logdateien vor. Abfragen müssen mit Hilfe von Kommandozeilentools
gestellt werden und sind bei sehr spezifischen Anfragen sehr umständlich zu
generieren bzw. erfordern ein hohes Maß an Shell-Kenntnissen.
• Alle Programmabläufe sind skriptgesteuert und verteilen sich über zahlreiche Dateien. Durch die skriptgestützte Entwicklung sind nur wenige Tests
entwickelt worden, die die Integrität der Arbeitsweise absichern.
• Die durch Dienstunterbrechung (s.o.) beschriebenen Dateninkonsistenzen
machen die Auswertung über beliebige Zeiträume unmöglich.
17
2 ANALYSE
2 Analyse
2.1 Software-Recherche
Für die Software FLEXlm existieren laut [Wik11] zahlreiche Zusatzmodule zur
Echtzeitauswertung der Lizenznutzung. Mit einer Ausnahme sind all diese Produkte kostenpflichtig. Das einzige Open Source Projekt scheint nicht mehr aktiv
weiterentwickelt zu werden.
Firma/Produkt
Open-Source
Quelle
Aktiv
JTB FLEX report
nein (freeware)
[JTB11]
ja
OpenIT License Analyzer
nein
[IT11]
ja
X-Formation
nein
[XF11]
ja
in charge
nein
[Nov11]
ja
phpLicenseWatch
ja
[Sou11]
nein
Die frei zur Verfügung stehenden Werkzeuge sind nicht in der Lage denselben Grad
an Informationen zur Verfügung zu stellen wie die Erweiterung auf Basis des Sniffers, die bereits implementiert ist. Bei den restlichen Werkzeugen ist dies ebenso
der Fall. Zudem kommt hinzu daß die Lizenzmodelle eine Weiterentwicklung ausschließen.
2.2 Schnittstelle
2.2.1 ITIL Anforderungen: Floating-Lizenzen
Die Unterstützung des Geschäftsprozesses der erbrachten IT-Dienstleistung findet
unter folgenden Gesichtspunkten statt:
• Dienstqualität - Standen für einen Lizenzdienst stets genügend Lizenzen
zur Verfügung oder konnte ein Kunde eine Lizenz nicht nutzen, weil die
vorhanden Lizenzen alle gebunden waren? Diese Information ist von großer
Bedeutung für eine proaktive Strategie des Dienstleisters.
18
2.3 Datenkonsistenz
2 ANALYSE
• Kapazitätsmanagement - Zu viele nicht genutzte Lizenzen verursachen
unnötige Kosten wohingegen stets knappe Kontingente eine Schlecht Dienstverfügbarkeit verursachen können. Es ist wichtig Trends in der Nutzung zu
erkennen, um Kapazitäten so früh wie möglich anzupassen.
• Abrechnung - Die Basis-Software zur Verwaltung von Floating-Lizenzen
sieht derzeit nicht vor innerhalb der geschlossenen Organisation in der es
angewendet wird, exakt Aufschluß über die Verteilung.
2.2.2 Datenstrukturen
Für die Darstellung der Informationen werden die gewonnenen Protokolldaten immer wieder nach unterschiedlichen Gesichtspunkten aggregiert und tabellarisch
(oder grafisch) dargestellt. Eine relationale Datenbank eignet sich als Datenstruktur hervorragend um derartige Darstellungen auf einer Datenmenge zu berechnen.
Die Struktur ist gleichermaßen leicht erweiterbar wie auch jede erdenkliche Darstellung der Daten mit Hilfe der Abfragesprache SQL modelliert werden kann.
2.2.3 Modell
Attribut-Name
Attribut-Typ
Beschreibung
the time
Timestamp
Zeitpunkt der Operation
the op
VARCHAR(4)
Art der Operation: IN, OUT, DENY, RSET
sw
VARCHAR(32)
Software Beschreibung
sw detail
VARCHAR(32)
Software Beschreibung, Zusatz (Modul)
the ipv4
VARCHAR(32)
IPv4 Adresse (Abgleich: Sniffer-Logfile)
ou
VARCHAR(32)
Kunde/Organisationseinheit (Hier: IKZ)
custom user
VARCHAR(64)
Benutzername (durch Client übermittelt)
custom host
VARCHAR(64)
Rechnername (durch Client übermittelt)
2.3 Datenkonsistenz
Lizenzen, die durch einen Neustart des Serverprozesses aus dem Gedächtnis der
Verwaltung entfernt aber dennoch genutzt werden8 führen zu einer falschen Bilanz.
8
Dieser Vorgang ist durchaus legitim, da bei einer temporären Nicht-Verfügbarkeit des Lizenzservers ohne ein derart tolerantes Laufzeitverhalten bereits gestartetete Programme
abstürzen könnten.
19
2.3 Datenkonsistenz
2 ANALYSE
Das Ziel ist es derart ungültige Informationen aus dem Datenbestand herauszufiltern bzw. die Qualität der Heuristik zur Einschätzung der Lizenznutzung deutlich
zu verbessern indem ungültige Transaktionen so gut wie möglich gelöscht werden.
2.3.1 Berücksichtigung des Dienst-Zyklus
Ungültige Transaktionen entstehen, wenn der Lizenz-Server-Daemon während des
Betriebes unterbrochen oder angehalten wird. Eine Eliminierung der Unterbrechungen ist nicht möglich wenn man mögliche Ursachen (z.B. programmabstürze, wichtige Aktualisierungen, Stromausfall, Hardwaredefekte) in Betracht zieht.
Die einzige verlässliche Größe in diesem Zusammenhang wird durch den Zeitstempel im Logfile geliefert, der den Start des Lizenz-Server-Daemon signalisiert (siehe
folgendes Listing).
1
[...]
2
19:48:43 ( lmgrd ) Starting vendor daemons ...
3
[...]
Diese Information ist der einzige zur Verfügung stehende Indikator für ein Zurücksetzen der Lizenzzählung, um eine falsche Zählung zu vermeiden. Bei der Überführung
der Protokolldaten in die Datenbank müssen die betreffenden Datensätze eliminiert
bzw. ergänzt werden. Zu diesem Zweck werden die Ereignisse eines beschriebene
neustarts des Lizenz-Server-Daemon mit Hilfe einer neuen Transaktion9 mit der
der Datenbank abgespeichert. Diese Transaktion (RSET) impliziert für die weitere Verarbeitung der Logdaten also, daß die Lizenzzähler zurückgesetzt werden
müssen.
Exemplarisch (siehe vorheriges Beispiel unter der Annahme eines Datums vom
31.01.2011) lautet dann der zugehöriger INSERT Befehl für die Datenbank:
1
INSERT INTO lic_log
9
bisher nur IN, OUT und DENY
20
2.3 Datenkonsistenz
2
3
2 ANALYSE
( the_time , the_op , sw , sw_detail , the_ipv4 , ou , custom_user , custom_host )
VALUES
4
( TIMESTAMP ’2011 -01 -31 19:48:43 ’ , ’ RSET ’ , NULL , NULL , NULL , NULL , NULL , NULL
)
5
;
Im Folgenden wird analysiert, wie ein solcher RESET weiterverarbeitet werden
muss um eine korrekte Zählweise der genutzten Lizenz zu ermöglichen. Das Ziel
ist in der Datenbank zu einem definierten Zeitpunkt nur noch korrekte (gemäß den
zugrundeliegenden Rahmenbedingungen10 ) IN-OUT Tupel zu speichern. Wichtig
dabei ist, daß während der Verarbeitung der Daten dieser Zustand nicht immer
gewährleistet ist. Auswertungen auf den Daten dürfen also nicht zum Zeitpunkt
der Verarbeitung neuer Daten erfolgen sondern müssen zeitlich synchronisiert, also
später ausgeführt werden um zu korrekten Ergebnissen zu führen.
2.3.2 Strategie der Korrektur
Das Ziel der Korrektur ist die Gewährleistung einer korrekten Anzahl an IN/OUTPaaren zu einem Benutzer-Rechner-Software Tupel in einem Dienst-Interval 11 existiert. An dieser Stelle können verschiedene Situationen eintreten, die unterschiedliche Lösungsstrategien implizieren.
Fall 1:
Anforderungout → Server/Crash/Restart → Rückgabe während Downtime
In diesem Fall fehlen für (Benutzer × Rechner/IP × Software) IN Operationen.
Lösung:
→ Finde Datensätze vor Crash-Zeitpunkt mit fehlenden OUT Folgesätzen
→ Erzeuge Datensätze mit OUT Operationen für alle gefundenen verwaisten Einträge (Zeitstempel Crash-Zeitpunkt)
10
11
Dazu zählt z.B. die durch einen Ausfall entstehende Ungenauigkeit, daß beispielsweise ein
DENY während einer Nichtverfügbarkeit gar nicht erfasst werden kann (u.v.m.).
Ein Dienst-Interval ist das zeitliche Interval zwischen 2 Zeitpunkten der Nichtverfügbarkeit
des Lizenzservers.
21
2.3 Datenkonsistenz
2 ANALYSE
Fall 2:
Anforderungout → Server/Crash/Restart → Verlängerungout → Rückgabein
In diesem Fall werden bei der Verlängerung erneut OUT Operationen registriert.
Die IN Operationen vor dem Crash-Zeitpunkt fehlen auch.
Lösung:
→ Lösung aus Fall 1 deckt auch hier alles ab
Fall 3:
Anforderungout → Server/Crash/Restart → Rückgabein
In diesem Fall kann keine Rückgabe protokolliert werden. Es fehlen also die zugehörigen IN Operationen.
Lösung:
→ Lösung aus Fall 1 deckt auch hier alles ab
Die Betrachtung der Zeitintervalle der Verfügbarkeitsphasen (anstatt einer Gesamtbetrachtung) führt zu einer geringeneren Anzahl von notwendigen Korrekturen an
den Datensätzen (vgl. Fall 1-3 ohne Berücksichtigung der zeitlichen Intervalle).
22
2.4 Auswertung
2 ANALYSE
2.4 Auswertung
2.4.1 Betriebsunterbrechungen
Für eine Überwachung der Dienstqualität ist eine Übersicht über alle Unterbrechungen der Lizenzdienste besonders interessant. Alle derartigen Unterbrechungen
können an hand der Neustarts des Lizenz-Server-Daemon erkannt werden.
Das SQL Kommando für eine direkte Auflistung aller Zeitpunkte zu dem der LizenzServer-Daemon neugestartet wurde lautet für den Monat Januar 2011 :
1
SELECT
2
3
the_time " Ausfall "
FROM
4
5
lic_log
WHERE
6
the_op = ’ RSET ’
7
AND
8
the_time
9
BETWEEN
10
TIMESTAMP ’2011 -01 -01 00:00:00 ’
11
AND
12
TIMESTAMP ’2011 -02 -01 00:00:00 ’
13
ORDER BY " Ausfall "
14
;
2.4.2 Abrechnung (Accounting)
Die Abrechnung von Lizenznutzung kann nach sehr verschiedenen Gesichtspunkten
entwickelt werden. Interessant für eine Kostenverteilung am Rechen- und Kommunikationszentrum der RWTH Aachen ist die Nutzung von Lizenzen über einen
Zeitraum pro Institut der Hochschule. Eines der denkbar einfachsten Diagramme stellt zu diesem Zweck ein Kuchendiagramm mit der prozentualen Aufteilung
der Gesamtnutzung einer Lizenz für alle beteiligten Institute dar. Anhand dieser
Information kann überprüft werden, ob die Finanzierung durch die jewieligen Einrichtungen prinzipiell richtig dimensioniert waren oder angepaßt werden müssen
um der Realität zu entsprechen.
Sei T1 , T2 zwei aufeinanderfolgende Zeitpunkte, die einen Dienstzyklus beschrei-
23
2.4 Auswertung
2 ANALYSE
ben. IKZ sei die Institutskennziffer, die den Nutzer eindeutig einer Einrichtung
der Hochschule zuordnet (Datenbank: Spalte ou) und SWNAME der name des eingesetzten Softwareprodukts. Die folgende Abfrage ergibt für das Zeitinterval alle
Lizenzoperationen, die zur Aufsummierung der Nutzung notwendig sind (Platzhalter in <...>):
1
SELECT
2
the_op ,
3
4
the_time
FROM
5
6
lic_log
WHERE
7
the_op IN ( ’ IN ’ , ’OUT ’)
8
AND
9
ou = < IKZ >
10
AND
11
sw = < SWNAME >
12
AND
13
the_time
14
BETWEEN
15
<T1 >
16
AND
17
<T2 >
18
ORDER BY the_time
19
;
Beispielhaft könnte eine derart konkrete Abfrage folgendes Ergebnis liefern:
1
+ - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - -+
2
| the_op | the_time
3
+ - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - -+
4
| OUT
| 2011 -12 -14 08:00:01 |
5
| IN
| 2011 -12 -14 08:35:00 |
6
| OUT
| 2011 -12 -14 08:36:00 |
7
| OUT
| 2011 -12 -14 08:36:00 |
8
| IN
| 2011 -12 -14 08:38:00 |
9
| IN
| 2011 -12 -14 08:39:00 |
|
10
+ - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - -+
11
8 rows in set (0.00 sec )
Um die Lizenznutzung zu bestimmen müssen nun die Lizenz-Zeiten gemäß der
Anzahl über die Zeit aufsummiert werden.
24
2.4 Auswertung
Zeitpunkt
Lizenzen
2 ANALYSE
P
t
08:00:00 0
0
08:00:01 1
0
08:35:00 0
(1 · 34m59s)
08:36:00 2
(1 · 34m59s)
08:38:00 1
(1 · 34m59s) + (2 · 2m)
08:39:00 0
(1 · 34m59s) + (2 · 2m) + (1 · 1m)
Die auf diese Weise ermittelten Zeiten können zur Gesamtzeit einer Lizenz in Relation für den jeweiligen Kunden gesetzt werden.
Beispiel:
Kunde/IKZ
Nutzung (abs.)
Nutzung (rel.)
022000
128:00:00
50%
022001
64:00:00
25%
022002
64:00:00
25%
2.4.3 Qualitätssicherung
Sei T1 , T2 zwei aufeinanderfolgende Zeitpunkte, die einen Dienstzyklus beschreiben. Die folgende Abfrage ergibt für das Zeitinterval eine Auflisting der Anzahl
fehlgeschlagener Lizenzanfragen pro Kunde und Software.
1
SELECT
2
ou ,
3
sw ,
4
5
6
7
count (*)
FROM
lic_log
WHERE
8
the_op = ’ DENY ’
9
AND
10
the_time
11
BETWEEN
12
13
14
<T1 >
AND
<T2 >
25
2.4 Auswertung
15
2 ANALYSE
GROUP BY
16
ou ,
17
sw
18
ORDER BY the_time
19
;
26
3 ZUSAMMENFASSUNG
3 Zusammenfassung
3.1 Fazit
Überwachung und Analyse von Dienstleistungen stellen einen wichtigen Schritt
in Richtung proaktives IT Service Management dar. Am Beispiel der Lizenzdienste
des Rechen- und Kommunikationszentrum der RWTH Aachen hat sich gezeigt, daß
durch Erweiterungen bestehender Infrastruktur bzgl. ihrer Transparenz ein Schritt
in die richtige Richtung unternommen wurde.
Der relativ geringe Entwicklungsaufwand im Bereich der Analyse der Lizenzdienste
führt dazu die Qualität einer bisher als Blackbox zu betrachtende zentralen Dienstleistung messbar zu gestalten.
3.2 Ausblick
Die Analyse der Nutzung von Softwarelizenzen am Rechen- und Kommunikationszentrum der RWTH Aachen steht sicherlich noch am Anfang einer möglichen
Entwicklung. Durch die Einführung eines ITSM nach ITIL ergeben sich zahlreiche
Stellen, an denen Informationen aus dem Betrieb benötigt werden, für die es bisher
noch keine Quellen gibt.
3.2.1 Erweiterung der Produktunterstützung
Natürlich ist es wünschenswert, daß alle eingesetzten Lizenz-Manager-Produkte
des Betriebes in der Lage sind Daten in die Analyse einzuliefern. Zu diesem Zweck
wurde die Schnittstelle (siehe Abschnitt 2.2.3, S. 19) entwickelt und definiert.
3.2.2 Integration in den Batchbetrieb
Das Rechen- und Kommunikationszentrum der RWTH Aachen betreibt einen Hochleistungsrechner bestehend aus mehreren tausend Einzelsystemen, die miteinander
vernetzt sind. Die Programmsteuerung auf diesen Systemen läuft zentral organi-
27
3.2 Ausblick
3 ZUSAMMENFASSUNG
siert über ein sogenanntes Batchsystem12 . An dieser Stelle ist es äußerst interessant
heuristisch bestimmte Informationen über die zeitliche Verfügbarkeit von Lizenzen
automatisiert in den Planungsprozess der Ablaufsteuerung miteinfließen zu lassen.
Ein geplanter Programmstart, der durch eine nicht verfügbare Lizenz abgebrochen
wird ist einerseits aus der Sicht eines wartenden Nutzers ärgerlich, aber auch die
Strategie des planenden Batch-Controllers eine unberechenbare Größe, die den Ablauf erheblich stören kann.
12
Ein Batchsystem dient dazu die Programmstarts auf vielen Rechnern automatisch, also
ohne Interaktion des Benutzers, zu steuern. Nutzer fordern für den Lauf eines Programmes sogenannte Resourcen an (Arbeitsspeicher, Anzahl der Rechenkerne, etc.) so daß
der Batch-Controller eine effiziente Verteilung auf alle vorhanden Resourcen vornehmen
kann, die aus Sicht des Benutzers nicht mehr zu überblicken wäre. Ziel ist es die vorhandenen Resourcen möglichst effizient zu nutzen. Oftmals ist eine effiziente Nutzung nicht
intuitiv bestimmbar.
28
Literatur
Literatur
Literatur
[IT11]
Open IT. License Analyzer Produkt-Homepage. Webseite, 2011. http:
//www.openit.com/products/licenseanalyzer.html.
[JTB11] JTB. JTB FLEX Report Produkt-Homepage. Webseite, 2011. http:
//www.jtbworld.com/jtbflexreport/jtbflexreportlt.htm.
[Nov11]
NovaTec. in charge Produkt-Homepage. Webseite, 2011. http://www.
incharge.eu/.
[RWT08] ITIL Projektgruppe RWTH. IT Servicemanagement am Rechen- und
Kommunikationszentrum der RWTH Aachen. Webseite, 2008. http:
//www.rz.rwth-aachen.de/go/id/tdu/.
[Sou11]
Sourceforge. PHP License Watch Produkt-Homepage. Webseite, 2011.
http://phplicensewatch.sourceforge.net/.
[Wik11]
Enzoklopedia Wikipedia. FLEXlm Lizenzmanager. Webseite, 2011.
http://de.wikipedia.org/wiki/FLEXlm.
[XF11]
X-Formation. X-Formation Produkt-Homepage. Webseite, 2011. http:
//www.x-formation.com/.
29
Anhang
30
3.3 SQL Table Creation
1
DROP TABLE IF EXISTS lic_log ;
2
CREATE TABLE lic_log (
3
the_time TIMESTAMP ,
4
the_op VARCHAR (4) ,
5
sw VARCHAR (128) ,
6
sw_detail VARCHAR (128) ,
7
the_ipv4 VARCHAR (15) ,
8
ou VARCHAR (128) ,
9
custom_user VARCHAR (128) ,
10
11
custom_host VARCHAR (128)
);
3.4 SQL Test-Daten
1
-- Testdaten
2
3
DELETE FROM lic_log ;
4
5
INSERT INTO lic_log
6
7
( the_time , the_op , sw , sw_detail , the_ipv4 , ou , custom_user , custom_host )
VALUES
8
( TIMESTAMP ’2011 -12 -14 08:00:01 ’ , ’OUT ’ , ’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
9
( TIMESTAMP ’2011 -12 -14 08:35:00 ’ , ’IN ’ ,
’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
10
( TIMESTAMP ’2011 -12 -14 08:36:00 ’ , ’OUT ’ , ’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
11
( TIMESTAMP ’2011 -12 -14 08:36:00 ’ , ’OUT ’ , ’SW -A ’ , ’ COMPONENT -A ’ ,
12
( TIMESTAMP ’2011 -12 -14 08:39:00 ’ , ’ RSET ’ , NULL ,
13
( TIMESTAMP ’2011 -12 -14 12:40:00 ’ , ’OUT ’ , ’SW -A ’ , ’ COMPONENT -A ’ ,
14
( TIMESTAMP ’2011 -12 -14 12:42:02 ’ , ’IN ’ ,
15
( TIMESTAMP ’2011 -12 -14 16:00:00 ’ , ’ RSET ’ , NULL ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
NULL ,
NULL ,
NULL ,
NULL ,
NULL ) ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
NULL ,
16
NULL ,
NULL ,
NULL ,
NULL ) ,
( TIMESTAMP ’2011 -12 -15 08:40:00 ’ , ’OUT ’ , ’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
17
( TIMESTAMP ’2011 -12 -15 08:40:02 ’ , ’IN ’ ,
’SW -A ’ , ’ COMPONENT -A ’ ,
’137.226.0.0 ’ , ’022000 ’ , ’ test - user ’ , ’ test - cluster ’) ,
18
( TIMESTAMP ’2011 -01 -08 06:00:00 ’ , ’ RSET ’ , NULL ,
NULL ,
19
NULL ,
NULL )
;
20
21
SELECT * FROM lic_log ;
31
NULL ,
NULL ,
22
23
SELECT * FROM lic_log WHERE the_op = ’ RSET ’ AND the_time >= TIMESTAMP
’2011 -12 -14 00:00:00 ’ AND the_time < TIMESTAMP ’2011 -12 -15 00:00:00 ’;
24
25
SELECT * FROM lic_log WHERE the_time >= TIMESTAMP ’2011 -12 -14 00:00:00 ’ AND
the_time < TIMESTAMP ’2011 -12 -15 00:00:00 ’;
32
Herunterladen