fr24feedのログ出力が訳がわからないので消した話

システム監視 1

FlightRadar24におそらく正常にフィードできるようになって翌朝、いつものようにシステムの稼働状況を確認していたら飲んでたお茶を吹き出しそうになった。

システム監視 2
上側のグラフがメモリの使用状況で、朝9:00に日替わり処理で何かしらが行われてキャッシュ・バッファが100MBほど減少した。このホストは元々はタイムゾーンを日本時間にしていたんだけど、昨日の記事のようにfr24feedが文句を言うのでGMT+0にした。だから、日本より9時間遅れの時刻を指して動いているので日替わり処理は朝の9時に行われる。
で、メモリの方は使用量が減っているのでそれで良いんだけど、下側のグラフがディスクの仕様状況で、水色が朝9:00にドカンと跳ね上がっている。 (前日の20:00頃にガクンと減っているのはログファイルが溜まっていたのを消したから。)
この水色はログを格納する/var/logのパーティション。グラフはそれぞれのパーティションの使用割合いなので例えば50%になったらディスク全容量の半分を喰ったということではなく、分割されたそれぞれの領域の中の半分を喰ったということ。

$ df -BM
Filesystem     1M-blocks  Used Available Use% Mounted on
udev                172M    0M      172M   0% /dev
tmpfs                48M    6M       43M  13% /run
/dev/mmcblk0p1    14777M 1867M    12731M  13% /
tmpfs               240M    1M      240M   1% /dev/shm
tmpfs                 5M    0M        5M   0% /run/lock
tmpfs               240M    0M      240M   0% /sys/fs/cgroup
tmpfs               240M    1M      240M   1% /tmp
/dev/zram0           49M   19M       27M  43% /var/log   ←これ
tmpfs                48M    0M       48M   0% /run/user/1000

今回のホストは16GBのMicroSDカードをストレージにしているシングルボードコンピューターなので今どきのPCに登載されているHDDやSSDとは桁違いに低容量。その/var/log領域はもともと僅か50MBしか確保されていない。この領域はZRAMなのでメモリ上に圧縮されて存在している。その半分近くが一瞬で喰われたらねぇ。

fr24feed ログ
しかも、そのログが内容の詰まった情報ならまだしも、(昨日も書いたけど)上の画像のような凄い無駄の塊。そして、昨日正常にフィードが行なわれるようになってからログを消したにも関わらず、今朝9:00に書き出されたのは昨日のフィードが正しく行われていなかった時間帯のステータスの変化。
その大量のデータを朝9:00にログに書き出すまでどこに溜め込んでいたのか知らないけど、MicroSDカードの領域に書き込んでたのなら勘弁して欲しい。というかfr24feedはRaspberry Pi用なら容量の関係で迂闊にログ出力して欲しくないってことも、書き換え耐性が低いMicroSDカードに書き込んで欲しくないってことも解ってる筈でしょ?

$ sudo zramctl
NAME       ALGORITHM DISKSIZE  DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram1 lzo         239.6M 31.8M 10.6M 11.5M       4 [SWAP]
/dev/zram0 zstd           50M   19M  5.1M  5.7M       4 /var/log   ←これ

MicroSDカードに書き込むシングルボードコンピュータ用のLinuxならおそらくログ用のパーティションはZRAMなどのメモリディスクなどに割り当てられている筈。ログパーティションは書き換えが多いのでMicroSDカードを壊さないためにもこれがありがたい。しかし、この手のシングルボードコンピュータはメモリ登載量が少ないので割り当てられる容量も極小に。ZRAMは圧縮が効くので50MB割り当てても実際のメモリの使用量はそれよりだいぶ小さい。

$ ls -l /var/log/fr24feed
total 18492
-rw-r--r-- 1 root root 18932825 Mar 10 00:00 fr24feed.log

日替わり時に一気に19MB吐き出されたログ。その後は増えていない。最後の記録が正常にフィードできるようになる前のだし。
ログは出力しない設定にしたつもりだったけど、ステータスの変化しまくった翌日?にこんな突然大量に吐き出されたら怖い。
そこで、この /var/log/fr24feed/fr24feed.log を消して /dev/null にシンボリックリンクしておいた。

$ sudo rm /var/log/fr24feed/fr24feed.log ←削除
$ sudo ln -s /dev/null /var/log/fr24feed/fr24feed.log ←シンボリックリンクを張る
$ ls -l /var/log/fr24feed
total 0
lrwxrwxrwx 1 root root 9 Mar 10 07:34 fr24feed.log -> /dev/null ←確認

これでfr24feedが「王様の耳はロバの耳」って叫んでもそのまま消えて無くなるのでめでたしめでたし。
ただし、異変には気付けるようにしておかないと。
一応、dump1090-exporterでdump1090-faが動いていることは監視しているので後はフィードが順調かどうかを確認できようにしたいところ。Prometheus+Grafanaで監視できるようにpiaware-exporterとかfr24feed-exporterとか出ないかしら?

以上、いつもにも増してしょーもない日記でスミマセン。

関連記事: