システム開発ブログ/ システムソリューション部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

Apache-Tomcat ログローテーション

岡部
岡部 (2009年9月 1日 11:08)
システムソリューション部

先日、私が担当したプロジェクトにて、
Solaris10環境のApache-Tomcatでログローテーション処理を実装しました。

※ログローテーションとは
 ログファイルは放置しておくと時間と共に肥大化するので、
 ハードディスクの空き容量を使いきってしまう可能性があります。
 それを防ぐために指定されたタイミングでログファイルのバックアップを取り、
 新しいログファイルを作成してログのローテーションを行います。

ローテーション方法を以下に記述します。
<Tomcat / catalina.outをローテーションする。>
 VI Editorでcatalina.shを編集します。
 以下のように「#」でコメントアウト、そして「|」以降を追記します。
 
↓ここから――――――――――――――――――――――――――――――――――――――
# touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
echo "Using Security Manager"
shift
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Djava.security.manager \
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
org.apache.catalina.startup.Bootstrap "$@" start \
| /usr/apache2/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d 86400 &
# >> "$CATALINA_OUT" 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID
fi
else
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
org.apache.catalina.startup.Bootstrap "$@" start \
| /usr/apache2/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d 86400 &
# >> "$CATALINA_OUT" 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID
fi
fi
――――――――――――――――――――――――――――――――――――――
↑ここまで

 注意していただきたいのは、不用意に改行を入れて空白行を作るとエラーが起きてしまうことです。
 修正後、Apache-Tomcatを再起動して完了です。
 以上の記述で「catalina.out.20090421」というように
 1日ごとに新しいログファイルを作成してローテーションを行います。
 
続いては、Apacheのログローテーションです。
<Apache ログローテーションについて>
 VI Editorでhttpd.confを編集します。
 以下のように「#」でコメントアウトし、その下に追記します。
 
↓ここから――――――――――――――――――――――――――――――――――――――
#CustomLog /var/apache2/logs/access_log common
CustomLog "|\"/usr/apache2/bin/rotatelogs\" \"/var/apache2/logs/access_log.%Y-%m-%d\" 86400" common
――――――――――――――――――――――――――――――――――――――
↑ここまで

↓ここから――――――――――――――――――――――――――――――――――――――
#ErrorLog /var/apache2/logs/error_log
ErrorLog "|\"/usr/apache2/bin/rotatelogs\" \"/var/apache2/logs/error_log.%Y-%m-%d\" 86400"
――――――――――――――――――――――――――――――――――――――
↑ここまで

※TomcatやApacheにも記述される"86400"とはログローテーションを行う間隔を指定します。
 "86400"は 60秒(1分)×60分(1時間)×24時間(1日)を計算すると86400になります。
 なので1日の秒数を表し1日ごとに新しいLogファイルを生成するということになります。
 "86400"に限らず任意の秒数を指定できます。

 修正後、Apache-Tomcatを再起動して完了です。
 以上の記述で、access_log、error_log共に
 「access_log.20090421」、「error_log.20090421」というように
 1日ごとに新しいログファイルを作成してローテーションを行います。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。