システムログをリモートシステムに送信するようにOpenWrtを設定しました。これは長い間うまくいきましたが、nginxのログがありませんでした。
OpenWrtのnginxはsyslogのロギングをサポートしていないため、tailを介してloggerを使用してログエントリをsyslogに送信してからそれを渡します。
root@OpenWrt:/tmp/log/nginx# (tail -1 -F access.log | logger & tail -1 -F error.log | logger )&
基本的にはうまくいきます。 519文字の後の行を切り捨てて「[truncated]」を挿入する場合があることを除けばです。
例えば、
May 23 17:01:13 openwrt.lan root: [truncated] 10.11.12.13 - - [23/May/2019:17:01:13 -0400] "GET ...
BusyboxやOpenWrt文書には、これを行う必要があるという内容はありません。また、OpenWrtのsyslogが以前にこれを行ったという兆候を見たことはありませんが、busyboxのソースコードをgrepingすると、これがbusyboxが実行する作業ではない可能性があると思いました。
OpenWrtシステムログが切り捨てられますか?設定または停止する方法は?
答え1
コンパイルする前に、openwrtソースコードのmenuconfigで入力の最大長と履歴サイズを設定する必要があります。
このガイドでは:
make menuconfig > 基本システム > busybox > カスタム busybox オプション(この場合は y 設定) > Busybox ライブラリの調整 > (設定) 最大入力長/記録サイズ
このセクションを明確にするために、次のことを行います。