Music Home-Recording unter Linux

Heute möchte ich ein Thema aufgreifen, das für alle diejenigen ist, die ein Instrument spielen und Musik machen. Meine Wenigkeit spielt E-Gitarre (Heavy Metal) und wie oft kommt es vor, man spielt mit dem Drumcomputer mit und plötzlich hat man eine super klasse Akkord-Folge (Riff-Folge) die man in Schleife spielt. Man denkt sich, Mensch die muss ich aufnehmen, aber wie?

Falls man sich mit der Thematik "Home-Recording" unter Linux noch nicht beschäftigt hat, steht man da jetzt wie der "Ochs vorm Berg". Da das Thema riesengroß ist werde ich nur etwas den Einstieg beleuchten, wie ABNAHME, LATENZ, SOFTWARE.

Abnahme Instrument

Hiermit ist gemeint, wie ich das Instrument z.B. E-Gitarre mit meinen Computer verbindet und was brauche ich dazu. Am einfachsten man besorgt sich ein sogenanntes Audio-USB-Interface, das normalerweise Eingänge für Klinkenstecker oder Mikrofon hat um das Instrument anzuschließen. Der Vorteil von dem Interface ist, da man das Eingangssignal einstellen (auspegeln) kann und je nach Ausstattung Kopfhörer-Ausgang, weitere Features hat. Ich kann für Linux folgendes Interface empfehlen, welches ich auch verwende: Behringer U-Phoria UMC204HD. Dieses Gerät wird per USB an den Computer angeschlossen und sollte vom Kernel erkannt werden.

Bei Instrumenten die nicht per Kabel direkt ans Interface angesteckt werden, müssen per Mikrofon abgenommen werden ans Interface angeschlossen werden z.B. Saxophon.

Früher hatte ich auch Verstärker-Preamp-Out direkt mit dem Mic-Eingang der Soundkarte verbunden, was aber nicht sehr flexibel ist, da ich das Eingangsignal immer im Computer anpassen musste und man eine gute Soundkarte braucht, die speziell für Audio-Aufnahmen sein sollte, was diese nicht war.

Bei mir:

  • Audio-USB-Interface via USB am Computer
  • Preamp-Out Verstärker per Klinken-Kabel mit dem Eingang Audio-USB-Interface verbunden
  • Alternative E-Gitarre direkt ins Audio-USB-Interface und auf Instrument schalten sonst ist es Line-In.

Latenz

Um es simpel zu beschreiben, ist die Verzögerungszeit vom praktisch gespielten Ton (Instrument) bis zum hörenbaren Ton aus dem Computer-Lautsprecher. Der Computer der das Signal von Input bis zum Output verarbeiten muß und das am besten in Realtime, braucht man unter Linux einen Realtime-Kernel. Bei manchen Linux-Distributionen (z.B. openSUSE-Leap, Ubuntu-Studio) sind bereits RT-Kernel zum installieren in den Repositories vorhanden. Was auch noch wichtig ist, das die Desktop-System schlank ist und nicht wertvollen Arbeitsspeicher verbraucht (z.B. XFCE, LXDE, Enlightenment)

Diese Latenz lässt sich mit der Software JACK (JACK Audio Connection Kit) einstellen um das gewünschte Ergebnis zur erhalten, dazu könnte man schon alleine einen Blogbeitrag füllen.

Software

Mittlerweile gibt es einiges an Open Source Software unter Linux die auch von diversen Distributionen über Repositories installiert werden kann, hier mal eine kleine Auswahl:

Für Einsteiger würde ich die ALL-in-One Lösung Qtractor wählen, da einfacher und verständlicher zu bedienen, JACK braucht jeder um die Eingänge und Ausgänge zu steuern. Wer jetzt schon mit MIDI herum experimentiert kann sich Rosegarden anschauen, Nachteil Audiospuren editieren, hier muss eine passende Software in den Einstellungen wie z.B. Audacity mit verknüpft werden.

Je nachdem was man jetzt für eine Software zum Recording verwendet, braucht man eine gewisse Zeit bis man sich in diese eingearbeitet hat und da gehen schon Stunden ins Land. Deswegen würde ich jetzt nicht ins Detail gehen das würde hier den Rahmen sprengen, aber im Netz findet man jede Menge HowTo's zu der jeweiligen Software, die die tiefere Anwendung beschreiben.

So jetzt wünsche ich jedem viel Erfolg bei seiner ersten Aufnahme und falls diese Schrott wird, keine Bange ich weiß schon gar nicht mehr wie viel Schrott ich am Anfang produziert habe, hier gilt die Devise, einfach weitermachen, es ist noch kein Meister vom Himmel gefallen.:-)

PostgreSQL unter openSUSE-Leap 15.2

da die meisten User sich zwar mit MySQL oder MariaDB auskennen, werde ich heute mal auf PostgreSQL eingehen, wie man dieses Paket installiert und ein paar Kommandos zur Verwaltung einer Datenbank.
PostgeSQL ist von den Kommandos ähnlich wie zum Beispiel MariaDB. Sie wird auch als ein freies, objektrelationales Datenbankmanagementsystem (ORDBMS) betitelt, somit auch Opensource ist.

h4. Installation:

Pakete sind in den offiziellen Repositories zu finden, die bei dem Setup von openSUSE-Leap gesetzt werden.

# sudo zypper in postgresql postgresql-server

Da da der Dienst von PostgreSQL nicht automatisch gestartet wird, wie z.B bei debianbasierten Linux-Distributionen muß dieser noch gestartet werden

# sudo systemctl start postgresql

Am besten prüft man nochmal ob der Dienst auch fehlerfrei läuft

# sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-11-03 08:31:17 UTC; 4h 23min ago
Main PID: 1460 (postgres)
Tasks: 8
CGroup: /system.slice/postgresql.service
├─1460 /usr/lib/postgresql12/bin/postgres -D /var/lib/pgsql/data
├─1461 postgres: logger
├─1463 postgres: checkpointer
├─1464 postgres: background writer
├─1465 postgres: walwriter
├─1466 postgres: autovacuum launcher
├─1467 postgres: stats collector
└─1468 postgres: logical replication launcher

