Hintergrund
Ich erinnere mich, dass es ein wunderschöner Winterabend war, als plötzlich klar wurde, dass es ein Problem mit Kerio Control gab.
Kerio Control konnte die Änderungen an der Konfiguration nicht schreiben und es geschah eine Art Teufelei!
Die Diagnose war schnell und genau - auf der Festplatte des Kerio Control-Systems war nicht mehr genügend Speicherplatz vorhanden.
Der Grund, das große alte Protokoll.
Es gab mehrere Lösungen:
- Protokolle löschen
- Erhöhen Sie den Speicherplatz des Systems
- Fügen Sie zusätzlichen Datenträger für Protokolle hinzu
Letzteres schien am logischsten.
In der Tat suchen wir nicht nach einfachen Wegen, aber wir versuchen, die Arbeit gewissenhaft zu erledigen, damit dies nicht wieder vorkommt und nichts einen weiteren wunderbaren Abend ruinieren kann.
Ein erfahrener Leser des Artikels wird sofort sagen - aber Kerio selbst kann die Protokolle bereinigen und die Protokolle in einem genau definierten Zeitrahmen speichern.
Ja, das kann er, aber das Protokoll wurde aus dem auf dem Server angegebenen Zeitintervall in Volumen ausgegeben. Wie gehe ich mit dieser Situation um?
Entscheidung
Kerio Control Virtual Appliance ist eine virtuelle Maschine, die sich auf einer Festplatte befindet. Die Lösung schien sehr einfach zu sein:
- Fügen Sie dem Hypervisor eine zusätzliche virtuelle Festplatte hinzu
- Machen Sie ext4 oder ext3 Markup
- Fügen Sie fstab einen neuen Festplatten-Mount hinzu
- Suchen Sie die Kerio-Konfigurationsdatei und geben Sie einen neuen Pfad für die Protokolle an.
ABER NEIN!
Beginnend mit "Add new disk mount to fstab" ist ein Fehler aufgetreten.
Wie sich herausstellte, kümmerte sich Kerio nicht um fstab.
Die Festplatte wurde perfekt manuell montiert, aber die automatische wollte nach dem Start nichts.
Nachdem ich lange durch Dateiverzeichnisse gescrollt hatte , um nach etwas Unbekanntem zu suchen, wurde meine Aufmerksamkeit von der 05basefs- Datei erregt , nämlich, dass mir die folgenden Inschriften wirklich gefallen haben - base und fs , aber 05 war überhaupt nicht interessiert. Nachdem ich den Inhalt überprüft hatte, stellte ich fest, dass das Dateisystem hier gemountet ist.
Dann schien alles einfach, für eine lange Zeit gibt es eine Datei winroute.CFGWenn alle Einstellungen dort gespeichert sind, können Sie dort auch den Pfad zum Verzeichnis mit den Protokollen angeben.
Aber wie sich herausstellte, habe ich mich hier geirrt. Kerio achtet auf neue Pfade in der Konfigurationsdatei, aber etwas funktioniert nicht. Das Protokoll nach dem Ändern der Pfade führt zu Fehlern oder zeigt überhaupt nichts an.
Okay, lassen Sie uns eine neue Festplatte am aktuellen Speicherort des Protokolls bereitstellen!
Implementierung
Nach alledem ist die Implementierung sehr einfach.
Zuerst müssen wir eine Verbindung zum Kerio Control-Terminal herstellen. Der einfachste Weg, dies zu tun, ist die Verwendung von SSH.
Aktivieren Sie vorübergehend den SSH-Zugriff.
Dazu müssen Sie sich im Admin-Bereich anmelden und mit gedrückter Umschalttaste zum Abschnitt "Systemstatus" wechseln.
Wenn Sie alles richtig gemacht haben, wird unten neben der Schaltfläche zum Neustart des Servers eine Schaltfläche zur SSH-Aktivierung angezeigt:
Aktivieren Sie SSH vorübergehend (vergessen Sie nicht, es nach dem Einrichten zu deaktivieren!).
Nach dem Aktivieren von SSH können Sie über den SSH-Client eine Verbindung zum Server herstellen.
Es ist besser, einen Client zu verwenden, der Dateien sofort auf den Server kopieren kann. Ich werde später erklären, warum.
Also, was wir jetzt haben:
- Wir haben eine neue Festplatte erstellt und mit dem Server verbunden
- Markiert es in ext4 oder ext3
- SSH aktiviert und mit dem Server verbunden
Als nächstes müssen wir die 05basefs- Datei reparieren, die sich im folgenden Pfad befindet : \ Etc \ boxrc.d \ 05basefs .
Bevor Sie es bearbeiten, müssen Sie jedoch noch zwei weitere Schritte ausführen.
Der erste besteht darin, den Entwickler der neuen Festplatte für Protokolle herauszufinden.
Um den Namen der Festplatte herauszufinden , führen Sie lsblk aus und rufen Sie Folgendes ab
:
- SDA - Systemdiskette
- sda1 - Bootloader
- sda2 und sda3 - aktuelle und anscheinend frühere Version von Kerio
- sda4 - Var hier Konfigurations- und Standardprotokolle
- SDB ist unsere neue Festplatte
Für den Fall, dass wir die aktuellen Protokolle speichern müssen, müssen wir die SDB-Festplatte vorübergehend in einem leeren Verzeichnis bereitstellen und den Inhalt von / var / winroute / logs auf die bereitgestellte SDB übertragen.
Hängen Sie nach der Übertragung die SDB aus.
Die zweite Möglichkeit besteht darin, dem Dateisystem das Ändern von Systemdateien zu ermöglichen.
Kerio stellt die Systemfestplatte bereit, auf der sich 05basefs mit schreibgeschützten Rechten befindet.
um zu sehen, wo und wie wir Mount Premoted durchführen
Sie können sehen, dass sich / dev / sda2 im RO- Status befindet und sich hier die aktuelle Version von Kerio befindet und 05basefs ebenfalls vorhanden ist. Aktivieren Sie vorübergehend das
Schreiben in / dev / sda2 mit dem Befehl mount -o rw. remount / dev / sda2
Jetzt können Sie die 05basefs-Datei reparieren. Ich persönlich bevorzuge es, die bereits fixierte Datei zu kopieren. Dies ist praktisch, da Sie nach einmaligem Aktualisieren den Dateiaustausch jedes Mal nach dem Aktualisieren der Kerio-Version wiederholen müssen, da die ursprüngliche 05basefs-Datei mit der neuen Version wiederhergestellt wird.
Sie können die Datei auch mit dem vi-Editor ändern - sie befindet sich im System.
Ändern Sie 05basefs wie folgt
#!/bin/sh
# $Revision: 1.13 $
case "$1" in
start)
grep -q /tmp /proc/mounts || mount -t tmpfs tmp /tmp
mkdir -p /tmp/run
root=$(grep " / " /proc/mounts | grep -v rootfs | sed 's/ .*//')
DATA=${root%[23]}4
BOOT=${root%[23]}1
modprobe ext3
mount -o ro -t ext3 $BOOT /boot
if [ ! -z "$DATA" ] && ! mount -o data=ordered $DATA /var 2>/dev/null; then
echo "Creating new data partition..."
#mkfs.nilfs2 -b 1024 $DATA
mkfs.ext3 -b 4096 -q $DATA 2>&1
tune2fs -c 0 -i 0 -r 0 -E stride=512,stripe-width=512 $DATA
fsck -p $DATA
mount -o data=ordered $DATA /var
[ -d /var.default ] && cp -a /var.default/* /var
elif [ -f "/var.default/update.list" ]; then
for i in `cat /var.default/update.list`; do
[ -e "/var.default/$i" -o -h "/var.default/$i" ] || continue
! [ -e "/var/$i" -o -h "/var/$i" ] || continue
mkdir -p $(dirname "/var/$i")
cp -a "/var.default/$i" "/var/$i"
done
fi
mount -t ext4 /dev/sdb /var/winroute/logs
exit 0
;;
stop)
echo "Umounting data partition..."
for i in $(seq 1 10); do
if fuser -sm /var; then
sleep 1
else
break
fi
done
fuser -kms /var/winroute/logs
umount /var/winroute/logs
fuser -kms /var
umount /var
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
Erläuterungen zu Änderungen in der Datei
mount -t ext4 / dev / sdb / var / winroute / logs mount
sdb auf dem ursprünglichen Protokollpfad / var / winroute / logs
Fixiereinheit -kms / var / winroute / logs
umount / var / winroute / logs
Stellt die SDB für die korrekte Bereitstellung ein Fahren Sie den Server herunter.
Jetzt kehren wir mit dem Befehl mount -o r, remount / dev / sda2 in den ursprünglichen Zustand von sda2 zurück.
Nach dem Neustart des Servers schreibt Kerio Protokolle auf unsere dedizierte SDB-Festplatte.
Krücke
(Schließlich können Sie nicht auf eine Krücke verzichten.)
Wie bereits erwähnt, kehrt die 05basefs-Datei bei Aktualisierung der Kerio-Version in ihren ursprünglichen Zustand zurück und Kerio beginnt erneut, Protokolle in sda4 zu schreiben. Entlang des Pfades / var / winroute / logs.
Damit Kerio das Protokoll weiterhin in SDB schreiben kann, müssen Sie den Vorgang zum Ersetzen der Datei wiederholen.