Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.

Kategorie "Linux"

20. Nov
Teaser

Linux: file triggers record mentions illegal package name (apt or dpkg)

Beim Installieren oder Updaten von Software kann es (wenn auch selten) zu folgender Fehlermeldung kommen:

dpkg: error: file triggers record mentions illegal package name 'sùstemd/noaw`it'
(for interest in file '/usr/lIb/systemd/cAtalog'): illegal package name in specifier
'sùstemd/noaw`it': character 'ù' not allowed (only letters, digits and characters '-+._')

Lösung (in diesem Fall):

Nach dem Leeren der Datei “/var/lib/dpkg/triggers/File” konnte die Software problemlos installiert werden.

14. Nov
Teaser

/bin/tar: Argument list too long

Wenn man Verzeichnis(se) mit einigen tausend Dateien packen möchte, kann man schnell folgende Fehlermeldung beim Packen erhalten:

bash: /bin/tar: Argument list too long

Bedeutet, dass das Pack-Programm “tar” sich versucht hat eine Liste mit allen zu packenden Dateinamen zu erstellen. Dabei ist die Maximallänge der Liste überschritten worden.

Lösung

Erstellen Sie zuerst eine Datei mit allen zu packenden Dateinamen. Dafür können Sie z.Bsp. folgenden Befehl benutzen:

find /zu/packen -name '*.txt' -print > files.list

Ersetzen Sie “/zu/packen” durch den Verzeichnisnamen, welchen Sie archivieren möchten. In diesem Fall werden nur die Textdateien (*.txt) gelesen. Wenn Sie alle Dateien lesen möchten, dann ersetzen Sie das ‘*.txt’ bitte durch ‘*’.

Anschließend übergeben Sie diese Datei als Packanweisung:

tar -cvzf backup.tar.gz --files-from files.list

Nachdem das taz.gz-Archiv (hier: backup.tar.gz) fertig erstellt wurde, können Sie die Dateiliste wieder löschen:

rm files.list
27. Okt
Teaser

VirtualMin: “mod_fcgid: error reading data from FastCGI server”

Nachdem man eine Domain in VirtualMin wiederhergestellt (“Backup restore”) hat, kann es gerne mal zu folgender Fehlermeldung beim Aufruf der Webseite der Domain kommen:

Connection reset by peer: [client 11.22.33.44:56644] mod_fcgid: error reading data from FastCGI server
End of script output before headers: index.php

Es gibt viele Anleitungen im Internet, wie dieser Fehler (Code 500) bearbeitet werden sollte. Bei VirtualMin administrierten Servern kann folgende Lösung jedoch einfacher und direkt zielführend sein:

Löschen Sie die Verzeichnisse “etc/” und “fcgi-bin/” in dem Hauptverzeichnis der Domain. Legen Sie ggf. bitte zuvor eine Sicherungskopie der Verzeichnisse an. Ersetzen Sie in folgendem Befehl bitte “domain” mit Ihrem entsprechenden Verzeichnisnamen:

cd /home/domain/
rm -rf fcgi-bin/ etc/*

Öffen Sie jetzt VirtualMin, wählen Sie die entsprechende Domain aus und stellen Sie den Modus um:

– Wählen Sie im Menü den Punkt “Server Configuration”
– Dort den Unterpunkt “Website Options”
– Stellen Sie “PHP script execution mode” auf “Apache mod_php”
– Speichern Sie durch einen Klick auf “Save”

Sobald die Änderung abgeschlossen ist, wählen Sie den gleichen Weg und stellen die Option wieder zurück auf “FCGId” und speichern erneut.

Wenn Sie jetzt die Webseite wieder aufrufen, sollte der Fehler behoben sein.

16. Okt
Teaser

Sicherheit: Hostnamen eines V-Servers ändern

Wenn Sie einen (virtuellen) Server (= V-Server / VServer) betreiben, dann wird häufig der Servername/Hostname automatisch vom System des Hosts gesetzt. Meist beim Start Ihres VServers – teilweise (je nach Hosting-Anbieter) auch mal von Zeit-zu-Zeit wird dann Ihr gesetzter Hostname durch ein wenig leserlichen Standard überschrieben. Das kann lästig sein; vor allem, wenn Sie einen eigenen Hostnamen für die Verwaltung einsetzen wollen.

Vielleicht hilft Ihnen in diesem Fall folgende Anleitung:

Bei sehr frisch installierten Linux-Systemen kann es notwendig sein, zuerst das Paket/Programm “nano” zu installieren. Es ist ein einfacher Texteditor:

apt-get update
apt-get install nano

Jetzt erstellen Sie eine Datei:

nano /etc/systemd/system/hostname_vps.service

Fügen Sie folgenden Inhalt ein:

[Unit]
Description=Set the hostname on boot
Before=rsyslog.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/hostname_vps

[Install]
WantedBy=multi-user.target

Eine weitere Datei zum automatischen Setzen bzw. Korrigieren des Hostnamens ist erforderlich:

nano /usr/local/bin/hostname_vps

Hier fügen Sie bitte folgenden Inhalt ein und ersetzen dabei in der zweiten Zeile den Text “my.host.name” bitte durch Ihren gewünschten Hostnamen:

#!/bin/bash
HOSTNAME=my.host.name
[ -f /etc/hostname ] && echo $HOSTNAME > /etc/hostname
[ -f /etc/HOSTNAME ] && echo $HOSTNAME > /etc/HOSTNAME
[ -f /etc/mailname ] && echo $HOSTNAME > /etc/mailname
[ -f /etc/sysconfig/network ] && sed -i.hebackup s/HOSTNAME=".*"/HOSTNAME="$HOSTNAME"/ /etc/sysconfig/network
/bin/hostname $HOSTNAME
[ -f /etc/my.resolv.conf ] && cp /etc/my.resolv.conf /etc/resolv.conf
[ -f /etc/my.hosts ] && cp /etc/my.hosts /etc/hosts
exit 0

Erlauben Sie das Ausführen der Datei:

chmod +x /usr/local/bin/hostname_vps

Setzen Sie den gewünschten Hostenamen bitte ebenfalls in der “hosts” Datei:

nano /etc/hosts

Auch hier muss der Text “my.host.name” durch Ihren o.a. Hostnamen ersetzt werden. Es kann bei Unternamen notwendig sein, diesen nochmals aufzuführen. In diesem Beispiel ist “my” der Untername von “host.name” und wird daher nochmals an das Ende der entsprechenden Zeile angefügt:

127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

11.22.33.44 my.host.name my

Kopieren Sie nun die geänderte “hosts” Datei in eine Sicherung, damit das zuvor erstellte Script diesen Zustand immer wieder herstellen kann:

cp /etc/hosts /etc/my.hosts

Starten Sie die Dienste jetzt manuell neu und der Hostname des Servers sollte gesetzt sein.

systemctl daemon-reload && systemctl enable hostname_vps.service && systemctl start hostname_vps.service && systemctl restart rsyslog

U.U. sollten Sie den Server jetzt einmal rebooten, um den Erfolg zu testen.

17. Sep
Teaser

Linux: PHP 7.1 / 7.2 / 7.3 auf einem Debian 9 Server (“Stretch”) installieren

Wenn Sie auf einem Debian 9 Server (Codename “Stretch”) aktuellere Versionen von PHP (z.Bsp. PHP7.1) installieren möchten, benötigen Sie derzeit ergänzende Packetquellen.

PHP7.1 können Sie z.Bsp. auf diese Weise installieren (melden Sie sich für die Installation bitte als “root” an):

apt-get update
apt-get install ca-certificates apt-transport-https 
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list

Dem System wurde jetzt eine weitere Quelle für Installationspakete / Software hinzugefügt. Daher müssen die Pakete der Quellen jetzt frisch eingelesen werden:

apt-get update

Jetzt kann PHP V7.1 installiert werden:

apt-get install php7.1

Sollen weitere PHP Module gleich mit installiert werden (mySQL usw.), dann können diese in einem Rutsch installiert werden:

apt-get install php7.1 php7.1-mysql php7.1-xml php7.1-gd .... (usw.)

Möchten Sie PHP V7.2 installieren, dann ersetzen Sie die “7.1” in der vorherigen Installationszeile einfach durch “7.2”; bei PHP V7.3 bitte entsprechend.

09. Sep
Teaser

VirtualMin: Fehler “this system is not setup to use itself as a DNS server”

Wenn Sie bei einer Prüfung der Konfiguration (“Checking Configuration”) unter VirtualMin folgende Fehlermeldung erhalten:

Virtualmin is configured to setup DNS zones, but this system is not setup to use itself
as a DNS server. Either add 127.0.0.1 to the Features and Plugins or turn off the BIND
feature on the page.
.. your system is not ready for use by Virtualmin.

… dann kann Ihnen diese kurze Lösung vielleicht weiterhelfen:

Bearbeiten Sie die Daten “/etc/resolv.conf”:

nano /etc/resolv.conf

Fügen Sie folgende Zeile ein und speichern Sie die Datei:

nameserver 127.0.0.1

Start Sie die Prüfung in VirtualMin erneut und Sie werden folgende Prüfung angezeigt bekommen:

BIND DNS server is installed, and the system is configured to use it.
13. Dez 2018
Teaser

Linux: Installierte Pakete auf anderes System übernehmen

Wenn Sie unter Linux installierte Pakete von einem System auf ein anderes System übernehmen möchten, dann kann Ihnen dieser Artikel helfen.

Auf dem System, dessen Pakete Sie übernehmen möchten (der “Quelle”), führen Sie als Benutzer “root” (oder per “sudo”) bitte folgenden Befehl aus:

dpkg --get-selections > pakete.txt

Die durch den Befehl erstellte Datei “pakete.txt” kopieren Sie bitte auf das neue System (das “Ziel”).

Importieren Sie dort bitte die Pakete durch Ausführen der folgenden Befehle:

apt-get update
dpkg --clear-selections
dpkg --set-selections < pakete.txt
apt-get dselect-upgrade

Jetzt sollte Sie auf dem Ziel den gleichen Paketzustand wie auf der Quelle haben.

Bitte beachten Sie, dass evtl. Einstellungen durch diese Methode NICHT übernommen werden.

18. Nov 2018
Teaser

Sicherheit: NetData Port ändern

Da (zumindest derzeit) kein im Standard vorhandener Zugangsschutz (Passwort o.ä.) in Netdata vorhanden ist, wäre eine recht einfache Lösung die Verlagerung des WebGUI Ports. Das ist natürlich keine wirkliche Sicherheit und kein Schutz, kann aber Scanner (Port-Scanner) ggf. ablenken oder zumindest die breits Masse abhalten.

Öffnen Sie die Netdata Konfiguration:

nano /etc/netdata/netdata.conf

Im Bereich “[web]” finden Sie die Einstellung “default port”. Diese ist nach der Installation auf “19999” gesetzt:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        # default port = 19999

Entfernen Sie das “#” Zeichen am Anfang der Zeile und ändern Sie den Wert “19999” auf Ihren gewünschten Port ab. In diesem Beispiel wird “18888” genommen:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        default port = 18888

Beenden und speichern Sie die Änderungen (Strg + X).

Starten Sie den NetData Service neu:

systemctl restart netdata

Öffnen Sie Ihre NetData UI im Browser mit dem neuen Port, wobei Sie bitte “domain.de” durch Ihren Servernamen oder die Server-IP ersetzen:

http://domain.de:18888

Fertig.

Erhalten Sie die Fehlermeldung, dass diese Seite nicht verfügbar ist, dann prüfen Sie bitte auch Ihre Firewalleinstellungen. Auf dem Server können Sie die aktuellen Regeln der Firewall (z.Bsp. ipTables) auflisten:

iptables -L -n

Sollte der neue Port (hier 18888) nicht freigegeben sein, können Sie dies’ mit folgendem Befehl nachholen:

iptables -A INPUT -p tcp --dport 18888 -j ACCEPT

Die Änderung/Freigabe ist sofort nach EIngabe des Befehles durchgeführt.

17. Nov 2018
Teaser

mySQL (mariaDB) in Netdata einbinden

Wie Sie einen Netdata Service auf Ihrem Server installieren, haben wir Ihnen in unserem Beitrag “Netdata auf einem Debian Server installieren” gezeigt. In diesem Beitrag zeigen wir einen möglichen Weg, Analysedaten und Auslastungen Ihres mySQL (oder mariaDB) Servers auf der Netdata Seite anzuzeigen.

Das benötigte Python DB Modul wurde bereits installiert. Sollten Sie eine andere Installation benutzt haben, können Sie das Paket durch folgenden Befehl installieren; sollte es bereits vorhanden sein, dann erhalten Sie nur eine entsprechende Meldung:

apt-get install python-mysqldb

Erzwingen Sie den Start des mySQL Modules:

nano /etc/netdata/charts.d.conf

Fügen Sie folgende Zeile ein:

mysql=force

Speichern und beenden Sie die Datei mit “Strg + X”.

Erstellen (oder bearbeiten) Sie nun die Konfigurationsdatei für das NetData mySQL Modul:

nano /etc/netdata/mysql.conf
mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uUSERNAME -pPASSWORD"

Passen Sie dabei die Werte bitte an Ihren Datenbankserver an:

USERNAME = Benutzernamen, für die NetData-Verbindung
PASSWORD = Passwort für den Benutzer “USERNAME”

Sollte Ihr mySQL Server nicht lokal (= localhost = 127.0.0.1) laufen, dann passen Sie bitte auch die IP Adresse entsprechend an. Die Verbindung wird im Beispiel “local” benannt. Sie können den Namen ändern, indem Sie beide Zeile anpassen.

Beispiel für den Benutzer “root” mit dem Passwort “hallo123”:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

Wenn Sie mehrere Server oder unterschiedliche Benutzer gleichzeitg überwachen lassen möchten, dann erstellen Sie in dieser Datei die passenden Einträge.

Beispiel: Nebn dem Benutzer “root” (Verbindung mit dem Namen “local”) möchten Sie auch den Benutzer “demo” mit dem Passwort “passdemo” überwachen. Dieser Eintrag soll “demo1” heißen:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

mysql_cmds[demo1]="/usr/bin/mysql"
mysql_opts[demo1]="-h 127.0.0.1 -udemo -ppassdemo"

Starten Sie den Netdata-Service auf Ihrem Server neu. Dadurch werden die Einstellungen neu geladen:

systemctl restart netdata

Fertig.

Wenn Sie die Einstellungen in Netdata protokollieren (debuggen) möchten, dann hilft folgender Befehl in diesem Fall recht gut. Dieser Befehl zeigt Ihnen auch Fehler (Verbindungsprobleme, fehlende Dateien, usw.) für NetData an:

/usr/libexec/netdata/plugins.d/charts.d.plugin debug 10 mysql
16. Nov 2018
Teaser

Netdata auf einem Debian Server installieren

Sicherheitshinweis:
Bitte beachten Sie, dass (derzeit) der Netdata Port (19999) nicht per Passwort o.ä. geschützt ist. Jeder (!) kann daher auf Ihrem Server die Netdata Seite aufrufen und (wie Sie) nutzen !

Voraussetzungen installieren:

apt-get install git zlib1g-dev uuid-dev libmnl-dev pkg-config curl gcc autogen autoconf autoconf-archive make automake netcat python python-yaml nodejs lm-sensors python-psycopg2 python-mysqldb

Aktuelle Netdata Sourcen von Github kopieren:

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

In das Verzeichnis wechseln:

cd ~/netdata

Die Netdata Installation starten:

./netdata-installer.sh

Ihnen wird eine Übersicht mit den Installationspfaden angezeigt:

  ^
  |.-.   .-.   .-.   .-.   .  netdata
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system >

Wenn Sie einverstanden sind, dann drücken Sie “Enter” … ansonsten können Sie mit “Strg+C” hier die Installtion abbrechen.

Sobald die Installation beendet ist (meist nach ca. 1-2 Minuten, je nach Serverleistung), erhalten Sie folgende Anzeige:

If you want to have version update check, please re-install it
following the procedure in:

https://github.com/netdata/netdata/wiki/Installation

 --- Check apps.plugin ---
 --- Generate netdata-uninstaller.sh ---
 --- Basic netdata instructions ---

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata

Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:

sudo ln -fs /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater

 --- We are done! ---

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

Ab jetzt können Sie die Oberfläche von Netdata in Ihrem Browser öffnen. Ersetzen Sie dafür im folgenden Befehl “domain.de” durch Ihren Servernamen oder Ihre Server-IP:

http://domain.de:19999

Bitte beachten Sie, dass SSL Verbindungen (derzeit) nicht bzw. nur über Umwege möglich sind. Aufrufe per “https://…” führen daher zu einer Fehlermeldung.

Folgende Befehle können Sie auch im späteren Einsatz von Netdata benötigen:

Netdata starten

systemctl start netdata

Netdata stoppen

systemctl stop netdata

Den aktuellen Netdata Status (läuft, gestoppt, ggf. Fehler) anzeigen

systemctl status netdata

Updates installieren

cd ~/netdata
git pull
./netdata-installer.sh

Netdata deinstallieren

cd ~/netdata
./netdata-uninstaller.sh --force