Nov 03 08:31:15 opensuse-leap systemd[1]: Starting PostgreSQL database server...
Nov 03 08:31:15 opensuse-leap postgresql-script[1437]: Initializing PostgreSQL 12.4 at location /var/lib/pgsql/data
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.186 UTC [1460]LOG: starting PostgreSQL 12.4 on x86_64-suse-linux-gnu, compiled by gcc (SUSE L>
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.187 UTC [1460]LOG: listening on IPv6 address "::1", port 5432
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.187 UTC [1460]LOG: listening on IPv4 address "127.0.0.1", port 5432
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.193 UTC [1460]LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.204 UTC [1460]LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.221 UTC [1460]LOG: redirecting log output to logging collector process
Nov 03 08:31:17 opensuse-leap postgresql-script[1437]: 2020-11-03 08:31:17.221 UTC [1460]HINT: Future log output will appear in directory "log".
Nov 03 08:31:17 opensuse-leap systemd[1]: Started PostgreSQL database server.


Da wir jetzt wissen, das der Dienst ordnungsgemäß läuft, können wir loslegen, mit dem anlegen von Datenbank und Tabellen.

PostgreSQL wird vom System-User postgres verwaltet, der alle Rechte hat, um z.B. Datenbanken oder auch Datenbankbenutzer anzulegen. Da dieser User ohne Passwort konfiguriert ist, was unter MariaDB oder MySQL teilweise auch so ist, sollte man dem User sicherheitstechnisch ein Passwort konfigurieren.

# sudo passwd postgres

Passwort nach Aufforderung eingeben und erneut wiederholen.

Unter PostgreSQL gibt es genauso ein Shell wie bei z.B. MySQL und in diese kommt man wie folgt:

# sudo -u postgres psql

Um diese Shell wieder zu verlassen

\q

eingeben

Anlegen vom User der Datenbanken verwalten darf

# sudo sudo -u postgres createuser -P -d NUTZERNAME

Der Schalter -P <password> -d <create databases>

Anlegen von einer Datenbank

# sudo -u postgres createdb -O username DATABASENAME

Löschen einer Datenbank

# sudo -u postgress dropdb DATABASE

In der postgresql Shell sieht das anders aus

postgres=# CREATE DATABASE my_music;

Wechseln zwischen den Datenbanken

\c DATENBANK

Ein Tabelle mit den Spalten anlegen

postgres=# CREATE TABLE cds ( id int, interpreter varchar(100), album varchar(100), release date );



Daten in die Tabelle der Datenbank schreiben


INSERT INTO cds VALUES ( 1, 'Pretty Maids', 'Future World', '1987-04-12' );


Als kleine Einführung in PostgreSQL soll es mal reichen, wir bieten für mehr Wissen darüber auch ein Training an.

Dann viel Spaß bei ausprobieren von PostgreSQL.

Aufsetzen eine Redis-Clusters

Da mir vor kurzem die Aufgabe zuteil wurde, einen Redis Cluster aufzusetzen, möchte ich diese Erfahrung mit euch teilen.
Die Vorbereitung:
- 3 Nodes
- Redis in der aktuellen stabilen Version

Auf allen 3 Nodes die aktuelle (stable) Redis Version herunterladen und das tar.gz file entpacken
wget http://download.redis.io/releases/redis-stable-version.tar.gz
tar -xvzf redis-stable-version.tar.gz -C /opt/
cd /opt/redis-stable-version/
make

Da der Cluster aus 6 Nodes bestehen muss (minimal), laufen auf jedem Node ein Master-Prozess und ein Slave-Prozess, deshalb sollte man ein Verzeichnis Cluster anlegen in dem dann eine master.conf und slave.conf liegt, die unterschiedlich konfiguriert sind.
zum Beispiel:
master.conf Node 1:
port 7000
logfile /var/log/redis/redis-master.log
bind 192.168.33.50
cluster-enabled yes
cluster-config-file nodes-master.conf
cluster-node-timeout 5000
appendonly yes
----
slave.conf Node 1:
port 7001
logfile /var/log/redis/redis-slave.log
bind 192.168.33.50
cluster-enabled yes
cluster-config-file nodes-slave.conf
cluster-node-timeout 5000
appendonly yes

Zur Erklärung: Ich habe jetzt den Master-Prozess Ports immer auf eine gerade Zahl gelegt (7000, 7002, 7004)
und die Slaves auf (7001, 7003, 7005). Die bind IP-Adresse ist auch wichtig auf dem jeweiligen Node zu binden.
Die Angabe von der nodes-master.conf / nodes-slave.conf ist dafür, damit hier der Status der Master/Slave Nodes hinein geschrieben werden
und diese Dateien werden beim Start automatisch erstellt.

z.B Node 3:
~# cat /opt/redis-5.0.7/cluster/master.conf
port 7004
logfile /var/log/redis/redis-master.log
bind 192.168.33.52
cluster-enabled yes
cluster-config-file nodes-master.conf
cluster-node-timeout 5000
appendonly yes

Die Nodes werden alle 3 so mit Konfigurationsdateien erstellt damit später der Cluster gebaut werden kann.

Starten der Prozesse auf den drei Nodes:
cd /opt/redis-stable-version/cluster && ../src/redis-server ./master.conf &
../src/redis-server ./slave.conf &
pgrep -a redis-server
# pgrep -fl redis-server
1988 redis-server
1992 redis-server

Bevor wir den Cluster zusammenhängen sollte man auf jedem Node prüfen, ob beide redis-server Prozesse laufen, siehe pgrep Kommando.

Cluster zusammenhängen:
Auf dem ersten Master-Node wird das redis-cli Kommando ausgeführt:
~# redis-cli --cluster create 192.168.33.50:7000 192.168.33.50:7001 192.168.33.51:7002 192.168.33.51:7003 192.168.33.52:7004 192.168.33.52:7005 --cluster-replicas 1
Wie man am Kommando erkennen kann, werden hier alle Master / Slave-Nodes mit ihrem Port zum einem Cluster verbunden --cluster-replicas 1 bedeutet, das zu jedem Master Node ein Slave konfiguriert ist.
Man muss die erstellte Konfiguration noch mit "yes" bestätigen und anschließend sollte man folgenden Output erhalten:
[OK] All 16384 slots covered
Jetzt kann man per redis-cli mit dem Cluster kommunizieren, Werte setzen, Statis abfragen usw, in der Online-Dokumentation von Redis sind einige Bespiele vermerkt.
So, hat man einen lauffähigen Redis-Cluster am Start, es besteht auch ein fertiges Bash-Skript womit man einen fertigen Redis-Cluster auf einem Node starten kann, dieses ist unter dem Verzeichnis '/redis-stable-version/utils/' zu finden und als Schnelltest verwendet werden kann.

Das soll es fürs erste mal reichen und ich wünsch euch viel Spaß mit eurem ersten Redis Cluster. Natürlich möchte ich auch hier wieder auf unser Trainingsangebot im OpenSource aufmerksam machen, ihr wisst "Training = "Wissen", immer fleißig weiterbilden :-)

Telekom vergisst Neubaugebiet beim Breitbandausbau

Hierbei handelt es sich um eine wahre Gegebenheit. Aufgrund dessen das es heißt, die Jungen sollen doch wieder mehr auf das Land ziehen, damit die Ballungsräume nicht so überfüllt sind, gesagt getan. Ich baute vor ca. 3 Jahren ein Haus im Ortsteil Schauerheim außerhalb von Neustadt a.d. Aisch im ausgeschildertem Neubaugebiet Schauerheim "Birngarten".

Alles läuft soweit prima, mein Familie wurde herzlich aufgenommen und haben uns in den örtlichen Verein mit eingebracht. Nur leider gibt es ein sehr sehr schmerzlichen Beigeschmack, der Breitbandausbau der Telekom.

Da ich seit vielen Jahren zufriedener Telekom-Kunde bin (Anschluss bereits 3x umgezogen) und damals mit T-DSL 1000 alles begann, wollte ich beim Neubau den Anbeiter nicht wechseln, obwohl auch hier ein Kabel-Anbieter ansäßig war, der mehr Internet-Geschwindigkeit anbot.

Auf mehrmaligen Anfragen bei der Telekom wurde uns bestätigt, das im Ortsteil Schauerheim der Breitbandausbau kommt, leider nicht wo, was uns jetzt zum Verhängnis wurde und 3 weitere Telekom-Kunden und ich sehr sehr entäuscht sind.

Es wurde nämlich nur der Schauerheim-Ortskern mit VDSL ausgebaut und unser Neubaugebiet Birngarten einfach vergessen oder nicht mit berücksichtigt. Vorallem ist im ausgebauten Ortsteil-Kern auch ein Kabel-Anbeiter ansässig der die gleiche Geschwindigkeit anbietet, wie bei uns.

Auch durch mehrmaligen Nachfragen wurde uns seitens der Telekom die Antwort "Kein weiterer Ausbau geplant" mitgeteilt. Onlineaussage Telekom Quelle:Telekom Webseite

im östlichen Bereich von Schauerheim haben wir kein Vectoring ausgebaut, im westlichen hingegen schon. Dort sind daher Geschwindigkeiten bis zu 100 MBit/s möglich. Hintergrund: Es gibt dort keine Förderung, weil dort für die Haushalte durch einen Kabelnetzbetreiber Bandbreiten >30 MBit/s zur Verfügung stehen

Dieser Ausbau wurde eigenanteilig (keine Förderung) durchgeführt siehe Quelle womit sich die o.g. Aussage entkäften läßt.

Gerade in aktuellen Zeiten von Homeoffice als IT'ler ist eine Internet-Leitung von bis zu 6 Mbit/s Download und 2,4 Mbit/s Upload nicht gerade super, da auch die Kinder zuhause online sind und man mit den Kollegen Video-Meetings machen will.

Lasst euch Telekom mal was gesagt sein:

Das Geld verdient ihr mit eueren treuen Kunden und nicht mit denen die ständig den Anbieter wechseln!

Ich hoffe, das wir irgendwann doch mal das schnelle Internet von der Telekom bekommen, ich gebe die Höffnung nicht auf und werden euch weiter auf den Geist gehen :-)

