Help us understand the problem. What is going on with this article?

Nginxのログが記録されなくなった

背景

  • サーバの環境構築が終わってしばらくしてみると、Nginxのログが毎日は記録されておらず、ランダムに抜けている日がある。
  • パブリックに公開していたため、攻撃のようなアクセスは毎日来るはず。なんかおかしい...
  • 環境構築が終わってからも、開発やデプロイは何度か行なっていた。
  • 今日のログはというと、アクセスログとエラーログともに0バイトで、今日の未明(2時から4時あたり)のタイムスタンプが付いていた。
  • Nginxの再起動直後などは、特に問題がなくログが書き出される。
  • Nginxはnginxユーザで実行しているが、なぜかログはログインしている一般ユーザが所有しており、グループのみnginxに設定されている状態だった。

環境

  • Amazon Linux release 2 (Karoo)
  • nginx version: nginx/1.12.2

AWSサポートに契約していたことを思い出す

ダメもとで問い合わせてみたところ...

ビジネス以上のプランにて、サードパーティ製ソフトウェアサポートをベストエフォートで行っているため、Nginxに関しては、本来サポート対象外との回答が、、(私のアカウントはデベロッパープランでした)

一方で、原因がnginxではない場合が考えられますので...と、他の可能性についてもご案内いただきました。(優しい)
その回答とは、以下のような内容でした。

しばらく経つとログが出力されなくなる点から、ログのローテーションが行われた場合にファイルのパーミッションが書き換えられている可能性がございます。

なるほど...

ログのローテーション設定も確認してみたが...

以下のような設定になっていました。
(パーミッション設定については、一見問題ないように思える?)

/etc/logrotate.d/nginx
/var/log/nginx/*log {
    create 0644 nginx nginx
    daily
    rotate 10
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

他に助けを求められる場所はないか

AWSのサポートプランをビジネスにする

サポートプランをアップグレードにすることに対する見返りとして、

  • 必ずしも、それで解決できるとは限らない(ベストエフォート)点や、
  • 実際に環境にログインして修正まで行なってもらえる訳ではない点

などから、こちらの選択肢は却下となりました。

参考: AWSの有料サポートプランについてまとめ

Nginxのサポートに加入する

こちらも、費用に対する見返りとして、

  • 必ずしも、それで解決できるとは限らない点と
  • 現状で英語でしか問い合わせできない(日本語対応準備中とのことです)

などの理由で、こちらも却下となりました。

参考: https://www.nginx.co.jp/support/

teratailなど、他のコミュニティサイトで意見を求める

明確な回答は無かったのですが、
こちらに、手掛かりのようなものがあったように思います。

対応方法

私の環境の場合、以下の修正でログがローテーションされた後も
引き続きログが書き出されるようになりました!

/etc/logrotate.d/nginx
/var/log/nginx/*log {
    create 0644 nginx nginx
    daily
    rotate 10
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
-       /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
+       /usr/sbin/nginx -s reload 2>/dev/null || true
    endscript
}

どちらの記述も、Nginxの設定ファイルを読み込み直す動作のようだ
といったところまでは調査できたのですが、明確な違いについては分からず...

参考: https://nginx.org/en/docs/switches.html

動いたので、一旦はこれで良しとします。
(ご存知の方おられましたら、コメントいただけますと幸いです)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした