Armadilloフォーラム

長期運用時の注意

hondah

2018年11月26日 18時44分

いつもお世話になります。

Armadilloを長期稼働する運用をしております。
定期的にSSH/TelnetでArmadilloのプロセス状況を確認しているのですが、
それが原因でwtmpの肥大化しておりました。

標準ではwtmpをローテートするように作られていないのでしょうか。

また、wtmp以外にも注意すべきログはありますか。
下記を参照するとsyslogがローテートされているのはわかるのですが・・・。
https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2…

機種:Armadillo440
AtmarkDist:atmark-dist-20180330
カーネル:linux-2.6.26-at30

よろしくお願いいたします。

コメント

hondah

2018年11月27日 19時45分

いつもお世話になります。

詳細について追記させていただきます。
現象としては、seri2ethを使用してRS232C機器の制御を行っております。
RS制御が止まっており、再起動することで復旧したのですが、wtmpが原因で[/]領域が空き容量0%になっていたことが判明しました。
[root@armadillo440-0 (ttyp2) /usr/bin]# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 27441 27439 0 100% /
udev 63188 4 63184 0% /dev
/dev/mmcblk0p1 31154688 9856 31144832 0% /media
tmpfs 1024 20 1004 2% /mnt
※/mntは自社アプリのファイル操作用

空き容量0%が起因してseri2ethが止まることがあるのか再現テストを行っている最中です。
・[/]領域が0%でseri2ethが止まる要因があるのか
・wtmp以外に肥大化に注意すべきものはあるのか
・wtmpのローテート方法案にどのよう物があるのか
 (ログイン履歴は不要の為,cronでクリア(>)しようか検討しております。)

恐れ入りますが、ご教授の程お願いいたします。

at_kojiro.yamada

2018年11月28日 19時47分

> [/]領域が0%でseri2ethが止まる要因があるのか

# 止まる = プロセスが終了する という解釈で回答します。

seri2ethのソースコードを読みましたが、
rootfs以下のファイルにwriteして失敗したら終了するような処理はなかったので、
これが原因でseri2ethのプロセスが終了することはないと考えます。

> wtmp以外に肥大化に注意すべきものはあるのか

はっきりとは言えないのですが、無いと思います。
atmark-dist/user以下のいくつかのアプリケーションを見てみましたが、
標準出力もしくはsyslogにログを出力していました。

明確な回答ができず申し訳ありません。

> wtmpのローテート方法案にどのよう物があるのか
> (ログイン履歴は不要の為,cronでクリア(>)しようか検討しております。)

定期的に実行させる方法としては、cronでいいと思います。

クリア、ローテートする方法としては
以下の方法はいかかがでしょうか?

- クリアするだけの場合
- echo -n > /var/log/wtmp
- cp して、クリアする場合
- cp /var/log/wtmp /var/log/wtmp.1 && echo -n > /var/log/wtmp

上記以外の方法として、mv してtouchする方法もありますが、以下の理由からおすすめしません。
- wtmp が存在しない時間ができる
- wtmpを作りなおす際に、ファイルのパーミッションが変わってしまう

hondah

2018年11月29日 14時21分

回答して頂きありがとうございます。

seri2ethについては、すぐシャットダウンしてしまったため、
プロセスが終了したのか、残っていなかったのか私も詳細はつかめておりません。
社内にて検証中ですが、rootfsが空き0の状態でも動きますね。

ローテートの案ありがとうございます。
echo -n > /var/log/wtmpこちらの方向で検討いたします。

> > [/]領域が0%でseri2ethが止まる要因があるのか
>
> # 止まる = プロセスが終了する という解釈で回答します。
>
> seri2ethのソースコードを読みましたが、
> rootfs以下のファイルにwriteして失敗したら終了するような処理はなかったので、
> これが原因でseri2ethのプロセスが終了することはないと考えます。
>
> > wtmp以外に肥大化に注意すべきものはあるのか
>
> はっきりとは言えないのですが、無いと思います。
> atmark-dist/user以下のいくつかのアプリケーションを見てみましたが、
> 標準出力もしくはsyslogにログを出力していました。
>
> 明確な回答ができず申し訳ありません。
>
> > wtmpのローテート方法案にどのよう物があるのか
> > (ログイン履歴は不要の為,cronでクリア(>)しようか検討しております。)
>
> 定期的に実行させる方法としては、cronでいいと思います。
>
> クリア、ローテートする方法としては
> 以下の方法はいかかがでしょうか?
>
> - クリアするだけの場合
> - echo -n > /var/log/wtmp
> - cp して、クリアする場合
> - cp /var/log/wtmp /var/log/wtmp.1 && echo -n > /var/log/wtmp
>
>
> 上記以外の方法として、mv してtouchする方法もありますが、以下の理由からおすすめしません。
> - wtmp が存在しない時間ができる
> - wtmpを作りなおす際に、ファイルのパーミッションが変わってしまう