Legacy Bloonix Agents

  • Hi Jonny,

    besteht die Chance noch einen Agent Paket für Debian 13 Trixie zu bekommen, der kompatibel mit der Perl Version ist?


    Mein Bloonix Server möchte noch sein 10 Jähriges feiern 8o

    Code
    Filesystem created:       Sun May  1 11:32:02 2016

    Grüße

    Lukasz

  • Danke dir - ich habe zwischenzeitig das Paket für Bookworm getestet und es funktioniert weitestgehend. Ich passe allerdings noch das systemd file etwas an, da systemd hier etwas zu meckern hat. Das ist aber nicht weitere tragisch.

    Code
    /usr/lib/systemd/system/bloonix-agent.service:17: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. 
    Aug 25 08:10:08 debianvm48.home.dc systemd[1]: /usr/lib/systemd/system/bloonix-agent.service:18: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.

    Zusätzlich habe ich einen restart eingebaut, sollte der Agent aus irgend einem Grund mal auf die Nase fallen.



    Cool wäre es wenn man im preinst Teil des core paketes die bloonix gruppe mit groupadd -r bloonix anlegt, damit die id < 1000 ausfällt. Beim User passiert das. Da ich mein Server mit einem preseed betanke und während der Installation schon der Agent drauf kommt, schnappt dieser sich für die Gruppe immer die id 1000.


    uid=988(bloonix) gid=1000(bloonix) groups=1000(bloonix)

    In meinem ersten Anlauf ist die automatische Registrierung nicht gelaufen, weil ich IP Adresse nach dem Neustart ermittelt werden konnte. DNS Einträge passen jedoch. Nach einem Neustart des Agent hat dieser die IP dann auch gefunden. Ich teste das mal mit den neuen Paketen auch wenn ich auf den ersten Blick keine speziellen Anpassungen für Trixie gesehen habe :)

  • Hallo Lukasz,

    es ist möglich vor der Installation des Core Pakets ein groupadd auszuführen und die Gruppe mit der gewünschten ID selbst anzulegen.

    Die alte Bloonix Version ist ja nun schon seit einigen Jahren eingefroren und wird auch nicht mehr supportet. Das Paket für Trixie wurde nicht neu gebaut, sondern lediglich aus Bookworm ins Trixie Repo kopiert.

    Es wäre ratsam sich so langsam von der alten Bloonix Version zu verabschieden. :)

  • Ich installiere den Agent schon während der OS-Installation - in meiner preseed Datei definiert mit ( d-i pkgsel/include bloonix-agent und weitere Pakete für meine Standardinstallation ) .

    d-i preseed/late_command wird nach der OS Installation samt Zusatzpaketen ausgeführt, hier ist die bloonix Gruppe mit der ID 1000 schon vorhanden.

    d-i preseed/early_command ist too early, weil noch kein OS Installiert ist.


    Ich könnte sicher etwas drum herum bauen wie z.B. die Agent Installation aus dem preseed herausnehmen und später mit Ansible samt Fix der Gruppen ID drüber bügeln - daran soll es nicht scheitern. Ich bin der Meinung, dass bereits bei der Installation der Software die notwendige Gruppe als System-Gruppe (ID < 1000) vom Paket her deklariert werden sollte.

    Ich habe das Thema mit der Gruppen ID zwar für die Legacy Variante angesprochen, allerdings betrifft es auch die neue Bloonix Version - hier sieht der preinst Teil identisch aus. Cool wäre es wenn du das für Bloonix v2 anpassen könntest.

    Es wäre ratsam sich so langsam von der alten Bloonix Version zu verabschieden.

    Ich weiß, nur muss ich die Zeit finden mich mit der neuen Version zu beschäftigen und meinen Zoo an Custom Plugins von perl auf python zu portieren. Ich finde es schon super, dass du Bloonix v2 bis runter zu Stretch paketiert hast - hiervon habe ich noch paar Maschinen am laufen :thumbup:


    Edit: Mein größeres Problem ist gerade, dass bei Trixie nach dem ersten Boot die IP-Adresse vom Agent nicht ermittelt werden kann und die Registrierung auf die Nase fällt.

    Edited 2 times, last by Lukasz (August 25, 2025 at 7:30 PM).

  • Die Dienste laufen schon alle an, bevor der dhcp client sich ausgetobt hat. Das ist in erster Linie ein Problem mit Debian 13 .. nicht unbedingt des bloonix-agents. Der Agent scheint allerdings die IP-Adresse nur einmalig beim Start zu ermitteln. Aller weiteren Versuchen basierend auf dem Wert aus dem initialen Start.

  • Über Preseed wäre es dann tatsächlich eher im late_command richtig, wenn du vorher noch den User anlegen möchtest. Danach dann das Paket installieren. Das mit dem System-User ist jedoch ein guter Punkt und konstruktiver Hinweis. Ich denke das lässt sich umsetzen und wäre somit auch Policy-konform. Ich lass die Änderung mal durch die Build-/Testsysteme laufen.

    Ich selbst rolle den Agenten aber auch erst mit Ansible aus, denn über Ansible wird die Datei für die Registrierung gebaut.

    Das Umbauen der Plugins gilt nur für die Plugins, die nicht Nagios-kompatibel sind. Mit den Bloonix-kompatiblen Skripts hat sich einiges geändert, ist aber auch deutlicher einfacher als vorher.

    Die Probleme mit der IP lassen sich umgehen, in dem der Wert fest übergeben wird. Oder du ermittelst die IP selbst und schreibst sie in die Registrierungsdatei.

  • Die Probleme mit der IP lassen sich umgehen, in dem der Wert fest übergeben wird. Oder du ermittelst die IP selbst und schreibst sie in die Registrierungsdatei.

    Das wäre auch eine Idee. Müsste der Eintrag in der register.conf dann ipaddr <ip> lauten? Das könnte ich mit einem Platzhalter in der config-Datei und einem sed oneliner im preseed file noch abwickeln. Die IP bekomme ich mit ip -br a | grep 'ens.*UP' | awk '{split($3, ip, "/"); print ip[1]}' einfach zu greifen.

    ich würde aber noch mal schauen wieso Debian13 sich hier anders verhält als seine Vorgänger.

    Mein Tipp: net.ifnames=0

    Damit hast du überall eth0 als erstes Interface, was man für die IF-Checks sauberer einbinden kann, ohne vorher ermitteln zu müssen, wie denn nun der Name des Interfaces ist.

    Das habe ich bereits etwas anders gelöst. Im preseed wird ein register.conf Template mit dem Eintrag variables NIC=@@NIC@@ kopiert und dann entsprechend angepasst.

    in-target sed -i "s/@@NIC@@/$(ip a | grep 'ens.*UP' | cut -d ":" -f 2  | sed 's/^[ \t]*//')/g" /etc/bloonix/agent/register.conf;

    Die IF-Checks in den Templates nutzten dann nur noch die %NIC% Variable.

  • Wir machen das noch etwas anders... Bei uns werden die Preseed Dateien für jede Maschine adhoc generiert. Im late_command füllen wir eine Datei lediglich mit Variablen und schreiben diese in /root/config.

    Das Skript init-vm.sh liest die Config und erledigt den Rest. Es ist viel zu mühselig alles in late_command zu packen und wie wild zu quoten.

    Zu deiner eigentlichen Frage. Ja, du kannst die IP da rein schreiben:

    Code
    company_id 12345
    company_authkey secret-key
    hostname test.bloonix.org
    ipaddr 127.0.0.1
    ipaddr6 ::1
    description Test host
    host_template_tags linux, apache, mysql
  • Macht Sinn - ich habe mein pressed initial für Debian 9 geschrieben und es hat nur bedingt Spaß gemacht. Danach wurde es aber nur kopiert und auf die Version angepasst. Meine Systeme sind in der Basisinstallation recht statisch.

    Kurzes Update zu dem Problem bei der Registrierung durch die verzögerte dhcp Client config.

    Debian 13 hat per Default vom isc-dhcp-client auf dhcpcd gewechselt. Das Zusammenspiel von ifupdown und dhcpcd ist noch nicht ganz rund, da dhcpcd wohl im Hintergrund forked und sich um die Adresse beiläufig kümmert. Sobald die Schnittstelle carrier hat und gerade mal einen link-lokal v6 da ist, ist ifup durch und es werden bereits weitere Services gestartet. Die IP-Adresse von dhcpv4 kommt erst einige Sekunden später und braucht noch weitere ~5 Sekunden bevor diese angewandt wird, wenn man ARP Probing aktiviert lässt.

    Ich habe es mit mal mit ifupdown-wait-online.service versucht, was auch etwas extra config und ein zuverlässiges ping Ziel benötigt, um die Dienste nach der IP Vergabe zu starten . Finde ich nur bedingt gut. Die IP Konfiguration in die Hände von systemd zu geben und dann systemd-networkd-wait-online.service mit -o routable zu verwenden wollte ich auch nicht.

    Schlussendlich habe ich erst einmal während der Basisinstallation isc-dhcp-client wieder rein gedreht. Damit funktioniert es sauber und die Dienste starten erst nach der IP Konfiguration. Ich befürchte, dass der Bloonix-Agent nicht der einzige Dienst sein wird, der Probleme macht, wenn dieser vor der finalen IP Konfiguration startet.

  • Der Bloonix Agent sollte hier kein Problem sein. Nach einem Reboot prüft der Agent die Datei /proc/uptime und startet erst, wenn der Server 30 Sekunden lang online ist.

    Edit: das wurde gemacht, damit der Server auf dem der Agent läuft genügend Puffer hat die Zeit zu synchronisieren, da ansonsten die Cache Dateien diverser Checks mit Zeitstempel nicht mehr korrekt sind.

  • Mein Problem ist in erster Linie die Auto Registrierung in Verbindung mit meinem Workflow zur Bereitstellung der Systeme. Dadurch, dass der Agent ohne host.conf das erste mal startet, bevor die IP Config durch DHCP fertig ist, läuft die Registrierung gegen die Wand.

    Mein Playbook, das am Bloonix Server den neuen Host aktiviert, greift dann ins leere. Wenn der Agent einmal registriert ist, ist das kein Problem mehr, richtig.


    Ich habe jetzt auch gelernt, dass die Lösung simpler sein kann. Anstatt das interface mit allow-hotplug zu deklarieren, nimmt man einfach auto. Dann starten die Dienste auch mit dhcpcd nachdem die IP Config fertig ist.

    Edited 2 times, last by Lukasz (August 28, 2025 at 6:50 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!