One health-check a day, keeps the disaster away: Wie Atlassian-Health-Checks Kosten und Ausfälle reduzieren

Vorsorgeuntersuchungen beim Arzt gehören sicher nicht zu den beliebtesten Freizeitaktivitäten. Jedoch sind sie überaus wichtig für unsere Gesundheit und stellen sicher, dass Krankheiten früh erkannt und behandelt werden können. Je früher eine Krankheit entdeckt wird, umso besser sind die Heilungschancen. Nicht anders verhält es sich in der IT mit jedwedem Software-Tool. Die Atlassian-Produkte Jira und Confluence stellen hier keine Ausnahme dar. Sie benötigen ausreichend administrative Pflege und Routine-Checks, sogenannte Health-Checks, um zuverlässig zu funktionieren.

Health-Checks zur Früherkennung von Problemen

Gerade wenn Instanzen wachsen und neue User und Plug-ins dazu kommen, schleichen sich oftmals kleinere Probleme und Defekte ein, die man auf den ersten Blick nicht wahrnimmt, oder – schlimmer – ignoriert. Erst wenn diese Probleme immer häufiger auftreten und immer mehr User davon betroffen sind, nehmen sich Jira- und Confluence-Administratoren dieser an. Oftmals ist der Schaden dann schon entstanden.

Damit es zu keinen Ausfällen kommt, müssen wichtige störempfindliche Faktoren überwacht werden. Dazu zählen Lizenzlaufzeiten, Software-Upgrades gegen Sicherheitslücken und Bugs, Performance-Schwankungen durch die Nutzung von Plug-ins, das Benutzer-Management und vieles mehr. Aber auch auf der technischen Seite muss der Administrator die Nutzung des verfügbaren Speicherplatzes und Arbeitsspeichers im Blick behalten und bei Bedarf frühzeitig neue Kapazitäten bereitstellen

Klare Regeln und Strukturen sind die halbe Miete

Ob in Jira oder Confluence, über die Zeit entstehen viele Daten, die in Jira-Projekten und Confluence-Bereichen in Form von Vorgängen, Seiten und Anhängen abgelegt werden. Wenn es keine klare Struktur und Vorgaben bezüglich der Berechtigungen und der Erstellung von beispielsweise Vorgängen und Workflows in Projekten gibt, entstehen unnötige Dopplungen und sicherheitskritische Lücken, die im Nachhinein nur mit viel administrativen Aufwand entdeckt und wieder behoben werden können. Je mehr Privilegien den einzelnen Usern oder Gruppen in den Instanzen gegeben werden, um die Administratoren zu entlasten, umso größer ist das Risiko einer ausufernden Erstellung von redundanten Daten und falschen Konfigurationen. Dementsprechend sollten Prozesse eingeführt werden, die die Erstellung von neuen Vorgängen einheitlich regeln und der Kreis der Erstellenden möglichst klein gehalten wird.

Durchführung von prozess-seitigen Health-Checks

Viele wichtige Health-Checks können von Jira- und Confluence-Administratoren im Browser ohne die Hilfe von System-Administratoren durchgeführt werden. Das ist insbesondere für die Unternehmen eine gute Nachricht, die sich gegen eine On-premise-Bereitstellungsoption wie Server oder Data-Center und für eine Cloud-Instanz entschieden haben. Für Cloud-Nutzer fällt die Administration auf der technischen Seite weg, da die Instanzen von Atlassian überwiegend in AWS-Rechenzentren gehostet und administriert werden. Die technischen Health-Checks für System-Administratoren von On-premise-Instanzen werden im Anschluss an die prozess-seitigen Health-Checks behandelt.

Generell kann man die prozess-seitigen Health-Checks grob in folgende Kategorien einteilen:

  • Prozess-Konsolidierung
  • Zugang und Sicherheit
  • Plug-ins
  • Lizenzen
  • Upgrade-Bereitschaft

Prozess-Konsolidierung

Gerade wenn Jira-Instanzen bereits seit einigen Jahren aktiv im Unternehmen eingesetzt werden, entstehen vermehrt Duplikate und inaktive Vorgänge, Felder, Arbeitsabläufe und Masken. In diesem Fall ist es sinnvoll, eine Prozess-Konsolidierung durchzuführen. Dabei werden Duplikate, inaktive Vorgänge etc. in der Instanz gesucht und aufgelistet. Boards, Filter und Dashboards werden außerdem nach empfohlenen Vorgehensweisen (Best practices) untersucht. Bei größeren Instanzen (mehrere hundert bis tausend User) kann dieser Vorgang einmalig einige Stunden in Anspruch nehmen. Die Instanz erfährt damit eine Verjüngungskur und wird von veralteten, redundanten Vorgängen “entschlackt”. Die Instanz lässt sich dadurch besser verwalten und verfolgt wieder einen ganzheitlichen Ansatz, der langfristig das Management erleichtert und Zeit einspart.

Zugang und Sicherheit

Noch wichtiger als eine Prozess-Konsolidierung ist die Überwachung der Zugänge zu und Berechtigungen innerhalb der Instanzen. Dieser Health-Check sollte bestmöglich monatlich durchgeführt werden – speziell bei einer hohen User-Fluktuation. Hierbei werden beispielsweise die Berechtigungsmasken der Projekte nach Best-Practice-Ansätzen untersucht und aufgelistet, ob die Sichtbarkeit der Vorgänge für die vorgesehenen Benutzergruppen valide ist.

Bei Nutzung eines externen Benutzerverzeichnisses über LDAP (Lightweight Directory Access Protocol) muss außerdem untersucht werden, ob und welche Benutzer im lokalen Benutzerverzeichnis vorhanden sind.

Ein lokaler Administrator ist wichtig, um den Zugriff auf die Atlassian-Applikation wiederherzustellen, wenn die zentrale Authentifizierung über die Active Directory ausfällt. Es bietet aber auch einen Mechanismus, um als nicht verfolgbarer Benutzer Zugriff auf diese Applikationen zu erhalten. Wenn diese Mitarbeiter aus dem Unternehmen ausscheiden, werden ihre Konten oftmals vergessen. Darüber hinaus werden Kennwörter selten geändert, sodass eine Sicherheitslücke entstehen kann. Ein ehemaliger Mitarbeiter kann dies leicht ausnutzen und sich parallel der Erkennung von Eindringlingen entziehen.

Daher ist es wichtig, regelmäßig zu überprüfen, welche Benutzer inaktiv sind und eventuell der Zugriff auf die Instanz entzogen werden sollte.

Wenn anonymer Zugriff auf die Instanzen gewährt wird, sollte zusätzlich überwacht werden, ob nur die absolut nötigsten Berechtigungen für diese User festgelegt wurden.

Des Weiteren sollten die Überwachungsprotokolle (Audit logs) nach verdächtigen Aktivitäten, wie zum Beispiel der großangelegten Löschung von Daten, durchforstet, die Administrator-Berechtigungen nur auf die absolut notwendigsten Benutzer beschränkt und nach Sicherheitslücken wie Cross-Site-Scripting in der aktuellen Jira- oder Confluence-Version gesucht werden.

Plug-ins

Wie der Name schon erahnen lässt, fokussiert sich der Plug-in Health-Check auf die installierten Add-ons von Atlassian und Drittanbietern, die über den Atlassian Marketplace bezogen werden können. Zunächst wird überprüft, ob für die installierten Add-ons neue Updates verfügbar sind und mit der aktuellen Jira- und Confluence-Version kompatibel sind.

Des Weiteren muss darauf geachtet werden, dass die Lizenzen der einzelnen Plug-ins zeitig erneuert werden. Wenn noch keine neuen kommerziellen Lizenzen freigegeben und bezahlt wurden, können übergangsweise Testlizenzen eingefügt werden. Ohne aktive Lizenz können keine Updates durchgeführt werden. Es sollte auch beleuchtet werden, welche Plug-ins aktiv genutzt werden und welche entfernt oder deaktiviert werden können. Je nach Art und Größe des Plug-ins kann dies positive Effekte auf die generelle Performance der Instanz haben. Manche Add-ons haben ferner überschneidende Funktionalitäten und die Lizenzkosten können bei Fokussierung auf eines der Add-ons deutlich reduziert werden. Zu guter Letzt bergen Add-ons aber nicht nur Vorteile, sondern auch Sicherheitsrisiken. Die CVEs (Common Vulnerabilities and Exposures), also die häufigsten Sicherheitslücken und Gefährdungen, die in Zusammenhang mit den installierten Add-ons existieren, müssen untersucht und gegebenenfalls Maßnahmen getroffen werden.

Lizenzen

Nicht nur die Plug-ins benötigen valide Lizenzen, sondern Jira und Confluence selbst auch. Es muss überprüft werden, wie lange die Lizenzen noch gültig sind und wie viele User in der Instanz lizenziert sind. Sind mehr als 80% der User-tier belegt, sollte über verschiedene Maßnahmen nachgedacht werden. Entweder über die Deaktivierung von inaktiven User-Accounts, oder über die Erweiterung der aktuellen User-tier auf die nächsthöhere Stufe. Dies verhindert, dass bei Überschreitung des Benutzerlimits die Instanz in den schreibgeschützten Modus wechselt und die User nur noch die Inhalte sehen, aber nichts mehr bearbeiten können.

Auch der EoL (End of Lifecycle) der aktuellen Jira und Confluence Versionen muss überwacht werden. Atlassian unterstützt LTS-Versionen (Long Term Support) für zwei Jahre, nachdem die erste größere Iteration dieser Version veröffentlicht wurde. Nach diesen zwei Jahren gibt es keine Sicherheits- und Bug-Fixes mehr für diese Versionen. Daher sollte einige Monate vor Ablauf der Versionen über ein Upgrade auf die nächsthöhere LTS-Version nachgedacht werden.

Upgrade-Bereitschaft

Als reiner Routine-Check oder als Vorbereitung auf ein geplantes Upgrade der Jira- oder Confluence-Version, empfiehlt es sich, einen Upgrade-Bereitschafts-Health-Check durchzuführen. Dabei werden im Front-end Informationen über die Lizenzen und die Nutzungsstatistik der Instanz gesammelt. Des Weiteren wird im Admin-Panel geschaut, welche Datenbank-Versionen, Betriebssystem und Java-Version genutzt wird. Zudem werden die Integrationen von externen Benutzerverzeichnissen, konfigurierten Mail-Servern und Webhooks dokumentiert.

Darüber hinaus sollten im Update-Check unter der App-Verwaltung die Add-ons auf Kompatibilität mit der anvisierten neuen Version von Jira und Confluence geprüft werden. Je nach Empfehlung des Tools müssen die Add-ons vor dem Upgrade oder erst nach dem Upgrade aktualisiert werden, damit es zu möglichst wenigen Problemen während des Upgrades kommt. Ähnlich wie beim Health-Check “Zugang und Sicherheit” sollte abschließend die anvisierte, neue Version auf Sicherheitslücken, sogenannte CVEs durchleuchtet werden. Dieser Health-Check hilft einen guten Überblick über die Ist-Situation zu bekommen und sich dementsprechend auf das Upgrade vorzubereiten. Wenn die Instanz schon länger nicht mehr aktualisiert wurde, könnten Änderungen an der Datenbank und der Java-Version nötig sein, um die Kompatibilität mit der neuen Version zu gewährleisten.

Durchführung von technischen Health-Checks

Dieser Teil ist lediglich für Unternehmen interessant, die on-premise Bereitstellungsoptionen wie Server und Data-Center für ihre Atlassian Tools nutzen. Für Cloud-Nutzer wird die Administration der Architektur, in der Jira und Confluence installiert sind, von Atlassian übernommen.

Die technischen Health-Checks kann man in folgende Kategorien einteilen:

  • Performance
  • Log-Daten-Fehlerbehebung

Zur Durchführung braucht man Berechtigungen als Jira- oder Confluence-Administrator und Zugang zum Back-end als System-Administrator.

Performance

Der Performance-Health-Check ist eine sehr gute Art und Weise, den aktuellen Zustand der Instanz festzustellen und wenn nötig, gezielte Verbesserungen vorzunehmen.

Einige wichtige Informationen kann man bereits ohne Hilfe des System-Administrators über das Admin-Panel in den System-Informationen abrufen. Dazu zählt unter anderem die aktuelle Nutzung und Allokation von JVM (Java Virtual Machine) Memory aus der JVM-Statistik. Ist die Nutzung dieser über einen längeren Zeitraum unverändert höher als 80%, sollte man eine Erhöhung des allokierten Arbeitsspeichers in Erwägung ziehen, um Einbrüche der Performance zu vermeiden. Die meisten Informationen müssen jedoch über den System-Administrator auf Server-Ebene zusammengetragen werden. Dieser sollte unter anderem überprüfen, wie die aktuelle Speicherplatznutzung ist. Besonders Anhänge und Log-Daten können dazu beitragen, dass der Speicherplatz knapp werden kann. Gerade während des Troubleshootings von Problemen werden bestimmte Log-Daten auf DEBUG gestellt, was zu einem Schwall an detaillierten Logs führt. Wenn das DEBUG Logging nicht rechtzeitig wieder ausgeschaltet wird, kann der vorhandene Speicherplatz komplett durch die Logs aufgebraucht werden. Daher sollte gerade bei größeren Instanzen mit mehreren Admins der Speicherplatz regelmäßig überprüft werden.

Des Weiteren sollte im Back-end ein Test der durchschnittlichen Datenträgerzugriffsgeschwindigkeit für Read/Write, Close und Delete Aktionen durchgeführt werden. Dies kann bei niedrigen Geschwindigkeiten zu Performance-Einbußen und längeren Ladezeiten bei der Ausführung von Aktionen führen. Hierfür gibt es von Atlassian Tools, die den Test durchführen können.

Ein weiterer wichtiger Punkt für den Performance-Health-Check ist das Heap-Size Monitoring. Es ist notwendig, den Heap für das Gleichgewicht von Anwendungslast und Garbage Collection (GC)-Latenz angemessen zu dimensionieren. Ein zu kleiner Heap führt dazu, dass die GC zu häufig ausgeführt wird und möglicherweise nicht mit der Speicherrückgewinnung Schritt halten kann, was zu einem Absturz der Anwendung führt. Ein zu großer Heap führt dazu, dass sich über einen langen Zeitraum eine große Menge an “Daten-Müll” ansammelt, was wiederum dazu führt, dass der GC-Prozess die Anwendung für einen längeren Zeitraum unterbricht.

Der System-Administrator sollte außerdem überprüfen, ob Swap-Memory auf dem Host verwendet wird. Der Host, auf dem Jira oder Confluence laufen, sollte über genügend physischen Arbeitsspeicher für einen ausreichend großen Kernel-Puffer/Cache verfügen, um auch die JVM-Heap- und Nicht-Heap-Seiten vollständig ohne Verwendung von Swap zu betreiben. Inaktive Seiten werden in den Swap-Bereich auf der Festplatte verschoben, sodass diese Seiten vom Kernel genutzt werden können, um den Puffer/Cache zu vergrößern und die Leistung auf dem Host zu verbessern. Aufgrund des Speichermodells, das Java verwendet, ist das meiste, was im Heap inaktiv ist, „Daten-Müll“. Wenn der Java GC-Prozess den Heap durchsucht, kommt es zu schwerwiegenden Auswirkungen, da der Kernel versucht, den Puffer/Cache zu leeren und die nun aktiven Seiten aus dem Swap zurückzubringen. Dies kann zu einer extremen Leistungsverschlechterung führen und möglicherweise die Instanz zum Hängen bringen.

Log-Daten-Fehlerbehebung

Zu guter Letzt können direkt über das Admin-Panel unter “Fehlersuche- und Supporttools > Protokollanalyse” Auflistungen von Warnungen und Fehlern aus den Log-Daten wie zum Beispiel “atlassian-jira.log” oder “catalina.out” erstellt werden. Fehler, die mehr als 50 Auflistungen in der Log-Datei haben, sollten von den System-Administratoren priorisiert und nach Lösungen für die auftretenden Fehler untersucht werden. Oftmals korrelieren die auftretenden Fehler mit Performance-Problemen in der Instanz. Besonders nach FATAL, SEVERE und ERROR- Fehler-Logs sollte Ausschau gehalten und deren Ursache untersucht werden. Auftretende Warnungen sollten auch beleuchtet werden, jedoch sind diese normalerweise harmlos. Je nach Fehlermeldung kann online nach den passenden Hilfestellungen in den Atlassian-Dokumentationen gesucht und das Problem im Front- oder Back-end behoben werden.

Erstellung von Reports und Priorisierung von To-Dos

Nach Durchführung eines Health-Checks sollten die untersuchten Daten und Ergebnisse dokumentiert und ein Report erstellt werden. In diesem Report sollten neben den Ergebnissen auch die Empfehlung für das weitere Vorgehen zur Performance- und Effizienz-Steigerung des durchführenden Atlassian-Admins stehen. Der Report dient der Entscheidungsfindung für die Entscheidungsträger. Dieser sollte daher die wichtigsten Erkenntnisse und Empfehlungen aus den Health-Checks priorisiert und hierarchisch darstellen. Außerdem sollte die ungefähre Dauer zur Umsetzung der Empfehlungen genannt werden, um ein besseres Gefühl über den Aufwand zu erhalten.

Kostenvorteile und höhere Uptime durch Atlassian Health-Checks

Zusammenfassend kann man sagen, dass es viele Fehlerquellen gibt, die die Performance der eingesetzten Atlassian-Tools beeinträchtigen und verschlechtern können. Die Health-Checks helfen dabei, Licht ins Dunkle zu bringen und gezielt zu ermitteln, in welchem Bereich Verbesserungspotenzial besteht. Je nach Art und Aufwand des Health-Checks sollte man diese am besten monatlich durchführen. Bei Prozess-Konsolidierungs-Health-Checks macht es jedoch Sinn ein paar Monate vergehen zu lassen, bis wieder überprüft wird, was sich seit dem letzten Report verändert hat, da diese sehr zeitaufwendig sein können.

Bei kontinuierlicher Durchführung der Health-Checks kann man die Kosten und die Downtime der Instanzen signifikant verringern. Speziell durch die Verbesserung der Performance und Ermittlung von Fehlerquellen kann das Risiko von ungeplanten Wartungsintervallen deutlich minimiert werden. Durch die höhere Uptime der Instanzen wird die User-Produktivität erhöht und die Ausfallkosten gesenkt.

Gleichzeitig kann die Sicherheit der Instanzen beträchtlich gesteigert und wirtschaftliche Schäden durch Datenlecks reduziert werden.

Insbesondere wenn Jira und Confluence zu den unternehmenskritischen Anwendungen zählen, ist das Kosten-Nutzen-Verhältnis zwischen dem Aufwand der Health-Checks und den Einsparungen und der erhöhten Sicherheit besonders groß. Aus diesem Grund kann man die Durchführung von Atlassian Health-Checks kleinen und großen Unternehmen gleichermaßen empfehlen.