zum scannen neuer Files, die nicht über die Oberfläche hinzugefügt wurden.
Das hier ausführen
su -s /bin/bash www-data php occ files:scan --all
Quelle: hostflash.de
zum scannen neuer Files, die nicht über die Oberfläche hinzugefügt wurden.
Das hier ausführen
su -s /bin/bash www-data php occ files:scan --all
Quelle: hostflash.de
Es geistern mehrere Lösungen rum, die netdata mit basic auth und nginx abzusichern.
Es geht aber auch mit einer reinen Apache Lösung, die auch in der Doku von netdata beschrieben ist.
Hier meine Gedächtnisstütze.
ich verwende ISPconfig, entsprechend sind hier die notwendigen Einträge bei der Website in der Config.
Apache Direktiven:
RewriteEngine on RewriteRule ^/\.well-known/carddav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^/\.well-known/caldav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^/\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L] RewriteRule ^/\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L] Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" Require all granted # Local Netdata server accessed with '/netdata/', at localhost:19999 ProxyPass "/netdata/" "http://localhost:19999/" connectiontimeout=5 timeout=30 keepalive=on #ProxyPass "/netdata/" "unix:/var/run/netdata/netdata.sock|http://localhost:19999/" connectiontimeout=5 timeout=30 keepalive=on If ProxyPassReverse "/" "http://localhost:19999/" # if the user did not give the trailing /, add it # for HTTP (if the virtualhost is HTTP, use this) RewriteRule ^/netdata$ http://%{HTTP_HOST}/netdata/ [L,R=301] # for HTTPS (if the virtualhost is HTTPS, use this) #RewriteRule ^/netdata$ https://%{HTTP_HOST}/netdata/ [L,R=301] # add a section AuthType Basic AuthName "Protected site" AuthUserFile /etc/apache2/.htpasswd Require valid-user Order deny,allow Allow from all
Damit ist Let's Encrypt frei Haus, da die Hauptdomain bereits ssl enabled ist.
Jetzt nicht vergessen, mit
htpasswd -c /etc/apache2/.htpasswd monitoruser
einen user für die "basic auth" anzulegen.
und dann kann in /etc/netdata/netdata.conf bind auf localhost gestellt werden.
... und die vorhandende Firewall Freischaltung für Port 19999 kann dann auch gleich raus. Denn die Kommunikation damit findet nur jetzt nur lokal statt.
Nee, hier kommt jetzt kein Jammer Artikel, weil alles so fürchterlich ist, sondern einer, der beschreibt wie ich ein proprietäres Programm, dass leider nicht mehr upgedatet wird, auf den Bullseye Server zum laufen gebracht habe.
Dies ist für mich eine Dokumentation, damit ich bei update oder Problemen eine Gedankenstütze habe.
Worum geht es?
Seit etlichen Jahren tat eine Webanwendung eines Freundes ihren treuen Dienst.
Es handelt sich um eine Individualanwendung zur Kunden- und Auftragsverwaltung. Nennen wir sie cruzifix.
Nach einem Serverumzug auf eine neuere Hardware und Neuinstallation von Debian Bullseye wollte das Programm einfach nicht mehr fehlerfrei laufen.
Eingegrenzt hatte ich die Ursache auf eine zu neue mysql / MariaDB Version. Eigentlich war meine Analyse korrekt.
Wie sich aber später heraus stellen sollte, gäbe es eine Lösung, ohne den ganzen Aufwand den ich jetzt hoffentlich ohne zu große Lücken aus dem Gedächtnis und meinen Aufzeichnungen in meinem Desktop wiki darstelle.
Ich kam zu dem Schluss, dass ich eine Docker instanz, oder eine virtuelle Maschine verwenden wollte, um cruzifix eine neue Heimat zu geben.
Eine einfache Lösung wäre eine VM, mit einer extra IP Adresse, den entsprechenden DNS darauf setzen, fertig.
ich habe einigen Aufwand betrieben dies umzusetzen, scheiterte aber an der Erreichbarkeit der VM von außen. Klarer Fall von mangelndem Wissen der Netzwerk Struktur.
Na, dachte ich, dann ist eine Docker Lösung doch vielleicht die bessere Lösung, keine Extra IP, kein zusätzliches Ssytem, welches ja auch betreut werden will. Ausserdem ist das gewählte System ja auch aus dem Support raus und dann ist wieder großer Aufwand, so habe ich mir das schön geredet.
Kurz zuvor habe ich erfolglos mysql-sandbox und dbdeployer ausprobiert
Also frisch ans Werk.
Rudimentäres Wissen zu docker ist vorhanden, da dachte ich, "nimmste gleich was aktuelles"
also mit der neuesten Version.
Nur als Stütze, es stellte sich heraus, dass hello-world war nicht zum funktionieren zu bringen.
Also nicht verwenden ( lag wohl am nicht installierten apparmor, was aber nicht so aus dem Fehlerverhalten lesbar war.)
nano /etc/apt/sources.list.d/docker.list apt install docker-compose docker.io docker run hello-world
Dann also mit den Bullseye Bordmitteln...:
apt install docker-compose docker.io apparmor docker pull mariadb # offizielles image von https://hub.docker.com/_/mariadb
Der Name buster-mariadb ist ein Beispiel, er entstand wegen der Volume Testerei Geschichte, könnte man auch schlauer gewählt haben.
Die Option -v /var/backup/buster-mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mgeheimsql # stellt das Verzeichnis /var/lib/mysql dem Host auf /var/backup/buster-mysql und das mysql passwort auf mgeheimsql.
Bleibt die Option --sql_mode="" # Dadurch werden Sicherheitsfeatures der neueren MariaDB Version abgeschaltet, deshalb läuft dann cruzifix auch mit der mysql 5.7 und aktueller
docker run --name buster-mariadb -v /var/backup/buster-mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mgeheimsql -d a3871bf45d8a --sql_mode=""
Zu --sql_mode=""
Hiermit kann das Problem abgestellt werden, dass cruzifix viele Fehler wie z.:b no group by und so weiter wirft. set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Indem ich --sql_mode=""
setze, habe ich das Problem für die einzelne "cruzifix"-Datenbank behoben.
In einem Satz ausgedrückt: Es ist auch möglich, ohne Docker zu arbeiten, aber dann müssten für alle DB-Anwendungen auf dem Server die Optionen gesetzt werden, was wahrscheinlich deutlich mehr Aufwand bedeutet als die Verwendung einer Docker-Instanz.
Ich habe mir noch einen Alias gebaut.
Alias DS='docker stats --no-stream'
Häufige docker commands:
docker ps docker update --restart unless-stopped buster-mariadb docker stop buster-mariadb docker exec -it buster-mariadb /bin/bash docker image ls docker container ls
Werde ich noch etwas ergänzen mit deteils zum Backup, zu den docker commandos ...
Ich habe es mir zur Gewohnheit gemacht, bei wichtigen emails an für mich neue Empfänger, immer den Übermittlungsstaus DSN anzufordern.
Klappt immer, außer in diesem Fall.
Eine mail an eine Geschäftsadresse kommt an, ich bekomme aber nicht die DSN.
Ist das denn optional?
Ziel war: mx01.hornetsecurity.com
Ich hatte bisher den Eindruck, dass das ein Pflichtattribut ist...
Aber nein,