image
 HOME 一覧


2015/03/09 rsyslogとapacheのログをRAMDISKに書く方法(rasbian)

Raspberry Pi(ラズベリーパイ)をサーバとして使用している場合、SDメモリカードにログ等、常時書き込みを続けるとすぐにSDメモリカードの寿命が来てしまう(実績あり)ので、rsyslogとapacheのログをRAMDISKに書くようにしました。OSはrasbianです。

RAMDISKは8Mバイトとし、RAMDISKに6Mバイト以上書き込まれたらアーカイブ化してストレージ(SDメモリ)に一括して書くようにしました。
/ramdisk ・・・ RAMDISKの領域(8Mバイト)
/ramdisk_bak ・・・ RAMDISKのバックアップ領域(SDメモリ)

1.起動時の設定

OS起動時にRAMDISKを作成するよう、rcスクリプトにRAMDISKのマウント処理を追加する。

sudo vi /etc/rc.local

# exitの前に以下を追加
mount -t tmpfs -o size=8m /dev/shm /ramdisk #ramdisk作成
sh /home/xxxx/logstart.sh #ログ開始スクリプトを呼ぶ


2.rsyslogのログ書き込み先を/ramdiskに変更

sudo vi /etc/rsyslog.conf
/var を /ramdisk に一括置換

3.apacheのログ書き込み先を/ramdiskに変更

sudo vi /etc/apache2/envvars
#export APACHE_LOG_DIR=/var/log/apache2$SUFFIX  コメントアウト
export APACHE_LOG_DIR=/ramdisk/log_apache2$SUFFIX # /ramdisk配下を使用する

4.ログ開始スクリプトの作成

vi /home/xxxx/logstart.sh

<logstart.shの内容>
# apache用のログDIR作成
mkdir -p /ramdisk/log_apache2
# /var 配下に作成されていたDIRを作成(rsyslogが使用)
mkdir -p /ramdisk/log/apt
mkdir -p /ramdisk/log/ConsoleKit
mkdir -p /ramdisk/log/fsck
mkdir -p /ramdisk/log/news
mkdir -p /ramdisk/log/ntpstats
mkdir -p /ramdisk/log/samba
# rsyslogが使用する
mkdir -p /ramdisk/spool

# rsyslogとapacheに作成したDIRにログを書くよう指示
/etc/init.d/rsyslog rotate
/etc/init.d/apache2 reload


5.ログローテートスクリプトの作成

vi /home/xxxx/logrotate.sh

<logrotate.shの内容>
#
siz=`du -sm /ramdisk | cut -f1`
#echo $siz
if [ $siz -ge 6 ]; then
echo "6M orver"
tar zcvf /ramdisk_bak/`date +%Y%m%d%H%M`.tgz /ramdisk
rm -r /ramdisk/*
sh /home/xxxx/logstart.sh
fi

6.ログローテートスクリプトを毎分実行するようcronに登録

crontab -e

* * * * * sudo sh /home/xxxx/logrotate.sh

7.OSを再起動して動作確認

●RAMDISKマウントの確認
df -h

Filesystem Size Used Avail Use% Mounted on
rootfs 15G 4.5G 9.4G 33% /
/dev/root 15G 4.5G 9.4G 33% /
devtmpfs 215M 0 215M 0% /dev
tmpfs 44M 232K 44M 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 88M 0 88M 0% /run/shm
/dev/mmcblk0p1 56M 9.7M 47M 18% /boot
/run/shm 8.0M 4.9M 3.2M 61% /ramdisk ★RAMDISKが作成された

●/ramdisk配下の各ログに書かれていることを確認
tail -f /ramdisk/log_apache2/access.log など。

●RAMDISKに6Mバイト以上書き込まれたらアーカイブ化してDISK(SDメモリ)に一括して書き込んでいることの確認
ls -ltr /ramdisk_bak
-rw-r--r-- 1 root root 278805 Mar 6 13:37 201503061337.tgz
-rw-r--r-- 1 root root 305039 Mar 6 23:37 201503062337.tgz
-rw-r--r-- 1 root root 322805 Mar 7 11:11 201503071111.tgz
-rw-r--r-- 1 root root 318820 Mar 7 22:11 201503072211.tgz
-rw-r--r-- 1 root root 340872 Mar 8 10:55 201503081055.tgz
-rw-r--r-- 1 root root 320678 Mar 8 20:59 201503082059.tgz



この記事のURL


★運用終了★Raspberry PiでWebサーバ運用してました!(TOPページ)
2013/01/25 Raspberry Pi1でWebサーバ運用してました!(2013年1月〜2018年2月)
2013/09/23 Raspberry Pi1 Webサーバ 障害報告<運用ミス+USB充電器の故障>
2014/01/02 Raspberry Pi1 Webサーバ 2013年節電結果報告
2014/02/16 Raspberry Pi1 Webサーバ 障害報告<SDメモリカードの故障>
2014/04/05 Raspberry Pi1 Webサーバ 障害報告<OS障害>
2014/04/12 OpenSSL脆弱性対応実施報告
2014/04/28 停電中もサービス継続できました
2014/10/13 稼働状況
2014/11/08 川久保商店サイトリニューアル
2014/11/16 Raspberry Pi1 Webサーバ 障害報告<SDメモリカードの故障2回目>
2014/11/18 アクセス障害報告
2015/03/09 rsyslogとapacheのログをRAMDISKに書く方法(rasbian)
2016/08/02 アクセス障害報告
2016/08/07 Raspberry Pi1 Webサーバ 障害報告<DNSサーバ・メールサーバ障害>
2016/11/13 Raspberry Pi1 Webサーバ 障害報告<SDメモリカードの故障3回目>


前へ  次へ  HOME


Copyright(C) 2013-2020 ドンタコスとゆかいな仲間たち