バックグラウンド
ケリオコントロールに問題があることが突然明らかになったとき、それは美しい冬の夜だったのを覚えています。
Kerio Controlは構成の変更を書き込むことができず、ある種の悪魔が起こっていました!
診断は迅速かつ正確でした-KerioControlシステムディスクのスペースが不足しました。
理由は、大きな古いログです。
いくつかの解決策がありました:
- ログをクリアする
- システムのディスク容量を増やす
- ログ用のディスクを追加します
後者が最も論理的であるように思われました。
確かに、私たちは簡単な方法を探していませんが、これが二度と起こらず、別の素晴らしい夜を台無しにすることがないように、私たちは誠実に仕事をしようとしています。
記事の洗練された読者はすぐに言うでしょう-しかし、Kerio自体がログをクリーンアップし、明確に定義された時間枠でログを保存できるようにします。
はい、できますが、サーバーで指定された時間間隔からログが大量に出力されました。この状況にどのように対処しますか?
決定
Kerio Control Virtual Applianceは、1つのディスク上に存在する仮想マシンであり、ソリューションは非常に単純に見えました。
- ハイパーバイザーに仮想ディスクを追加します
- ext4またはext3マークアップを作成する
- fstabに新しいディスクマウントを追加します
- Kerio構成ファイルを見つけて、ログの新しいパスを指定します。
しかし、いいえ!
「新しいディスクマウントをfstabに追加する」から始めて、問題が発生しました。
結局のところ、ケリオはfstabを気にしませんでした。
ディスクは手動で完全にマウントされましたが、自動ディスクは起動後に何かを必要としませんでした。
長い何か未知の検索では、ファイルのディレクトリをさまよった後、私の注意を惹かれた05basefsのファイル、つまり、私は本当に、次の碑文言っています-ベースとFSを、しかし05だったすべての利害ではありません。その内容を調べてみると、ファイルシステムがここにマウントされていることがわかりました。
その後、すべてが単純に見えました。長い間、ファイルwinroute.CFGがあります。、すべての設定がそこに保存されます。ログを含むディレクトリへのパスを指定することもできます。
しかし、結局のところ、私はここで間違っていました。Kerioは構成ファイルの新しいパスに注意を払っていますが、何かが機能しません。パスを変更した後のログでエラーが発生するか、何も表示されません。
さて、さて、ログの現在の場所に新しいディスクをマウントしましょう!
実装
上記のすべての後、実装は非常に簡単です。
まず、Kerio Controlターミナルに接続する必要があります。これを行う最も簡単な方法は、SSHを使用することです。
SSHアクセスを一時的に有効にします。
これを行うには、管理パネルにログインし、Shiftキーを押しながら[システムステータス]セクションに移動する必要があります。
すべてが正しく行われると、SSHアクティベーションボタンがサーバー再起動ボタンの横の下部に表示されます。SSHを
一時的にアクティベートします(セットアップ後に無効にすることを忘れないでください)。SSHを有効にした後
、SSHクライアントを使用してサーバーに接続できます。
ファイルをサーバーにすぐにコピーできるクライアントを使用することをお勧めします。理由については後で説明します。
だから私たちが今持っているもの:
- 新しいディスクを作成してサーバーに接続しました
- ext4またはext3でマークアップ
- SSHをアクティブ化し、サーバーに接続しました
次に、次のパスにある05basefsファイルを修正する必要があります。\ Etc \ boxrc.d \ 05basefs。
ただし、編集する前に、さらに2つのことを行う必要があります。
1つ目は、ログ用の新しいディスクの開発者
を見つけることです。ディスクの名前を見つけるには、lsblkを実行して、次のようなものを取得します
。
- SDA-システムディスク
- sda1-ブートローダー
- sda2およびsda3-Kerioの現在および明らかに以前のバージョン
- sda4-Var hereconfigおよびdefaultlogs
- SDBは私たちの新しいディスクです
現在のログを保存する必要がある場合は、sdbディスクを空のディレクトリに一時的にマウントし、/ var / winroute / logsの内容をマウントされたsdbに転送する必要があります。
転送後、sdbをアンマウントします。
2つ目は、ファイルシステムがシステムファイルを変更できるようにすることです
。Kerioは、05basefsが配置されているシステムディスクを読み取り専用の権限でマウントします。マウント
プリモットを実行する場所と方法を 確認するには/ dev / sda2がRO状態にあり、Kerioの現在のバージョンがあり、05basefsもそこにある ことがわかります.mount-orwコマンドを使用して/ dev / sda2への書き込みを一時的に有効にします。再マウント/ dev / sda2
これで、05basefsファイルを個人的に修正できます。修正済みのファイルをコピーすることをお勧めします。これを一度実行すると、元の05basefsが新しいバージョンで復元されるため、Kerioバージョンを更新した後、毎回ファイル置換手順を繰り返す必要があるため、これは便利です。
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 /
logsfuser -kms / var / winroute / logs
umount / var / winroute / logssdb
を正しくアンマウントしますサーバーをシャットダウンします。
ここで、コマンドmount-or®、remount / dev / sda2を使用してsda2を元の状態に戻し
ます。サーバーが再起動した後、Kerioは専用のSDBディスクにログを書き込みます。
松葉杖
(結局のところ、
クラッチなしでは実行できません)前述したように、Kerioバージョンが更新されると、05basefsファイルは元の状態に戻り、Kerioは再びsda4へのログの書き込みを開始します。パスに沿って/ var / winroute / logs。
KerioがSDBへのログの書き込みを続行するには、ファイル置換手順を繰り返す必要があります。