晩酌しながらサーバ管理。 こんな「てきとー管理者」にサーバ預けて、大丈夫?
Search
Powered by
Movable Type 4.23-ja
■■■■■免 責■■■■■
このサイトを参考にしたために発生した一切の損害に「てきとー管理者」は一切関知しませんし、補償もしません。 また、本サイトの記述が正しいことも保証しません。
自己責任にてお願いします。
-------------------------
京都の鍵トラブルなら鍵レスキュー 鍵師が、家・金庫・バイク・車等の解錠を始め鍵に関する全般、また防犯設備士からみた防犯診断の上の工事等、安心しておまかせ下さい。24時間対応致します。
会社で使っている監視サーバは、相当古いノートPCで行っている。
※SHARP Mebius PC-PJ1(CPU:MMX233)
2年前程まえにこの監視サーバ(Nagios)を作成したが、監視する必要が無くなったため、お蔵入りになっていたが、最近サーバ関連の監視が必要になった為、引っ張り出してきた。
2年前に使っていたときも、NICに負荷が掛かると「PCMCIA」が死んでしまう現象が出ていたが、これと言って対策は行っていなかった。
しかし、現在監視しているサーバの特性を考えると24時間365日の監視が必要になる。
監視サーバが死んでしまっては何にもならない・・・・。
っと言うことで、対策を行ってみた。
PCMCIAの死んでしまう原因は「負荷」に有るようで、NICを流れるトラフィックを制限することで回避出来そう。
CBQ(Class-based Queueing)を利用し、トラフィック制限を行ったが一向に改善されない。
通過するトラフィックは制限出来ても、負荷が掛かった状態のようだ。
そこで、負荷により死んでしまったNICを検知し、PCMCIAを再起動させる仕組みを取り入れる。
ググってみると「Swatch」と言うserviceが良いらしい。
最新のswatch-3.2.1.tar.gzをGETし「make」&「make install」するが、テンプレートが無い・・・。
テンプレートが無くても、問題は無いが何となく気持ちが悪い。
※インストール方法はココを参照
再度、swatch-3.1.1.tar.gzをGETし「make」&「make install」
テンプレートも出来ている。
出来たテンプレートを cp -pf swatchrc.personal /root/.swatchrc としてコピー
これで、準備OK
コピーした「.swatchrc」に必要な記述を行えば監視が出来るのだが、どのLogをどの様に関しすれば良いのだろうか?
NICが死んでしまうLogを探してみる。
色々探していると「/var/log/messages」のLogに書き込みされている
書き込み内容はこんな感じ・・・・
============================================
kernel: eth0: next frame inconsistency, 0xaa
last message repeated 26 times
kernel: eth0: Too much work at interrupt, status 0x54
============================================
過去のログを見ても同様の書き込みが有る。
ここでは「kernel: eth0: next frame inconsistency」の書き込みが有ったらアクションを起こさせよう。
watchfor /kernel: eth0: next frame inconsistency/
echo
mail=hogehoge1@hogehoge.com:hogehoge@docomo.ne.jp,subject=pcmcia service reboot
exec /etc/rc.d/init.d/pcmcia restart
監視内容は次の通りです。
「kernel: eth0: next frame inconsistency」がmessageLogに書き込まれたら、アクションを起こす。
今回は1つの内容でアクションを起こさせるが、複数を監視し何れかが該当した場合でも対応可能。
※ /ログ1 | ログ2/
今回指定するアクションは2つ。
メールを送って、コマンド実行。
メールの配送先は、PCを携帯電話へ通知した。
複数有る場合には「:」で区切ることで対応可能。
送るメールにsubjectを付けることも可能。
次にコマンド実行。
今回の現象はPCMCIAが死んでしまう現象。
PCMCIAを再起動すれば復帰する。
そこで「exec /etc/rc.d/init.d/pcmcia restart」を指定して強制的に復帰させる。
このほか、ベルを鳴らしたりすることも可能らしい・・・・
これで、大枠は完了した。
次に、OS再起動の際に自動的にswatchを起動する方法を検討。
方法は2つ。
1,/etc/rc.d/rc.local にswatch -c /root/.swatchrc -t /var/log/messages &を記述する
2,/etc/rc.d/init.d/にswatchを作成して、次の内容を過去込む。
============================================================
#! /bin/sh
#
# chkconfig: 2345 99 99
# description: tcpserver
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
# See how we were called.
case "$1" in
start)
echo -n "Starting Swatch: "
/usr/bin/swatch -c /root/.swatchrc -t /var/log/messages >/dev/null 2>&1 &
RETVAL=$?
echo
;;
stop)
echo -n "Stopping Swatch: "
killproc tail
RETVAL=$?
echo
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: swatch {start|stop|restart}"
exit 1
esac
exit $RETVAL
============================================================
そして、chkconfig swatch on
この何れかで行けるはず。
任意にstop&startを行いたいので、今回は「2」の方法を選択した。
では、serviceを起動して様子を見てみよう。。。
/etc/rc.d/init.d/swatch start
これで、NICが死ぬまで待ってみよう・・・(笑