Die Systemanforderungen von Bloonix sind von verschiedenen Faktoren abhängig:
All diese Faktoren und noch einige mehr tragen dazu bei, dass die Anforderungen an die Hardware steigen. Sollte ein Server alleine für die Auslastung nicht mehr ausreichen, so ist es möglich, die Komponenten auf mehrere Server hinter einem Loadbalancer zu verteilen.
Natürlich ist die Empfehlung, mit den Hardwarekomponenten nicht sparsam zu sein. Beispielsweise wird der Preisunterschied von SSDs zu 15krpm SAS Platten immer geringer. Statt 4 × 15krpm Platten in einem RAID 10 einzusetzen, könnte man auch 2 SSD Platten in einem RAID 1 einsetzen. Es ist aber auch möglich, Bloonix auf einer kleinen virutellen Maschine zu betreiben, wenn Sie nur ein paar wenige Hosts und Services überwachen möchten.
Der wichtigste Faktor zur Berechnung der Hardwareanforderungen ist die Anzahl der zu überwachenden Hosts und Services, denn mit jedem Host und Service finden pro Überwachungsintervall mehrfache Lese- und Schreibaktionen auf der PostgreSQL-Datenbank und Elasticsearch statt.
1.000 Hosts * 15 Leseaktionen / 60 Sekunden Intervall
= ca. 250 Leseaktionen pro Sekunde
1.000 Hosts * 4 Schreibaktionen / 60 Sekunden Intervall
= ca. 67 Schreibaktionen pro Sekunde
10.000 Services * 5 Leseaktionen / 60 Sekunden Intervall
= ca. 833 Leseaktionen pro Sekunde
10.000 Services * 2 Schreibaktionen / 60 Sekunden Intervall
= ca. 333 Inserts/Updates pro Sekunde
Bei 1.000 Hosts mit je 10 Services sind das in Summe:
1083 Leseaktionen pro Sekunde
400 Schreibaktionen pro Sekunde
Zu den Abfragen zur Datenbank kommen die Abfragen zu Elasticsearch. Die Rechnung ist hier deutlich einfacher.
Zu beachten ist hier, dass ein zusätzlicher Schreibvorgang für jeden Service stattfindet, dessen Status sich geändert hat, zum Beispiel wenn der Status eines Service von OK zu CRITICAL wechselt.
Selbst bei mehreren tausend Hosts und Services bleibt die benötigte Festplattenkapazität für die Datenbank eher gering. Rechnen Sie mit ca. 500 MB Festplattenkapazität für beispielsweise 100 Hosts mit je 10 Services.
Statistiken und Events werden in Elasticsearch gespeichert. Je nach Aufbewahrungszeit der Statistiken und Events steigt natürlich der Bedarf an Festplattenkapazität. Dabei ist die Rechnung der Festplattenkapazität recht einfach. Rechnen Sie pro Service, den Sie überwachen möchten, pauschal 200 MB Plattenkapazität für ein Jahr. Möchten Sie also 10.000 Services überwachen und die Daten der Services für 1 Jahr aufbewahren, so sollten Sie etwa 2 TB Plattenkapazität pro Jahr einplanen.
Besonders wichtig beim Einsatz von Elasticsearch ist der zur Verfügung stehende Hauptspeicher und die Schnelligkeit der Festplatten. Auch hier möchte ich dies gerne anhand einer Beispielrechnung aufzeigen. Die Grundrechnung pro Services und einem Überwachungsintervall von 60 Sekunden ist wie folgt:
1 Service * 1440 Minuten (1 Tag) * 30 Tage (1 Monat)
= ca. 43.200 Elasticsearch Dokumente pro Monat
Angenommen, Sie möchten 1.000 Hosts mit je 10 Services überwachen:
1.000 Hosts * 10 Services * 1440 Minuten (1 Tag) * 30 Tage (1 Monat)
= 432.000.000 Dokumente pro Monat
Nun stellen Sie sich vor, Sie möchten sich über die WebGUI die Statistiken von 100 Services aus den letzten 7 Tagen anschauen. Die Anzahl an Dokumenten, die von Elasticsearch abgefragt würden, sind ca.
100 Services * 1440 Minuten (1 Tag) * 7 Tage
= 1.008.000 Dokumente
Es würden ca. 1 Million Dokumente abgefragt, komprimiert und zum Browser gesendet, um im Browser visuell dargestellt werden zu können. Damit das Auslesen der Statistiken aus Elasticsearch sehr schnell abläuft, sollten die Festplatten schnell sein und auch genügend Hauptspeicher zur Verfügung stehen, damit Elasticsearch die Datenmengen zügig verarbeiten kann.
Je nach Anzahl der Benutzer, die gleichzeitig in der WebGUI eingeloggt sind und Daten abrufen, steigen natürlich die Anzahl der Abfragen zur Datenbank und zu Elasticsearch. Genaue Angaben sind leider nicht möglich, da es natürlich auch auf das Benutzerverhalten ankommt, welche Daten gerade über die WebGUI abgerufen werden.
Die WebGUI selbst ist sehr schnell und kann auf einer Single-Core Maschine mit einem 2GHz Prozssor mehrere tausend HTTP-Abfragen pro Sekunde verarbeiten. Der Bottleneck kann also entweder nur die Datenabank oder Elasticsearch sein und auch der zur Verfügung stehende Hauptspeicher.
Beispielsetup:
Minimale Anforderungen:
4 CPUs mit min. 2GHz
8 GB Hauptspeicher
2 x 10krpm/15krpm je 600 GB Platten im RAID 1
Empfohlene Anforderungen:
8 CPUs mit min. 2GHz
16 GB Hauptspeicher
2 x 15krpm/SSDs je 600 GB Platten im RAID 1
10% PostgreSQL
50% Elasticsearch
40% System für Prozesse und Filesystemcache
Bitte beachten Sie, dass der Einsatz von Bloonix auf virtuellen Servern nur für sehr kleine Umgebungen sinnvoll ist. Wenn Sie zum Beispiel nur 10 Hosts mit je 10 Services überwachen möchten, so reicht auch eine kleine virtuelle Maschine mit 2GB RAM.
Alle Berechnungen und Angaben sind ohne Gewähr und können variieren.