قرص LOG منفصل للتحكم كيريو

يبدو أنه كان من الأسهل وضع السجلات على قرص منفصل ، لكن لا ، هناك بعض الحيل.







خلفية



أتذكر أنها كانت أمسية شتوية جميلة ، عندما أصبح من الواضح فجأة أن هناك مشكلة في كيريو كونترول.

لم يتمكن كيريو كونترول من كتابة التغييرات على التكوين وبشكل عام كان هناك نوع من الشيطان!



كان التشخيص سريعًا ودقيقًا - نفدت مساحة قرص نظام Kerio Control.



السبب ، السجل القديم الكبير.



كانت هناك عدة حلول:



  • سجلات واضحة
  • زيادة مساحة قرص النظام
  • أضف قرصًا إضافيًا للسجلات


بدا الأخير هو الأكثر منطقية.



في الواقع ، نحن لا نبحث عن طرق سهلة ، لكننا نحاول القيام بالمهمة بضمير حي ، حتى لا يحدث هذا مرة أخرى ولا شيء يمكن أن يفسد أمسية رائعة أخرى.



سيقول القارئ المتطور للمقال على الفور - لكن دع كيريو نفسه يكون قادرًا على تنظيف السجلات وتخزين السجلات في إطار زمني محدد جيدًا.

نعم ، يمكنه ذلك ، لكن السجل خرج في الحجم من الفاصل الزمني المحدد على الخادم. كيف تتعامل مع هذا الوضع؟



القرار



Kerio Control Virtual Appliance عبارة عن آلة افتراضية تعمل على قرص واحد ، بدا الحل بسيطًا جدًا:



  • أضف قرصًا افتراضيًا إضافيًا في برنامج Hypervisor
  • قم بعمل ترميز ext4 أو ext3
  • إضافة تحميل قرص جديد إلى fstab
  • ابحث عن ملف تهيئة Kerio وحدد مسارًا جديدًا للسجلات.


لكن لا!



حدث خطأ ما بدءًا من "إضافة قرص جديد إلى fstab".



كما اتضح ، لم يكن كيريو مهتمًا بـ fstab.



تم تثبيت القرص يدويًا بشكل مثالي ، لكن القرص التلقائي لم يرغب في شيء بعد الإطلاق.



بعد التجوال الطويل في أدلة الملفات بحثًا عن شيء غير معروف ، جذب انتباهي ملف 05basefs ، أي أنني أحببت حقًا النقوش التالية - base و fs ، لكن 05 لم تكن مهتمًا على الإطلاق. بعد فحص محتوياته ، أدركت أن نظام الملفات مثبت هنا.



ثم بدا كل شيء بسيطًا ، لفترة طويلة كان هناك ملف winroute.CFG، يتم تخزين جميع الإعدادات هناك ، يمكنك أيضًا تحديد المسار إلى الدليل مع السجلات هناك.



لكن كما اتضح ، كنت مخطئًا هنا ، يولي كيريو اهتمامًا لمسارات جديدة في ملف التكوين ، لكن شيئًا ما لا يعمل ، السجل بعد تغيير المسارات يُظهر أخطاء أو لا يعرض أي شيء على الإطلاق.



حسنًا ، حسنًا ، لنقم بتركيب قرص جديد في الموقع الحالي للسجل!



التنفيذ



بعد كل ما سبق ، فإن التنفيذ بسيط للغاية.



أولاً ، نحتاج إلى الاتصال بمحطة التحكم Kerio Control ، وأسهل طريقة للقيام بذلك هي استخدام SSH.



تفعيل وصول SSH مؤقتًا.



للقيام بذلك ، تحتاج إلى تسجيل الدخول إلى لوحة الإدارة والانتقال إلى قسم "حالة النظام" أثناء الضغط باستمرار على مفتاح Shift.







إذا قمت بكل شيء بشكل صحيح ، فسيظهر زر تنشيط SSH في الجزء السفلي بجوار زر إعادة تشغيل الخادم:







تنشيط SSH مؤقتًا (لا تنس تعطيله بعد الإعداد!)

بعد تمكين SSH ، يمكنك الاتصال بالخادم باستخدام عميل SSH.



من الأفضل استخدام عميل يمكنه نسخ الملفات على الفور إلى الخادم ، وسأشرح السبب لاحقًا.



إذن ما لدينا الآن:



  • قمنا بإنشاء قرص جديد وتوصيله بالخادم
  • تم وضع علامة عليه في ext4 أو ext3
  • تفعيل SSH والاتصال بالخادم


بعد ذلك ، نحتاج إلى إصلاح ملف 05basefs الموجود في المسار التالي . \ Etc \ boxrc.d \ 05basefs .



ولكن قبل تعديله ، عليك القيام بأمرين آخرين.



الأول هو اكتشاف مطور القرص الجديد للسجلات. من

أجل معرفة اسم القرص ، نفّذ lsblk واحصل على شيء مثل







المكان:

  • SDA - قرص النظام
  • sda1 - محمل الإقلاع
  • sda2 و sda3 - الإصدار الحالي والسابق على ما يبدو من كيريو
  • sda4 - فار هنا التكوين والسجلات الافتراضية
  • SDB هو قرصنا الجديد


في حالة احتياجنا إلى حفظ السجلات الحالية ، نحتاج إلى تحميل قرص sdb مؤقتًا في أي دليل فارغ ونقل محتويات / var / winroute / logs إلى sdb المركب.



بعد النقل ، قم بإلغاء تحميل sdb.



والثاني هو السماح لنظام الملفات بتغيير ملفات النظام يقوم

Kerio بتثبيت قرص النظام حيث يوجد 05basefs بحقوق للقراءة فقط.



لمعرفة مكان وكيفية تنفيذ mount premoted







يمكنك أن ترى أن / dev / sda2 في حالة RO ، وهذا هو المكان الذي يوجد فيه الإصدار الحالي من Kerio و 05basefs موجود أيضًا. قم مؤقتًا بتمكين



الكتابة إلى / dev / sda2 باستخدام الأمر mount -o rw ، إعادة تحميل / ديف / sda2

الآن ، يمكنك إصلاح ملف 05basefs ، وأنا شخصياً أفضل نسخ الملف الذي تم تصحيحه بالفعل ، وهذا مناسب ، نظرًا لأنه بعد القيام بذلك مرة واحدة ، سيتعين عليك تكرار إجراء استبدال الملف في كل مرة بعد تحديث إصدار Kerio ، نظرًا لاستعادة النسخة الأصلية 05basefs بالإصدار الجديد.



يمكنك أيضًا استخدام محرر vi لتغيير الملف - فهو موجود في النظام.



قم بتغيير 05basefs على النحو التالي



#!/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




شرح التغييرات في ملف



mount -t ext4 / dev / sdb / var / winroute / logs

يتصاعد sdb إلى مسار السجل الأصلي / var /



winroute /

logs fuser -kms / var / winroute / logs umount / var /

winroute / logs Unmounts sdb للتصحيح اغلاق الخادم.



الآن سنعيد sda2 إلى حالته الأصلية باستخدام الأمر mount -o r ، remount / dev / sda2



بعد إعادة تشغيل الخادم ، سيكتب Kerio السجلات إلى قرص SDB المخصص لدينا.



عكاز



(بعد كل شيء ، لا يمكنك الاستغناء عن عكاز)



كما ذكرت سابقًا ، إذا تم تحديث إصدار Kerio ، فسيعود ملف 05basefs إلى حالته الأصلية ، سيبدأ Kerio في كتابة السجلات إلى sda4 مرة أخرى. على طول المسار / var / winroute / logs.



لكي يواصل Kerio كتابة السجل إلى SDB ، يجب عليك تكرار إجراء استبدال الملف.



All Articles