Mastodon xtrc | @xtrc

How-To: Grafana Agent auf einem Raspberry Pi 4 installieren

Ahoi,

ich bin derzeit dabei, den für die Erfassung von Telemetriedaten zur Analyse und Überwachung über den -Stack (Grafana, , , Tempo und Prometheus) zu testen.

Leider wurde der Support für eingestellt,, worunter auch ein fällt. Glücklicherweise ist das offizielle Repository gut dokumentiert, sodass es relativ einfach ist, das aktuelle stabile Release auch für meinen zu kompilieren.

„How-To: Grafana Agent auf einem Raspberry Pi 4 installieren“ weiterlesen

Laravel Mehrmandanten Anwendungen (Multi-Tenenacy)

Ahoi,

ich sah mich zuletzt vor der Herausforderung eine interne Firmenanwendung -fähig zu gestalten. Voraus geht dem Ganzen, dass alle Mandanten sich, dasselbe Daten-Layout teilen aber jeder Mandant jeweils eine eigene führt.

In diesem Fall ist der ganze Prozess relativ einfach umzusetzen. Es ist auch möglich, vollkommen unterschiedliche Datenquellen (Datenbanken, APIs etc) zu vereinheitlichen, aber vor dem Problem stand ich zum Glück nicht 🙂

„Laravel Mehrmandanten Anwendungen (Multi-Tenenacy)“ weiterlesen

Laravel 9 Queues manuell abarbeiten, aber wie?

Ahoi,

im Zuge eines Projektes auf der Arbeit war es nötig, manuell mit Laravels Queue zu interagieren, also Jobs abzurufen und auszuwerten, ohne das Laravels eigene Queue-Verwaltung dadurch beeinflusst wird.

Da der gesamte Prozess nicht offiziell dokumentiert ist, möchte ich hier die Möglichkeit nutzen und es festhalten.

„Laravel 9 Queues manuell abarbeiten, aber wie?“ weiterlesen

ZFS – Begrifflichkeiten und Erklärungen

VDEV

Ein virtuelles Gerät (virtual device, vdev) ist ein Verbund aus blockorientierten Geräten (LinuxWiki: Block-Device) welche zu einem (virtuellen) Gerät zusammengefasst werden.

Pool

Ein Pool umfasst ein oder mehrere vdevs, welche unterschiedlich konfiguriert (verschiedene RAID-Typen) sein können und ein paar globale Einstellunngen, welche auf alle enthaltenen vdevs zutreffen (deduplizierung, kompression uvm.).

RAIDZx

N = Anzahl FestplattenStripeMirrorRAIDZ1RAIDZ2RAIDZ3
Min. Festplatten12245
Fehlertolleranz0N-1123
Größe Parität0(N-1)/N123
Die Parität wird über alle Festplatten verteilt.

ARC – Lesecache im RAM

Der Adaptive Replacement (https://www.usenix.org/legacy/events/fast03/tech/full_papers/megiddo/megiddo.pdf) wird von ZFS im RAM abgelegt und enthält häufig angefragten Daten. Demnach sollte der RAM im Hostsystem so groß wie möglich sein. Empfohlen wird ZFS nicht mit weniger als 32GB RAM zu verwenden. Im Detail kann dies jedoch je nach Anwendungsfall variieren.

L2ARC – Lesecache auf SSDs

Level-2-ARC ist eine Lösung für kleine Budgets oder besondere Anforderungen. Dabei wird ein Teil der Daten aus dem ARC, wenn dieser voll ist, in den L2ARC geschoben. Es sollte klar sein, dass ausschließlich enterprise ssds als L2ARC verwendet werden sollten, da es sonst zu einer überaus schlechteren Performance führen kann, als ohne L2ARC und vollem ARC. Stichwort: Latenz

ZIL / LOG – Schreibcache auf SSDs

Um sicherzustellen, dass ein Schreibvorgang abgeschlossen ist, wird jeder Vorgang nach Abschluss bestätigt. Sobald bspw. das Betriebssystem nach einem Schreibvorgang eine solche Bestätigung erhält, ist wohldefiniert, dass die geschriebenen Daten an der vorgegeben Stelle vorhanden sind.

Dieses verhalten führt aber zu Problemen bei Festplatten. Da die Latenz einer Festplatte (Signalweg, Bewegung Lese-/Schreibkopf etc.) sehr hoch ist, kann es bei vielen paralellen Vorgängen dazu führen, dass das Hostsystem im sogenannten „iowait“ einfriert.

Als Antwort auf das Problem bietet ZFS die Möglichkeit, einen Schreibcache zu konfigurieren. Diese fängt alle Schreibvorgänge ab und muss immer schneller als der „echte“ Pool aus (wahrscheinlich) Festplatten. Da der ZIL nur mit SSDs eingerichtet werden sollte, ist klar, dass durch die verringerte Latenz es zu wesentlich weniger iowait kommt.

Bei der Umsetzung sollte jedoch darauf geachtet werden, dass der ZIL immer als Mirror betrieben werden muss, die SSDs PLP besitzen und das Hostsystem über eine UPS verfügt. Da die Daten im ZIL noch nicht auf den Pool geschrieben wurden, würde es ansonsten bei einem Stromausfall oder Hard-reset zu Datenverlust kommen.

Prefetch

demnächst

Demand

demnächst

Intel CNVi

Intel Integrated Connectivity I/O interface beschreibt ein Feature neuerer Intel-Plattformen zur Integration von Netzwerk-Funktionen in der CPU und im Chipsatz.

In den meisten Fällen sind Netzwerk-Funktionen auf sogenannten ASICs (Application-specific integrated circuit) implementiert. Diese werden anschließend mit vielen zusätzlichen Komponenten auf einem PCB verbaut und bilden dann z. B. einen PCIe NIC.

„Intel CNVi“ weiterlesen

Fail2Ban

Jeder Daemon/Service unter produziert Log-Dateien. Es hat sich durchgesetzt, dass diese unter /var/log/ zu finden sind oder von einem Syslog-Daemon zentral gesammelt werden.

Die Log-Dateien geben dabei einen Einblick in die aktuellen Aufgaben, die der dazugehörige Daemon gerade abarbeitet. Das können Aufrufe einer Webseite sein, welche vom Websever protokolliert werden oder (fehlgeschlagene) Anmeldungen am SSH-Server. Es bietet sich also an, auf die Masse an Informationen zurückzugreifen und damit zu arbeiten.

Hier kommt fail2ban ins Spiel, welches sich selbst so beschreibt:

$ man fail2ban
FAIL2BAN(1)                                                                               General Commands Manual                                                                               

NAME
       fail2ban - a set of server and client programs to limit brute force authentication attempts.

DESCRIPTION
       Fail2Ban consists of a client, server and configuration files to limit brute force authentication attempts.

       The  server  program  fail2ban-server  is responsible for monitoring log files and issuing ban/unban commands.  It gets configured through a simple protocol by fail2ban-client, which can also read
       configuration files and issue corresponding configuration commands to the server.

Es kann also Log-Dateien parsen und anhand von Filtern (Regex) entscheiden ob eine erfolgreicher Login-Version oder nicht stattgefunden hat. Daraufhin kann bei zu viel fehlgeschlagenen Versuchen, die IP-Adresse des Verursachers geblockt werden.

Auch wenn die Manpage sehr spezifisch ist, lässt sich das generelle Konzept auf viele andere Anwendungnsbereiche ausweiten. Durch die individuelle Konfiguration von Regex-Filtern und dem Ban/Unban Kommando, ist es bspw. auch Möglich, dass bei N fehlgeschlagenen Logins ein Webhook oder Script aufgerufen wird.

Ein Ausführlicher Tutorial ist hier zu finden: Linode: Using Fail2ban to Secure Your Server

SSO mit Authentik – Eine Einführung

Ahoi,

im vorherigen Beitrag ging es darum, was () überhaupt ist.
Jetzt schauen wir uns Authentik an, welches es uns ermöglicht, einen eigenen SSO Provider zu betreiben.

Doch bevor es um die Installation geht, widmen wir uns der Funktionsweise von .

Authentik ist kein reines Benutzerverzeichnis, sondern eine vollumfänglicher SSO Dienst, welcher die verschiedene Protokolle untestützt um auch wirklich jede Anwendung mit SSO zu versehen.

„SSO mit Authentik – Eine Einführung“ weiterlesen

SSO mit Authentik – Was ist das?

Ahoi,

ist eine tolle und vor allem bequeme Funktion, welche die meisten Internet-Nutzer bereits verwendet haben. Meist sogar, ohne es zu wissen. wird überall da benutzt, wo es nötig ist, jemanden anhand zentral abgelegter Daten gegenüber einem Dritten zu authentifizieren.

„SSO mit Authentik – Was ist das?“ weiterlesen

Dev Workstation ’22

Aufgrund der Chipkrise und des Crypto-Hypes ist keine Grafikkarte enthalten!

CPUAMD Ryzen 9 5950X (16C/32T)
RAM64GB DDR4-3600 CL16 (2x 32GB)
MainboardASUS ProArt X570-Creator WIFI
SSDSamsung SSD 980 PRO 1TB inkl. Kühlkörper
CPU-KühlerNoctua NH-D15
NetzteilSeasonic Prime Ultra Titanium 750W
GehäuseFractal Design Define 7

Nextcloud 25 selber hosten

Ahoi,

schon seit Jahren setze ich auf als freie Alternative zu , und , doch meine Sammlung von 15 Jahren an Fotos zwang bisher jeden Managed Nextcloud Provider in die Knie. Also bleibt mal wieder nur, es in die eigenen Hände zu nehmen 💪

Da ich Nextcloud genau auf meine Bedürfnisse anpassen wollte, habe ich bei 0 begonnen und nicht das vorgefertigte Docker Image von Nextcloud verwendet. Mal davon abgesehen, dass die Beispielkonfiguration nicht mal stabil ist!

„Nextcloud 25 selber hosten“ weiterlesen

AMD Ryzen 7000

Am 29. Aug. 2022 hat AMD die neue Generation ihrer Desktop CPUs vorgestellt. Die neue Architektur auf Basis von Zen 4 und des neuen 5/5nm TSMC FinFET Fertigungsprozess, sind vielversprechend.

CPUKerneThreadsBasis-TaktTurbo-Takt S-C/M-C
Ryzen 5 76006123.8 GHz5.1 GHz/NA
Ryzen 5 7600X6124.7 GHz5.4 GHz/NA
Ryzen 7 77008164.3 GHz5.3 GHz/NA
Ryzen 7 7700X8164.5 GHz5.5 GHz/NA
Ryzen 9 790012244.3 GHz5.4 GHz/NA
Ryzen 9 7900X12244.7 GHz5.6 GHz/NA
Ryzen 9 7900X3D12244.4 GHz5.6 GHz/NA
Ryzen 9 7950X16324.5 GHz5.7 GHz/NA

Drei kabellose Mittelklasse-Mäuse im Vergleich

Ahoi,

da ich leider häufig von einer Sehnenscheidenentzündung geplagt werde, wechsel ich mal wieder die Maus. Die perfekte Maus für meine Bedürfnisse habe ich zur Zeit des Schreibens dieses Artikels noch nicht gefunden.

Zuletzt bin ich von einer Sharkoon Drakonia V1 zu einer Logitech MX Master 3S (Produktiv) und Sharkoon Light2 200 (Spielen) gewechselt. Dabei bin ich durchaus begeistern von der Light2 und die einzigartigen Features der Master 3S sind ein Traum für meinen Einsatzzweck.
Das größte Problem ist jedoch das Gewicht der Logitech Maus. Mit gemessenen 140g (!) ist sie rund doppelt so schwer, wie die Light2 (66g).

Da es keine direkte Konkurrenz zur MX Master gibt, entschied ich mich nach einer Kompromisslösung zu suchen. Heraus kam dabei die Auswahl zwischen drei Mittelklassemäusen, welche sich im Preisbereich um 50-70€ tummeln. Entschieden habe ich mich für:

Im Zuge meiner persönlichen Suche nach der perfekten Maus möchte ich meine Erfahrungen zu den drei Mäusen mit euch teilen.

„Drei kabellose Mittelklasse-Mäuse im Vergleich“ weiterlesen

Terrarium mit Home Assistant steuern und überwachen

Ahoi,

schon vor einigen Monaten habe ich mein „Smart Home“ zu Home Assistant migriert und im Zuge dessen ein paar Automationen geschrieben, wovon ich heute eine zeigen möchte.

Seit nun mehr 10 Jahren halte ich Riesenschlangen, genau gesagt Boa c. c., Boa c. i., Python regius und Kornnattern. Je nach Art variiert das optimale Klima stark, weswegen eine durchgehende Überwachung der Temperatur, Luftfeuchtigkeit und Stunden an Tageslicht wichtig für das artgerechte Halten dieser Exoten ist.

„Terrarium mit Home Assistant steuern und überwachen“ weiterlesen

NFS

Port 2049 (ab NFSv4)

Beschreibung
Das Network File System ist ein Protokoll für die Freigabe von Dateien unter *nix

*nix-Pakete

  • Debian/: nfs-common nfs-kernel-server
  • Fedora/CentOS/RHEL: nfs-utils
  • openSUSE/SUSE Enterprise: nfs-client nfs-kernel-server

Samba/smb/CIFS

Ports
137/udp, 138/udp, 139, 139/udp, 445, 445/udp

Beschreibung
Server Message Block ist ein Protokoll für die Freigabe von Datei- und Druck-Diensten in einem Netzwerk. Am bekanntesten wohl durch die „Freigabe“-Funktion von Windows. Unter *nix besteht mit Samba ein zu dem SMB-Protokoll kompatibler Server- und Client-Service.

*nix-Pakete

  • Debian/: samba
  • Fedora/CentOS/RHEL: samba
  • openSUSE/SUSE Enterprise: samba

opencv3.4.2 und gocv.io unter Fedora 28

Ahoi,

da ich seit ein paar Tagen an einem Projekt in Go arbeite, wo ich viel mit Bilder hantieren muss, wollte ich das Rad nicht neu erfinden und OpenCV benutzen. Dabei bin ich auf das Projekt gocv.io gestoßen, welches bindings für Go bereitstellt.
Deren Dokumentation ist zwar nicht die Beste, enthält aber eigentlich alles was man braucht. Dabei liefert das Projekt direkt eine eigene Installationroutine mit, welche direkt auch OpenCV 3.4.2 installiert. Komischerweise schlug dies bei mir immer fehl, auch nachdem ich opencv über dnf installiert habe, ohne es direkt zu compilen. Deswegen habe ich OpenCV dann von Hand gebuildet, womit nun jetzt auch alles funktioniert und wie ich das gemacht habe, wollte ich hier kurz zusammenfassen.

„opencv3.4.2 und gocv.io unter Fedora 28“ weiterlesen
Veröffentlicht in linux

Windows 7 Festplatte von der Suche ausschließen

Ahoi,

wenn man wie ich ein paar mehr Festplatten in seinem PC hat – z. B. um nicht mit Spielen oder vielen Bildern die System-SSD unnötigerweise zuzumüllen – kann es sein, dass Windows diese Festplatte(n) auch für die Suchfunktion indiziert. Das hat zur Folge, dass mein Spiele-RAID jedes Mal bei der schnellen Suche im Startmenü anläuft/geweckt wird und der Windows Explorer so lange einfriert, bis die Platten am laufen sind. Da dort lediglich Spiele und ein paar unwichtige Daten liegen, nach denen ich kaum bis gar nicht suche, ist es am sinnvollsten diese Platte(n) von der Indizierung zu befreien.

„Windows 7 Festplatte von der Suche ausschließen“ weiterlesen

Proxmox VE mit zwei IPs betreibens

Befasst man sich etwas länger mit dem Thema eines eigenen Servers oder arbeitet mit diesen, stößt man irgendwann auf Proxmox VE oder auf einen seiner bekannteren Kollegen wie Xen. Proxmox dient zur Server-Virtualisierung, aber es ist kein reines Verwaltungs-Tool für die Virtualisierung mit KVM und OpenVZ, sondern eher ein Rundum-sorglos-Paket mit vielen nützlichen Features. Zwei zusätzliche Features sind z.B. HA und Live Migration. Aber nun zum eigentlichen Thema: Möchte man aus seinem Dedicated Server alles herausholen, oder möchte bestimmte Funktionen (Mail-Server, Web-Server, Bouncer etc) oder kritische Anwendung voneinander und/oder zum Internet abschirmen, kann man dies wunderbar mit Virtualisierung lösen. Was ist aber nun, wenn man aus welchem Grund auch immer nur 2 IPs für seinen Server zur Verfügung hat aber man n VMs benötigt? Wenn man bei Google danach sucht, findet man viele Blogeinträge oder Threads in diversen Foren. Mit den dort angebotenen Lösungen, kommt man auch zum Ziel, jedoch finde ich die meisten Lösungen “unschön”. In diesem Post möchte ich auf arno-iptables-firewall eingehen, welches ich für das Umsetzen des oben angesprochenen Problems nutze. Das Ziel ist es eine Bridge aufzusetzen und den VMs über NAT eine private IP zuzuweisen zusätzlich zeige ich noch, wie man dafür sorgt, dass die VMs von außen erreichbar gemacht werden und wie der Host von den VMs “getrennt” wird.

„Proxmox VE mit zwei IPs betreibens“ weiterlesen