Temp und Feuchtigkeit in Telegram vom RasperryPI

Ich möchte hier beschreiben, wie man mit einem RasperryPI die Temperatur und Feuchtigkeitswerte sich aufs Handy per Telegram schickt.

Verraussetzung ist ein RasperryPI 3 b+ und ein Temperatur / Feuchtigkeitssensor, ich habe folgenden verwendet:

  • DSD TECH DHT22 AM2302 Temperatur und Luftfeuchtigkeit Sensor Modul für Arduino Raspberry Pi
  • RasperryPI 3 B+

Anleitung wie man den Sensor an den RasperryPI ansteckt, findet man reichlich im Netz z.B. <https://www.modius-techblog.de/mikrokontroller/raspberry-pi-temperatur-und-luftfeuchtigkeit/>

Da in diesem Artikel auch schon beschrieben wird, wie man mit dem Tool Adafruit die Werte Temperatur und Feuchtigkeit ausliest, werde ich hier nicht genauer darauf eingehen.

Soviel, Ich lasse das Skript per cronjob an bestimmten Zeiten ausführen und bekomme dann die Werte in Telegram aufs Handy.

Nur wie kann man sich die Wert auf das eigene Handy per Telegram schicken? Das werde ich hier beschreiben.

Vorraussetzung:

  • Handy mit der App Telegram

Als erstes müssen wir uns in Telegram einen eigenen Bot erstellen, an den wir später per API erreichen können,

wie das funktioniert, wird auch in vielen Webseiten bereits erklärt z.B. <https://www.teleme.io/articles/create_your_own_telegram_bot?hl=de>.

So, da der Bot jetzt bereit ist um per API Nachrichten zu empfangen, brauchen wir einen API-Aufruf  der so aussehen kann:

curl -X POST 'https://api.telegram.org/botid:token/sendMessage?chat_id=id&text='$(/usr/local/sbin/AdafruitDHT.py 2302 4)'' > /dev/null 2>&1

Ich habe die Ausgaben die auf der Shell kommen nach /dev/null geleitet, denn die brauchen wir nicht, wenn es funktioniert.

Für die ersten Tests würde die Ausgabe schon sichtbar lassen, um den JSON-Output mal gesehen zu haben

curl -X POST 'https://api.telegram.org/botid:token/sendMessage?chat_id=id&text='$(/usr/local/sbin/AdafruitDHT.py 2302 4)'' | python -m json.tool

{
    "ok": true,
    "result": {
        "chat": {
            "first_name": "Johannes",
            "id": 400269857,
            "last_name": "Carraro",
            "type": "private",
            "username": "carraroj"
        },
        "date": 1563270619, <-- UNIXTIMESTAMP
        "from": {
            "first_name": "Raspberry",
            "id": 798905845,
            "is_bot": true,
            "username": "carraroj_bot"
        },
        "message_id": 265,
        "text": "Temp=20.8C::Humidity=75.8%"
    }
}

Wie wir sehen war die Ausgabe erfolgreich und wir sollten auf dem Handy im Telegram eine neue Nachricht mit der Temperatur und Feuchtigkeit bekommen haben.

Telegram.pmg

Man kann sich über den RasperryPI mit verschiedenen Sensoren denjenigen Wert so auf das Handy per Telegram schicken lassen, ne coole Sache.

Anwendungungsbeispiel: Zimmergewächshaus, Zimmertempatur, Außentemperatur etc.

Dann wünsche ich viel Erfolg beim nachbasten!

Natürlich kann ich jedem unsere Trainings nahelegen rundum OpenSource-Themen.

