MRTGでサーバーのチェックをしているとCPU使用率が常に100%。そしてその状態が5時間ほど続いている。なんでこんなにうごいとるねん? と
# top
と叩いてみると、dicedがCPUを約100%近く使っているじゃありませんか! Dynamic DNSのサービスサイトをみてみると、昨日の夕方からIPの更新がされていません。うーんローカルでしか自宅鯖をみていなかったら全く気づかなかったよ。DiCEが上手く動いていないようなので、設定が変かと思って調べてみるといたって正常。さらに調べてみると、kernel-2.6.8-1.521でdicedがきちんと作動しないことが判明。オイドンのFedora鯖のカーネルはいくつだけっと、カーネルを確認するコマンド
# uname -r
と叩いてみると
2.6.8-1.521
と表示される…… ビンゴじゃないですか!
うーん、困った!と調べてみると対策を書いてあるページを発見。ここにしたがって以下のように変更。
# vi /etc/sysconfig/prelink
PRELINK_OPTS=-mR
↓
PRELINK_OPTS="-mR --no-exec-shield"
と変更そして
# touch /var/lib/misc/prelink.force
とタイプして
# /etc/cron.daily/prelink
とコマンド。上記を走らせたらかなり時間がかかる。いつまでたっても終わらないので、とりあえず寝る。朝起きたら無事に終わっており、
# execstack -s /usr/local/bin/DiCE/diced
と打ち
execstack: /usr/local/bin/DiCE/diced: Reshuffling of objects to make room for
program header entry only supported for shared libraries
とコメントがでたら作業終了だ。その後CPUの使用率も下がり、やダイナミックDNSのサービスも無事に動くようになった。
やっぱり監視って大切なのね。これを機会にTripwireやIDSのSnortぐらいはちゃんといれようかな。
・ダイナミックDNSについて語ろう Part4
にも同じ症状の報告があったが、適切なアドバイスはない。それより、DDNSのサービス所が新潟にあって大変! というコメントがおもしろい。