[linux] audit時限爆弾

始まりはcronのエラーでした。
毎日、自動で集計しているハズのアクセスログが集計出来ていません。
原因を調べようとcronのログを調べようにも、suコマンドでrootになれません。
仕方がないので、サーバの再起動。
これと言っておかしなところは見当たりません。
ですが、またしてもcronが動かなくなりました。
「動かしているcronが重いせい?」かと思い、重そうなcronを停止。
それで、しばらくは調子が良かったのに、やっぱりcronが実行されなくなりました。
仕方が無いので、別のcronも停止です。
もう大丈夫だろうと思っていたのに、比較的軽いcronでも停止しちゃいました。
正確には、動いているのかもしれないですが、その動きは亀よりも遅い状態。
さて、困りました。
cronのプログラムは何ヵ月も正常に動作していたので、cronに問題があるとも思えません。
ほとんどお手上げ状態。
ですが、cronが動作していないのは事実ですし、何とか問題を解決しなければなりません。
あてもないまま、なんとなくディスク容量をチェック。

# df -k
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/cciss/c0d0p2 1007944 206288 750452 22% /
/dev/cciss/c0d0p1 98747 15149 78499 17% /boot
/dev/cciss/c0d0p5 10079868 2847212 6720620 30% /home
none 1027724 0 1027724 0% /dev/shm
/dev/cciss/c0d0p3 10079884 6210228 3357616 65% /usr
/dev/cciss/c0d0p7 12702192 10150316 1906628 85% /var

何故か/varディレクトリの使用量が85%もあります。
多いなぁとは思いつつ放置していたのですが、ちょっと気になって更に細かく使用量の調査。

# du -h -s /var/log/* | grep G
9.6G /var/log/audit.d
# du -h -s /var/log/* | grep M
3.5M /var/log/maillog.4
2.3M /var/log/maillog.5
1.7M /var/log/maillog.7

ほとんど「/var/log/audit.d」ディレクトリが使用していることが判明。
ディレクトリの中を覗いたところ、約20MBのファイルが約500個もありました。

# ls -al /var/log/audit.d
合計 10026464
drwx—— 2 root root 8192 mm月 dd 00:52 .
drwxr-xr-x 10 root root 4096 mm月 dd 11:19 ..
-rw——- 1 root root 20971520 mm月 dd 04:22 bin.0
-rw——- 1 root root 20971520 mm月 dd 11:10 bin.1
-rw——- 1 root root 20971520 mm月 dd 15:01 bin.2
-rw——- 1 root root 20971520 mm月 dd 13:00 bin.3
-rw——- 1 root root 20971447 mm月 dd 2006 save.0
-rw——- 1 root root 20971519 mm月 dd 2006 save.1

-rw——- 1 root root 20971270 mm月 dd 2006 save.98
-rw——- 1 root root 20971499 mm月 dd 2006 save.99

そういやmessagesログにも、それらしきエラーが表示されていました。

# more /var/log/messages
mmm dd 04:02:05 xxxxxxxxx syslogd 1.4.1: restart.
mmm dd 04:22:20 xxxxxxxxx audbin[20594]: saving binary audit log /var/log/audit.d/bin.0
mmm dd 04:22:20 xxxxxxxxx audbin[20594]: threshold 20.00 exceeded for filesystem /var/log/audit.d/. – free blocks down to 19.93%
mmm dd 04:22:20 xxxxxxxxx auditd[931]: Notify command /usr/sbin/audbin -S /var/log/audit.d/save.%u -C -T 20% exited with status 1
mmm dd 04:22:20 xxxxxxxxx auditd[931]: output error
mmm dd 04:22:20 xxxxxxxxx auditd[931]: output error
mmm dd 04:22:20 xxxxxxxxx auditd[931]: output error; suspending execution

それで、google検索してみたところ、似たようなことで悩んでいた人のページを発見!!
これだ!!
後は、上記のサイトに書いてあったように、ファイルを削除。

# cd /var/log/audit.d
# rm -f save.*

ディスク使用量は2%まで回復。
そして、auditサービスも停止。

# service audit stop
# chkconfig audit off
# chkconfig audit –list

何とかcronが実行されない問題は解決されました。
さて、何故これが時限爆弾なのかと言うと、システム稼働当初から仕込まれていたらしい
毎日のように約20MBのファイルを作り続け、「/var/log/audit.d/」が残り20%を切ったところで時限爆弾炸裂。
RHEL3(RedHat Enterprise Linux 3)を運用されている方は、お気を付けあそばせ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です