Ich werde heute beschreiben wie man den Proxy-Server Squid mit SquidGard einrichtet und Zugriff per Benutzer-Authentifizierung.
Anlass ist, das ich selbst bei mir zuhause diese Kombination einsetze, um meinen Kindern manche nicht kinderfreundlichen Inhalte im Web zu ersparen und zu blocken.
Es gibt verschiedene Einsatz-Scenarien von Squid z.B als Caching von Webseiten zum schnellen Anzeigen im Browser.
Zuerst muss man die Pakete dafür installieren, bei mir im Fall von openSUSE-Leap. Pakete können sich bei anderen Linux Distributionen unterscheiden.
zypper in squid squidGuard
Anschließend den Proxyserver Squid beim Systemstart aktivieren:
systemctl enable squid.service
Starten von Squid
systemctl start squid.service
Bei der fertigen Umgebung wird Squid die Anfragen über den SquidGuard leiten, zum die URL's oder Domains zu überprüfen, ob derjenige Benutzer die Inhalte sehen darf oder nicht.

Als erstes konfiguriere ich den Squid, Konfigurationsdatei liegt unter:

cd /etc/squid/ && vim squid.confz.B meine squid.conf
auth_param basic program /usr/sbin/basic_pam_auth #----> Wichtig Authentifizierung von Usern, wird per Popup erscheinen
auth_param basic children 5 startup=0 idle=1
auth_param basic realm Squid proxy-caching web server
acl localnet src 192.168.100.0/24 # RFC1918 possible internal network #----> Wichtig Zugriff Regel für das Netz von Squid
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl password proxy_auth REQUIRED
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet password
http_access allow localhost
http_access deny all
http_port 3145
coredump_dir /var/cache/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
err_page_stylesheet /etc/squid/errorpage.css
redirect_program /usr/sbin/squidGuard -c /etc/squidguard.conf #-----> Wichig weiterleitung über SquidGuard und liest Konfig von squid ein
redirect_children 5 #----> Wieviele Kindprozesse darf Squidguard öffnen.

Es wird in dieser Konfig-Datei vieles per Kommentar erklärt, hier empfiehlt sich es mal gelesen zu haben.

Dann müssen noch Berechtigungen der Datei
/usr/sbin/basic_pam_auth
gesetzt werden, damit die Authentifizierung über die angelegten Benutzer funktioniert:
chgroup shadow /usr/sbin/basic_pam_auth
chmod g+s /usr/sbin/basic_pam_auth

Damit alles aktiv geschaltet wird müssen wird den Proxyserver neustarten:
systemctl restart squid.service

So jetzt damit kommen wir zum SquidGuard:
Die Konfigurationsdatei heisst:
vim /etc/squidguard.conf;
Ein Beispiel von mir:
logdir /var/log/squidGuard
dbhome /var/lib/squidGuard/db
src parents {
ip 192.168.100.0/24 # range 192.168.10.0 - 192.168.10.255
# AND
user papa mama # ident Papa und Mama
}
src kids {
ip 192.168.10.17 # Notebook Kind 1
user username # ident Kind1
# AND
ip 192.168.10.14 # Notebook Kind 2
user username (Kind # ident Kind2
}
dest blacklist {
domainlist blacklist/domains
urllist blacklist/urls
}
#####
#
# Zeitregeln
#####
# abbrev for weekdays:
s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat
time tagsueber {
weekly mtwhfas 12:00-16:00 # Unter der Woche
}
acl {
parents {
pass all
}
kids {
pass !blacklist all
}
default {
pass none
redirect http://hostname/cgi-bin/squidGuard.cgi/blocked?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&url=%u

Die Datei ist eigentlich sehr einfach strukturiert und auf der Webseite von SquidGuard gut erklärt, deswegen verlinke ich hier gern:
http://www.squidguard.org/Doc/configure.html

Für das Blocken von nicht kinderfreundlichen Seiten gibt es schon fertige Listen, die das meiste auch schon abdecken:
Block-Listen
Diese Listen müssen entpackt und in das Verzeichnis:
cd /var/lib/squidGuard/db/blacklist/
kopiert werden und anschließend initialisiert werden:
squidGuard -C all

So, jetzt sollte alles soweit funktionieren, testen kann man am besten, in dem man mit einem Benutzer, der für das Blocken eingerichtet ist, geblockte URL's oder Domains aufzurufen, um zu sehen ob diese Seite aufgerufen werden kann.

In diesem Sinne Have Fun

Analyse der Konfigration bei Galera-MySQL-Cluster

Ich möchte in diesem Blog-Beitrag zum Thema Konfiguration-Check machen.

Zum Beispiel kann man bestimmte Statis abfragen, ob der Cluster synchronisiert ist oder wie viele Nodes der Cluster besitzt und noch einiges mehr.
Kurz zum Verständnis bei MySQL ist das Prozentzeichen(%) das Wildcard wie bei der Bash das Sternchen(*).
Das werde ich Anhand nachfolgender Beispiele erklären.

Die Anzahl der Nodes im Cluster:

mariaDB [(none)]> show status like 'wsrep_cluster_size%';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+

Wie man sehen kann sind hier 3 Nodes im Cluster.

Den aktuellen Sync-Status im Cluster wird so ermittelt:

MariaDB [(none)]> show status like 'wsrep_local_state_comment%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| wsrep_local_state_comment | Synced |
+---------------------------+--------+

Die Ausgabe sollte hier selbsterklärend sein.

Um alle Statis von dem Cluster abzurufen kann man dieses Kommando benutzen:
show status like 'wsrep_%';
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <info@codership.com> |
| wsrep_provider_version | 25.3.19(r3667) |
| wsrep_ready | ON |
| wsrep_received | 56804 |
| wsrep_received_bytes | 2506329647 |
| wsrep_repl_data_bytes | 352492270

Das ist nur ein kleiner Ausschnitt aus dem Ouput der hier herauskommt

Jetzt kommen wir zur eingestellten Konfiguration, die man hier auch auslesen kann, um spätere Anpassungen vorzunehmen kann.
Die Werte dafür sind in Variablen bei MySQL gespeichert und können wie folgt abgerufen werden:

Die max_allow Variablen kann man so ermitteln:

MariaDB [(none)]> show variables like '%max_allow%';
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 536870912 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+

Wenn man hier etwas herumspielt mit den Werten, kann man erstaunliches und informatives herausfinden.

So als kleiner Einstieg sollte dieser Beitrag ausreichen damit man die wichtigsten Einstellungen beim Galera-Cluster ausgegeben bekommt.
Lesenswert Link:
Galera Dokumtentation

OSDC 2016 | NETWAYS GmbH

https://www.netways.de/en/events_trainings/osdc/overview/

Diese Jahr habe ich die Ehre das erste Mal auf so einer Konferenz teilzunehmen, bin schon ganz aufgeregt.

Das erste Mal werde ich in Berlin sein, mal sehen, ob ich was so von Berlin zu sehen bekommen werde.

Bin mal gespannt, was mich dort alles erwartet und werde bestimmt Fun haben.

Btrfs / snapper und Tools › NETWAYS Blog

https://blog.netways.de/2016/04/06/btrfs-snapper-und-tools-2/

Mein kleiner eventuell hilfereicher Task für alle die BTRFS mögen und sich damit befassen möchten

Vorallem Snapper ist ein so find ich ziemlich cooles Tool von anlegen von Snapshots unter BTRFS


Viel Spaß beim lesen!

OSDC 2016 | NETWAYS GmbH

https://www.netways.de/events_schulungen/osdc/overview/

Da ich ja jetzt seit Februar 2016 auch Mitarbeiter der NETWAYS GmbH bin, freue ich mich auf diese Veranstaltung.

https://www.netways.de/ueber_netways/team/johannes_carraro/

Wird bestimmt sehr informativ und interessant.


Ich hoffe, das der eine oder andere Nerd hat auch Lust bekommen.... und ....

man sieht sich in BERLIN!!

Mehr zur NETWAYS GmbH => https://www.netways.de