Es gibt eine ganze Reihe von Systemen für das Monitorring von Hard und Software. Diese haben verschiedene Schwerpunkte, wie Überwachung der Verfügbarkeit, Langzeitüberwachung von SLAs, Trendanalyse und Kapazitätsplanung. Dazu kommt dann das Thema Alerting, oder auch einfach nur eine konsolidierte Sicht auf die Systeme (Dashboard). Auch bei der Diagnose von Leistungseinbrüchen zu bestimmten Zeiten kann eine solche Datenerfassung sinnvoll sein.
Bei der Erstellung von Enterprise Anwendungen sollte man also auf jeden Fall entsprechende Diagnose Schnittstellen anbieten. Leider gibt es sehr viel verschiedene Verfahren um die Werte zu exportieren. Bei Java Anwendungen hat sich die Instrumentierung mittels JMX Management Beans allerdings durchgesetzt.
Das sammeln von Leistungsdaten soll die Anwendung nicht ausbremsen oder gefährden. D.h. die Daten die vorgehalten werden sollten einfach zu sammeln sein, kaum verarbeitet werden müssen und einfach im Speicher gehalten werden können. Dies schließt z.b. historische Datenreihen oder aufwändige statistische Transformationen aus.
Bei der Erstellung von Enterprise Anwendungen sollte man also auf jeden Fall entsprechende Diagnose Schnittstellen anbieten. Leider gibt es sehr viel verschiedene Verfahren um die Werte zu exportieren. Bei Java Anwendungen hat sich die Instrumentierung mittels JMX Management Beans allerdings durchgesetzt.
Das sammeln von Leistungsdaten soll die Anwendung nicht ausbremsen oder gefährden. D.h. die Daten die vorgehalten werden sollten einfach zu sammeln sein, kaum verarbeitet werden müssen und einfach im Speicher gehalten werden können. Dies schließt z.b. historische Datenreihen oder aufwändige statistische Transformationen aus.
Damit diese einfachen (komprimierten) Snapshot Informationen dennoch aussagekräftig sind bietet es sich an bestimmte Designmuster einzuhalten. Diese stellen sicher dass die verschiedensten Arten von monitorring Anwendungen maximalen Nutzen aus den Daten ziehen können:
Komponentenstatus
Der einfachste Fall eines überwachbaren Attributs ist der aktuelle Zustand einer Komponente. Entspricht der Zustand nicht einem vorgegebenen Wert, so kann ein Alarm ausgelöst werden. Ebenso kann man den Zustand regelmäßig abfragen, und durch dieses Sampling dann die Verfügbarkeit über die Zeit plotten. Das Management Bean muss dazu nicht die Verfügbarkeit selbst berechnen (es genügt also wenn Servicezeiten und Abhängigkeiten nur in der Monitorring Anwendung definiert sind).
Damit der aktuelle Zustand aber nicht nur für eine Management Anwendung nutzbar ist, die regelmäßig den Zustand abfragt, bietet es sich an weitere Attribute mitzuführen. Dazu gehört der Zeitpunkt und der Grund des letzten Statuswechsels. Damit kann ein Administrator mit kurzem Blick sehen, ob er näher nachforschen muss (wenn der Status sich seit Tagen nicht geändert hat und dieser "ONLINE" ist gibt es keinen Grund nachzusehen). Eine schnelle Fehleranalyse wird durch ein Kommentarfeld vereinfacht, das den Grund für die letzte Statusänderung beschreibt. z.B. "State set to OFFLINE by user ADMIN", "Component automatically set to ONLINE at System start", "Component blocked because of too many errors. Last Error=Connection refused".
Um einen Alarm zu definieren, der bei einem instabilen System (oft Status Wechsel) ausgelöst wird ist es zudem sinnvoll einen Counter zu benutzen. Counter bestehen mindestens aus einem numerischen Attribut, das bei jedem Statuswechsel hochgezählt wird. Sinnvollerweise gibt es noch ein Attribut für den Counter, der das letzte Reset angibt. Damit kann eine pollende Anwendung sowohl auf absolute Schwellwerte (mehr als 5 Status Änderungen) als auch auf relative (mehr als 5 Status Änderungen pro Stunde) reagieren.
Die Anzahl der Status-Änderungen zu überwachen (statt bei jeder einzelnen Änderungen zu alarmieren) reduziert die Anzahl der Alarme. Das ist wichtig damit diese nicht ignoriert werden. Wenn die Komponente nur von sekundärer Bedeutung ist, oder deren Statuswechsel im Betrieb oft vorkommen sollte man nur eine Obergrenze setzen um "flatterndes" System zu erkennen. Dies wird z.b. sehr oft bei Netzwerkinterfaces eingesetzt.
Die Überwachung des Komponentenstatus liefert somit taktische Zustandsinformationen genauso wie Trendanalysen (nehmen die Ausfälle zu) und Statistiken zur Einhaltung von SLAs.
Kapazitätsauslastung
Ein weiterer typischer Bereich der überwacht werden will sind limitierte Ressourcen (Kanäle. parallele Connections, Threads). Die aktuelle Auslastung (und der konfigurierten Maximalwert) können regelmäßig überwacht werden, und so ein Diagramm der Auslastung gezeichnet werden. Um auch eine Momentaufnahme (ohne Historie) wertvoll für den Beobachter zu machen sollten aber noch weitere Werte angegeben werden. Durchschnittliche Auslastung und Trends sind nichts was das Managementbean selbst überwachen sollte, aber Höchst- und Niedrigstpegel sind einfache Werte die gespeichert werden können. Je nach wie die Komponente sich verhält wenn der Maximalwert erreicht wird kann auch noch gezählt werden wie viele Anfragen deswegen abgelehnt wurden, und ebenfalls kann gezählt werden wie viele Anfragen überhaupt gestellt (und bewilligt wurden). Aus diesen Werten läßt sich dann nämlich noch zusätzlich Durchsatzzahlen ablesen. Wird eine Anfrage nicht abgelehnt sondern verzögert bearbeitet, so ist es ebenfalls sinnvoll die Wartezeit zu akkumulieren. Solche Summen geben schnell Aufschluss darüber wo Performance verloren geht.
Die Statistiken (HighWaterMark, Anfragen, Abgelehnte Anfragen) können zurückgesetzt werden, der Zeitpunkt ab dem die Werte ermittelt werden wird im Timestamp festgehalten. Das erlaubt Netzwerk Management Systeme Profile der Anfragen zu erstellen (durch regelmäßiges Sampling), auch wenn der Administrator die Counter manuell resettet.
Pools
Eine besondere Form von limitierten Ressourcen sind Pools. Diese können neben den oben genannten Attributen noch weitere statistische Werte haben wie Mindestgröße, Anzahl der (wegen Fehler) zerstörten Ressourcen und Anzahl der frei gegebenen Ressourcen (weil diese Idle waren).
Durchsatz
Bei einem System das Anfragen verarbeitet kann es Sinnvoll sein ein Profil der Anfragen zu erstellen (durchschnittliche Verarbeitungszeiten, Anfragegrößen, Häufung). All diese Werte können nur schwer von Snapshot Countern ermittelt werden. Dazu müssen die Datenreihen in Logfiles oder Tabellen ausgewertet werden. Allerdings ist es durchaus möglich mit dem bereits vorgeführten Counter Pattern eine grobe Systemauslastung zu plotten: einen Counter für die Anzahl der Anfragen und einen Counter für die Anzahl der verarbeiteten Bytes (oder KBs). Natürlich auch hier wieder eine reset Funktion und ein Zeitstempel seit wann der Counter erfasst wird. Diese Counter sind z.b. im Netzwerk Bereich sehr beliebt, die Anzahl der Pakete und die Anzahl der Bytes die über ein Interface transferiert wurden. Diese Counter sind auch meistens so, dass sie nach wenigen Tagen ihre Bereichsgrenze erreichen, in dem Fall muss das Netzwerk Management System einfach mit einem Wrap-Around zurechtkommen, und oft genug den aktuellen Counter Wert abfragen (ist der aktuelle Counterwert kleiner als der zuletzt gelesene so geht das NMS davon aus, dass es genau einen Wrap Around gab).
Fazit
Die (JMX) Statistiken sollten aus Performance und Stabilitätsgründen einfach sein. Da die Komplexität der gewünschten statistischen Auswertungen vorher nicht bekannt ist macht es Sinn diese komplett dem überwachenden Management System zu überlassen (Trends, Durchschnitte, Plots, Verfügbarkeiten). Ein Minimum an Attributen erlaubt aber auch dem gelegentlichen Beobachter aus den Snapshots Informationen zu extrahieren. Dazu gehören Zeitstempel und Counter.
Komponentenstatus
Der einfachste Fall eines überwachbaren Attributs ist der aktuelle Zustand einer Komponente. Entspricht der Zustand nicht einem vorgegebenen Wert, so kann ein Alarm ausgelöst werden. Ebenso kann man den Zustand regelmäßig abfragen, und durch dieses Sampling dann die Verfügbarkeit über die Zeit plotten. Das Management Bean muss dazu nicht die Verfügbarkeit selbst berechnen (es genügt also wenn Servicezeiten und Abhängigkeiten nur in der Monitorring Anwendung definiert sind).
Damit der aktuelle Zustand aber nicht nur für eine Management Anwendung nutzbar ist, die regelmäßig den Zustand abfragt, bietet es sich an weitere Attribute mitzuführen. Dazu gehört der Zeitpunkt und der Grund des letzten Statuswechsels. Damit kann ein Administrator mit kurzem Blick sehen, ob er näher nachforschen muss (wenn der Status sich seit Tagen nicht geändert hat und dieser "ONLINE" ist gibt es keinen Grund nachzusehen). Eine schnelle Fehleranalyse wird durch ein Kommentarfeld vereinfacht, das den Grund für die letzte Statusänderung beschreibt. z.B. "State set to OFFLINE by user ADMIN", "Component automatically set to ONLINE at System start", "Component blocked because of too many errors. Last Error=Connection refused".
Um einen Alarm zu definieren, der bei einem instabilen System (oft Status Wechsel) ausgelöst wird ist es zudem sinnvoll einen Counter zu benutzen. Counter bestehen mindestens aus einem numerischen Attribut, das bei jedem Statuswechsel hochgezählt wird. Sinnvollerweise gibt es noch ein Attribut für den Counter, der das letzte Reset angibt. Damit kann eine pollende Anwendung sowohl auf absolute Schwellwerte (mehr als 5 Status Änderungen) als auch auf relative (mehr als 5 Status Änderungen pro Stunde) reagieren.
| Attribut | Datentyp | Werte, Bemerkung |
|---|---|---|
| state | String | ONLINE, OFFLINE, BLOCKED, STARTING, STOPPING, ... |
| stateChangeReason | String | Brought automatically Online on System start |
| stateChangeTime | TIMESTAMP | CCYY-MM-DD hh:mm:ss.ccc |
| stateStatsSince | TIMESTAMP | CCYY-MM-DD hh:mm:ss.ccc |
| stateStatsChangeCounter | long | 1 |
Die Anzahl der Status-Änderungen zu überwachen (statt bei jeder einzelnen Änderungen zu alarmieren) reduziert die Anzahl der Alarme. Das ist wichtig damit diese nicht ignoriert werden. Wenn die Komponente nur von sekundärer Bedeutung ist, oder deren Statuswechsel im Betrieb oft vorkommen sollte man nur eine Obergrenze setzen um "flatterndes" System zu erkennen. Dies wird z.b. sehr oft bei Netzwerkinterfaces eingesetzt.
Die Überwachung des Komponentenstatus liefert somit taktische Zustandsinformationen genauso wie Trendanalysen (nehmen die Ausfälle zu) und Statistiken zur Einhaltung von SLAs.
Kapazitätsauslastung
Ein weiterer typischer Bereich der überwacht werden will sind limitierte Ressourcen (Kanäle. parallele Connections, Threads). Die aktuelle Auslastung (und der konfigurierten Maximalwert) können regelmäßig überwacht werden, und so ein Diagramm der Auslastung gezeichnet werden. Um auch eine Momentaufnahme (ohne Historie) wertvoll für den Beobachter zu machen sollten aber noch weitere Werte angegeben werden. Durchschnittliche Auslastung und Trends sind nichts was das Managementbean selbst überwachen sollte, aber Höchst- und Niedrigstpegel sind einfache Werte die gespeichert werden können. Je nach wie die Komponente sich verhält wenn der Maximalwert erreicht wird kann auch noch gezählt werden wie viele Anfragen deswegen abgelehnt wurden, und ebenfalls kann gezählt werden wie viele Anfragen überhaupt gestellt (und bewilligt wurden). Aus diesen Werten läßt sich dann nämlich noch zusätzlich Durchsatzzahlen ablesen. Wird eine Anfrage nicht abgelehnt sondern verzögert bearbeitet, so ist es ebenfalls sinnvoll die Wartezeit zu akkumulieren. Solche Summen geben schnell Aufschluss darüber wo Performance verloren geht.
| Attribut | Datentyp | Werte, Bemerkung |
|---|---|---|
| channelsUsed | long | 1 |
| channelsCapacity | long | 10 |
| channelsStatsSince | TIMESTAMP | 2005-01-01 00:00:00 |
| channelsStatsHigh | long | 5 |
| channelsStatsRequests | long | 10000 |
| channelsStatsDenied | long | 0 |
Die Statistiken (HighWaterMark, Anfragen, Abgelehnte Anfragen) können zurückgesetzt werden, der Zeitpunkt ab dem die Werte ermittelt werden wird im Timestamp festgehalten. Das erlaubt Netzwerk Management Systeme Profile der Anfragen zu erstellen (durch regelmäßiges Sampling), auch wenn der Administrator die Counter manuell resettet.
Pools
Eine besondere Form von limitierten Ressourcen sind Pools. Diese können neben den oben genannten Attributen noch weitere statistische Werte haben wie Mindestgröße, Anzahl der (wegen Fehler) zerstörten Ressourcen und Anzahl der frei gegebenen Ressourcen (weil diese Idle waren).
Durchsatz
Bei einem System das Anfragen verarbeitet kann es Sinnvoll sein ein Profil der Anfragen zu erstellen (durchschnittliche Verarbeitungszeiten, Anfragegrößen, Häufung). All diese Werte können nur schwer von Snapshot Countern ermittelt werden. Dazu müssen die Datenreihen in Logfiles oder Tabellen ausgewertet werden. Allerdings ist es durchaus möglich mit dem bereits vorgeführten Counter Pattern eine grobe Systemauslastung zu plotten: einen Counter für die Anzahl der Anfragen und einen Counter für die Anzahl der verarbeiteten Bytes (oder KBs). Natürlich auch hier wieder eine reset Funktion und ein Zeitstempel seit wann der Counter erfasst wird. Diese Counter sind z.b. im Netzwerk Bereich sehr beliebt, die Anzahl der Pakete und die Anzahl der Bytes die über ein Interface transferiert wurden. Diese Counter sind auch meistens so, dass sie nach wenigen Tagen ihre Bereichsgrenze erreichen, in dem Fall muss das Netzwerk Management System einfach mit einem Wrap-Around zurechtkommen, und oft genug den aktuellen Counter Wert abfragen (ist der aktuelle Counterwert kleiner als der zuletzt gelesene so geht das NMS davon aus, dass es genau einen Wrap Around gab).
Fazit
Die (JMX) Statistiken sollten aus Performance und Stabilitätsgründen einfach sein. Da die Komplexität der gewünschten statistischen Auswertungen vorher nicht bekannt ist macht es Sinn diese komplett dem überwachenden Management System zu überlassen (Trends, Durchschnitte, Plots, Verfügbarkeiten). Ein Minimum an Attributen erlaubt aber auch dem gelegentlichen Beobachter aus den Snapshots Informationen zu extrahieren. Dazu gehören Zeitstempel und Counter.
Geschrieben von Bernd Eckenfels
in Infrastruktur, Java Programming
| Kommentare (0)
| Trackbacks (0)
Trackbacks
Trackback für spezifische URI dieses Eintrags
Keine Trackbacks
Layout by Ricky Wilson | Serendipity Template by Carl Galloway | Login
Impressum
Bernd Eckenfels
Mörscher Str. 8
76185 Karlsruhe
bernd-08(a)eckenfels.net
Read More
Suche
Kategorien
Verlinkung
Eingehende Links
- www.yacy.net [26]
- www.google.de [3]
- www.google.de [3]
- www.google.ch [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- development.webde.local [2]
- www.google.de [2]
- www.google.de [2]
- www.google.de [2]
- www.eckes.org [1]
- www.eckes.org [1]
- www.google.de [1]
Umfrage
Inhouse Coding?
Archive
Archive
Kommentare
kde4.de zu Firmenstrukturen
2008-12-30 11:40
2008-12-16 21:30
Bernd K. zu IT-Gipfel
2008-12-13 23:18
Bernd Eckenfels zu Bewerbung
2008-11-19 00:38
Hans Dampf zu Bewerbung
2008-11-16 11:41
Bernd Eckenfels zu Bewerbung
2008-11-12 20:58
Dana Stoll zu Bewerbung
2008-11-12 13:39
Balu zu Gmail Features
2008-11-11 09:33
Blog abonnieren
Blogsphere
Letzten Monat...
Mo, 01.12.2008 Java Heapdumps und IBM
Die IBM JVM unterscheidet sich in einigen Aspekten deutlich von der Sun JVM. Im Bereich Betrieb gibt es eine ganze Reihe von Features die im IBM Java Diagnostics Guide (5.0, 6.0) zusammengefasst sind. Einen Bereich - den Java Heapdump - möchte ich hier mal näher beleuchten:
Die IBM JVM kennt den klassischen Java Heap Dump, also einen Abzug der Java Objekte im Speicher. Diese Heap Dumps gibt es in verschiedenen Formaten. IBM unterstützt eine Textvariante und das sogenannten Portable Heap Dump Format, eingeschaltet mit -Xdump:heap. Problem ist, dass es nur von IBM Analysetools ausgewertet werden kann. Einer der besten freien Heap Dump Betrachtern ist das von der SAP gestiftete Projekt Eclipse MAT. Im Sun Umfeld sind diese Heap Dumps im HPROF Binary Format. Das Memory Analyser Tool kann deswegen Dumps von Sun, SAP und HP VM lesen. Gerade hat aber IBM ein Eclipse Pluging bereitgestellt, den IBM DTFJ Adapter. Dieses Plugin der den MAT um Import Möglichkeiten erweitert kann aber das PHD Format nicht verarbeiten.
Die Java spezifischen Heap Dumps haben ein Vorbild: die Speicherabzüge (Core Dumps) der Betriebsysteme. Core Files oder Dr.Watson Logfiles werden angelegt wenn eine Anwendung eine kritische Ausnahme verursacht (z.B. Zugriffsschutzfehler). Im Falle der IBM VM kann man solche Core Dumps aber ebenfalls für die Analyse von Java Heaps verwenden. Die von IBM genannten System Dumps werden mit der -Xdump:system option bei der VM eingeschaltet.
Wenn ein Core Dump stattfindet (entweder bei OutOfMemeoryErrors, bei Signalen, einem echten JVM Crash oder bei frei definierbaren Events) so wird dieser im System spezifischen Format in ein File geschrieben. IBM liefert ein Tool mit das sich jextract nennt (und im JRE Unterverzeichnis des SDK zu finden ist). Man muss dabei die jextract Version direkt aus dem verwendeten JRE nehmem (insbesondere auch auf dem Rechner auf dem der Coredump erzeugt wurde). Dies packt den aufbereiteten Core Dump zusammen mit systemspezifischen Details (z.B. Kopien der Symbole in den Libraries) in ein ZIP File.
Dieses bearbeitete ZIP File kann direkt in den MAT (mit IBM Update) importiert werden. Meiner Erfahrung nach klappt dies nur, wenn jextract keine Warnung oder Fehler gemeldet hat. Der Ansatz auf dem Produktivsystem den Dump vorzuverarbeiten finde ich ganz geschickt, denn nicht immer hat der Entwickler Zugriff auf ein System mit vergleichbarer Kapazität. Übrigens kann dieses ZIP auch von dem IBM Diagnose Tool Framework for Java verarbeitet werden, so kann man Analyseprogramme die den Heap durchsuchen auch direkt in Java schreiben und auf dem Produktivserver ausführen.
Fr, 21.11.2008 IT-Gipfel
Im Netzpolitik.org Blog gibt es die Rohfassung eines Kommentars von Markus Beckedahl zum IT-Gipfel, der auch in der TAZ erschienen ist.
Im Offiziellen IT-Gipfelblog betrieben durch das HPI Potsdamm gibt es einige Video Interviews. Die ständige Einrichtung soll auch zwischen den (geschlossenen) Gipfeln für einen offenen Diskurs sorgen.
Die Anzahl der Twitter Follower zeigt aber anschaulich, dass die Veranstaltung nicht wirklich akzeptiert wurde in der Community. Vermutlich wegen der doch sehr elitären Einladungsveranstaltung.
Mi, 19.11.2008 Amazon S3 nun auch als CDN (Cloudfront)
Schon bisher haben Firmen die Amazon S3 Storage Cloud für die Auslieferung von Bildern und Downloads genutzt. Allerdings hatte S3 im vergleich zu den anderen kommerziellen Content Delivery/Distribution Networks einen Performance Nachteil: wenn man ein CDN in die Web Site einbindet, so erhofft man sich Performance Vorteile insbesondere im Bereich Latenz. Das bedingt Caches die in die Nähe der User repliziert werden.
Amazon hat reagiert, mit der Public Beta zu Cloudfront kann man jetzt eine solche automatische Replikation und globales (DNS) load balancing aktivieren. Preise bewegen sich zwischen 17 und 22 USD cent je GB (je nach Abrufort). Dazu kommen noch 1,2-1,3 cent pro 10.000 GET Requests und die normalen S3 Gebühren für Storage und der Replikation des Content zu den Caches. Dieses einfach Preismodell könnte den Anbietern wie Akamai ziemlich nahe gehen - zumindest solange es um statischen Content geht.
Die folgenden 14 Standorte bietet Amazon für die Verteilung an: United States (Ashburn, VA; Dallas/Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO); Europe (Amsterdam; Dublin; Frankfurt; London), Asia (Hong Kong; Tokyo).
Bekannte Einschränkungen (laut RightScale blog): kein HTTPS, keine detaillierten Usage Reports, kein Streaming, nur Public S3 Content und kein Fine-Tuning der Caches möglich.
Zum WeiterlesenWerner Vogels' Ankündigung (Amazon CTO).Jeff Barr's Ankündgung auf dem AWS Blog
So, 16.11.2008 Security Checklisten (Einfacher durch SCAP)
Das Hardening von Rechnern besteht typischerweise aus einer Abarbeitung von Checklisten. Ebenso gibt es jede Menge verbindlicher Standards und Security Profile, die eine gewisse Konfiguration von Rechnern voraussetzen. In der Vergangenheit waren diese Arbeiten immer mit handgestrickten Scripten oder kommerziellen Produkten verbunden.
Dank der Amerikanischen Cyber Terror Angst werden aber durch diverse Behörden und Regierungsnahe Stellen immer wieder sehr nützliche Innovationen vorangetrieben. Einiges läuft dort inzwischen unter dem Information Security Automation Program:
OVAL ist eine XML Sprache zur Beschreibung von Platform Checks. Mit einem OVAL Interpreter können diese ausgeführt werden, und die entsprechenden Reports helfen somit bei der Systemadministration. Neben der OVAL Language gibt es auch das OVAL Repository das eine Reihe von Prüfungen (Vulnerabilities, Patches, Inventory) frei anbietet. Neben der Referenzimplementierung des OVAL Interpreters werden auch noch weitere Open Source Projekte entsprechende Tools anbieten. So zum Beispiel OpenVAS 2.0 Beta.
Neben OVAL das auf die Systemtechnische Seite von Security Empfehlungen eingeht gibt es noch das XCCDF (The Extensible Configuration Checklist Description) Format. Schwerpunkt hier ist es die ganzen Punkte einer Checkliste formalisiert darzustellen. Unterstützt werden dabei sowohl Profile (Subsets von Controls) als auch die Integration von automatisierten Checks (z.B. mittels OVAL).
In dem Umfeld gibt es eine ganze Reihe Protokollen:CVE - Die öffentliche Software Schwachstellen DatenbankCCE - Configuration ItemsCPE - PlatformenCME - MalwareCWE - Software Weakness undCAPEC - AngriffsmusterBesonders CVE ist dabei sehr weit verbreitet, da es die Unzahl vor Hersteller und Distributoren spezifische Codes vereinheitlicht hat. Diese Notwendigkeit ist insbesondere im Linux Umfeld entstanden, da jeder Distribution ihr eigenes Süppchen gekocht hat. Aber auch die Vereinheitlichung der anderen Dimensionen der Klassifizierung von Schwachstellen macht das Leben eines Systemadministrators oder Security Officers einfacher.
Di, 11.11.2008 Bewerbung
Immer mal wieder erreichen mich seltsame Blindbewerbungen. Ab und zu frage ich sogar nach, woher denn die Annahme stammt, ich würde Stellen anbieten. Bisher habe ich noch nie eine Reaktion erhalten. Deswegen nehme ich mir die Freiheit das Anschreiben einer solchen Blindbewerbung hier zur Unterhaltung wiederzugeben. Zum besseren Verständnis habe ich meine Gedanken eingefügt :)
Sehr geehrte Damen und Herren,
ich bewerbe mich bei Ihnen als Java/J2EE-Entwickler. Nach jahrelangem Studium [ohne Abschluss] mit Schwerpunkten Künstliche Intelligenz und Computergrafik und mit breit angelegter Informatik-Bildung, habe ich mich entschieden, meinen Schwerpunkt einer angehenden Arbeitstätigkeit im Java-Umfeld zu suchen.
Ich bin qualifiziert, die von Ihnen [nicht] angebotene Tätigkeit auszuüben, da ich bereits während meines Studiums Erfahrungen mit der Konzeptionierung und Realisierung von Software-Projekten, in Gruppen mit jeweils mehreren Personen [Ah, da hat doch Tatsächlich jemand die Seminare und Übungen besucht] gemacht habe. [Ich habe sonst keinerlei Praxiserfahrung]
Während des Studiums habe ich immer wieder mit Java programmiert, zumeist Applets [entsprechend Umfanreich waren diese Gruppenprojekte]. Bis vor kurzem befand ich mich in einer Java-Weiterbildungsmaßnahme [denn ich muss trotz Studium mich vom Arbeitsamt aushalten lassen], um die ich mich selbst seit langem bemüht habe [in der Zeit hätte ich sonst arbeiten müssen], da zum einen in Stellenangeboten frequentiert nach Java-Programmierern nachgefragt wurde, andererseits Java eine mir leicht zur Hand gehende Programmiersprache in Erinnerung geblieben war. [Ist zwar schon Jahre her, aber wenn es sonst keine Jobs gibt...]
Ich freue mich, wenn Sie mich zu einem Vorstellungsgespräch einladen würden. Für Rückfragen - auch per E-Mail - stehe ich Ihnen gern auch kurzfristig zur Verfügung.
Mit freundlichen Grüßen
Name der Redaktion bekannt
Top Referers
www.google.de (13)
blogs.seekport.de (10)
www.google.com (5)
www.google.ch (3)
search.live.com (2)
www.keywordspy.com (2)
eckenfels.net (1)
www.google.at (1)
blogs.seekport.de (10)
www.google.com (5)
www.google.ch (3)
search.live.com (2)
www.keywordspy.com (2)
eckenfels.net (1)
www.google.at (1)
