Logs und Metriken sind wie Superdetektive für den NetScaler ADC (auch bekannt als Citrix NetScaler). Sie helfen Admins, die täglichen IT-Rätsel zu lösen. Aber, oje, es ist ein hartes Stück Brot, diese Daten lokal zu knacken. Sie drehen sich so schnell wie ein Karussell oder verstecken sich in einem Labyrinth von Logfiles.
Aber hey, hier kommt die Rettung! Warum nicht einfach die Logs an ein Logmanagement und die Metriken an eine Zeitreihendatenbank (auch TSD oder Time Series Database genannt) senden? Einfach peasy! Wenn das schon läuft, knipst man am NetScaler ADC den Syslog-Schalter um und schwupps, gehen die Logs zum Logmanagement. Aber die Metriken? Nicht so schnell!
Für diesen kleinen Trick gibt’s den NetScaler Observability Exporter. Ein magisches Tool, das in einem Container haust und Prometheus mit Metriken füttert.
Und die Transactionlogs?
Die wandern zu Elasticsearch, Splunk, Kafka oder Zipkin. Voilà!
Genau darüber geht’s in dieser Blogserie!
Wir werden von Grund auf alles aufbauen, um am Ende mit den NetScaler ADC Logs und Metriken zu jonglieren. Und hey, wir werden uns auch mit Monitoring und Alarmierung befassen, denn nur mit den üblichen Verdächtigen wie SCOM, CheckMK und Nagios deckt man heutzutage kein Umfängliches Monitoring und Alarming mehr ab.
Das ganze Setup? Am Ende landen wir bei Docker und einem Linux-Host. Aber hey, ihr könnt es am Schluss auf jedem Betriebssystem betreiben, solange es Docker und Docker-Compose verträgt. Los geht’s!
Unser Host rockt mit:
Betriebssystem: Ubuntu 22.04 LTS x64
RAM: 16 GB
vCPUs: 4
Festplattenplatz: 30GiB
Also, das Betriebssystem ist meine persönliche Präferenz – aber ihr könnt ruhig eins wählen, dass euch besser gefällt und Docker und Docker-Compose unterstützt. Die anderen Specs hängen davon ab, wie viel Datenkram ihr habt. Da müsst ihr mal rumprobieren. Ich würde das Setup oben empfehlen, aber mit mindestens 500 GB Festplattenplatz, damit eure Daten nicht schon nach zwei Tagen davon flitzen.
Los geht’s mit ein paar lustigen Schritten!
Erstmal geben wir dem System einen kleinen Frischekick mit sudo apt update && sudo apt upgrade -y
und schnappen uns dann ein paar Tools mit sudo apt install vim curl openssl pwgen
. Jetzt wird’s Docker-Zeit! Für ein professionelles Setup solltet ihr den offiziellen Docker-Guide folgen (https://docs.docker.com/engine/install/ ), aber da unser Server nur zum Spielen ist, wählen wir den schnellen Weg über das Script von https://get.docker.com. Einfach das Script mit curl -fsSL https://get.docker.com -o install-docker.sh
holen und mit sudo sh install-docker.sh
ausführen – zack, Docker ist da!
Wir machen das Ganze noch schicker mit Docker-Compose: sudo apt install docker-compose -y
. Und für den besten Einsatz empfehlen wir, den Swap-Speicher zu deaktivieren mit sudo swapoff -a
. Und hey, für den Elastic Stack (Spoiler!) brauchen wir noch etwas: Setzt den VM Max Map Count mit sudo sysctl -w vm.max_map_count=262144
. Aber Achtung, das macht das Setting nicht dauerhaft! Um es zu behalten, ab in die Sysctl.conf mit VIM: sudo vim /etc/sysctl.conf
und als erste Zeile eintragen: vm.max_map_count=262144
.
Für unsere kleinen Abschlussaufgaben nehmen wir einen lässigen Ansatz.
Also, was brauchen wir noch? Zwei Winzigkeiten! Wir müssen nur einen Platz für unsere Docker-Compose- und Konfigurationsdateien finden, sowie ein schickes Docker-Netzwerk. Aber hey, wir wollen keine Romane für die Namen, oder? Deshalb taufen wir sie beide auf den Namen LuMAS (LuMAS steht für Log und Metrik Analytics Server).
Den Ordner für unsere Docker-Compose- und Konfigurationsdateien parken wir im /srv-Ordner mit dem befehl sudo mkdir /srv/lumas
. Und für das Docker-Netzwerk zaubern wir einfach mit sudo docker network create lumas
eins her.
Voilà, euer Server ist bereit für Großes!
In Teil zwei geht’s dann um einen Elastic Stack mit Kibana, drei Elasticsearch-Knoten und einem Logstash, und wir schicken die NetScaler-Syslogs gleich mit. Let’s go!
Ihr persönlicher Ansprechpartner
Wir stehen Ihnen gerne zur Verfügung, um Ihre Fragen zu beantworten und Sie auf Ihrem Weg zu einer optimalen ADC-Lösung zu unterstützen.
MAXIMILIAN LEIMGRUBER | Team-Lead Projects Cloud