質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

3回答

20065閲覧

logrotateが動きません。

Kimsehwa

総合スコア312

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

1クリップ

投稿2015/08/17 11:14

logrotateがいつのまにか止まってます。
去年までは正常にうごいて特に設定をいじってないです。

そして今日テストのため
手動でlogrotate -f /etc/logrotate.d/apache2を実施してロテートされました。
つまりこれは設定上は問題ないということですね、、

この場合、何が原因でlogrotateが動かないかわかるログがありますか?
他にトラブルシューティングできるポイントがあれば教えていただきたいです。

vim /etc/logrotate.d/apache2の設定

/var/log/apache2/*.log { weekly missingok rotate 12 dateext compress notifempty create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }
cat /var/lib/logrotate/status | grep apache2 "/var/log/apache2/access.log" 2015-8-17 "/var/log/apache2/other_vhosts_access.log" 2011-6-11 "/var/log/apache2/error.log" 2015-8-17

しらばらくrotateされてなかったのがわかります。

/var/log/apacheの下

-rw-r----- 1 root adm 2796685 2014-04-20 06:48 access.log-20140420.gz -rw-r----- 1 root adm 2639314 2014-04-27 06:50 access.log-20140427.gz -rw-r----- 1 root adm 2315872 2014-05-04 06:46 access.log-20140504.gz -rw-r----- 1 root adm 2105010 2014-05-11 06:49 access.log-20140511.gz -rw-r----- 1 root adm 2568192 2014-05-18 06:35 access.log-20140518.gz -rw-r----- 1 root adm 2661785 2014-05-25 06:48 access.log-20140525.gz -rw-r----- 1 root adm 1812241 2014-06-01 06:37 access.log-20140601.gz -rw-r----- 1 root adm 1770843 2014-06-08 06:26 access.log-20140608.gz -rw-r----- 1 root adm 1738143 2014-06-15 06:37 access.log-20140615.gz -rw-r----- 1 root adm 1736142 2014-06-22 06:43 access.log-20140622.gz -rw-r----- 1 root adm 1732077 2014-06-29 06:35 access.log-20140629.gz -rw-r--r-- 1 root adm 4506 2015-08-17 11:04 access.log-20150817.gz -rw-r----- 1 root adm 1248459 2015-08-17 20:02 access_log

2014年から
logrotateはまったく動いてなかったです。
8/17日の方は僕が手動実行して作られたものです。

logrotateするのはどのプロセスがやるのか??
多分cronじゃないですか?
cronプロセスも生きてます。

sudo service cron status
cron start/running, process 1041

僕はここまでしか調査ができませんでした。
これ以上なんで動いてないか調査できる方法がありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

いろいろとご事情はあったのでしょうが、本気で原因を切り分けたいのであれば、ログを削除しない方が良かったですね…
ログの内容そのもの(何らかのエラーが出ていなかったかとか、特定の時間帯にログ出力が集中あるいは逆に全く出力されていないという状況がなかったか、など)が原因特定のヒントになることも多いので。

ところで、サーバー自体は Kimsehwaさん ご自身が個人的に管理されているものですか?それとも管理者は別にいらっしゃるのでしょうか?
オンプレミスですか、それともレンタルサーバーでしょうか?もしレンタルサーバーなら、専用サーバーですか、それともVPS、あるいは共用サーバーでしょうか?

設定やサーバーの状態が全く変わらないのにシステムの挙動が変わるということは無いので、ご自身の把握していないところで何らかの変更があったはずなのですが、調査の範囲を限定する上でこれら『環境』についての情報が重要になってきます。

それはさておき、これは単なる思いつきレベルですが…

  • サーバーの運用が変わり、ちょうどログローテーションの実施時間帯にサーバーがサービス停止するようになったということはないですか?

# weekly と設定されているので、デフォルト設定のままであれば日曜日の早朝にローテーションされるはずですが、その時間帯にメンテナンスのために再起動を実施するサーバーもあります。
(参考1)グローテーション(logrotate)を使ってみる

  • ログサイズが想定以上に大きくなり、(ローテーション動作自体は実施されていたが)gzipでの圧縮に失敗していただけということはありませんか?

# 環境によりますが、gzipは 2GB 超のファイルに未対応である場合があります。
(参考2)gzip 高機能なファイル圧縮・伸長ツール (gunzip)

  • 何らかの理由でログ出力自体に失敗していたということはないですか?

# notifempty と設定されているので、ログ出力自体に失敗してログが空の時期があった場合、その期間はローテーションされません。

ちなみに、(参考1)に説明されているように、設定そのものに問題がないかどうかを確認するには
logrotate -dv /etc/logrotate.d/apache2
を実行してみれば良いです。

その他、確認のために設定を一時的に変更してみるという選択肢もあると思います。

  • weekly → daily に変更してみる
  • notifempty → ifempty に変更してみる
  • compress を外してみる

以上、少しでもご参考になれば幸いです。

投稿2015/08/17 16:19

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2015/08/18 01:03

詳細なアドバイスありがとうございます。教えていただいた切り分け方法で調査してみます。
guest

0

/etc/logrotate.d/apache2 以外に "/var/log/apache2/*.log" をローテート対象とする設定があると、エラー(duplicate log entry)となり、ローテートされません。
/etc/logrotate.d/apache2.orig とかバックアップファイルがあったりしませんでしょうか。

投稿2015/08/17 15:49

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2015/08/17 15:55

そのようなケースもありますね、確認してみます!
guest

0

以下のファイルが手動でローテートしたファイルかと思いますが、ファイルサイズが小さいのが気になります。

-rw-r--r-- 1 root adm 4506 2015-08-17 11:04 access.log-20150817.gz

ファイルサイズの問題によりローテートされなかったかと思われますので、以下のサイトを参考に確認してみてはどうでしょうか。

logrotateでログファイルがローテーションされない事への対処
3. ログファイルのサイズと、設定ファイルの「size」項目の確認

投稿2015/08/17 12:43

hiroshi.kato

総合スコア93

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2015/08/17 13:34

回答ありがとうございます。あ、それは僕が強制に削除したので容量が小さいだけです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問