いろいろ設定して遊んでたPandoraちゃん(PandoraFMSサーバ)ですが、
WebコンソールでPandoraちゃんのdataserverやらnetworkやらがdownする事象が発生してました。
(~going downメッセージ出てすぐに、~going upって出る)
きりのさんと「そのうちなんとかしないとねーあははー」とか話してたけど、
夕食後、暇だったのでふと思い出したのでとらしゅしてみました。


①ログファイルを見て回る
/var/log/messages→特に異常なし、ということで、Pandora用のログファイルを見てみる

PANDORA:/var/log/pandora # ls -al
total 1536
drwxr-xr-x  2 pandora root    4096 Mar  1 00:48 .
drwxr-xr-x 13 root    root    4096 Jan 30 13:49 ..
-rw-r--r--  1 root    root     682 Jan 30 13:49 pandora_agent.log
-rw-r--r--  1 root    root 1379840 Mar  1 00:53 pandora_server.error
-rw-r--r--  1 root    root    5066 Feb 26 21:30 pandora_server.error-20130226.bz2
-rw-r--r--  1 root    root    5068 Feb 27 21:30 pandora_server.error-20130227.bz2
-rw-r--r--  1 root    root    5076 Feb 28 21:30 pandora_server.error-20130228.bz2
-rw-rw-rw-  1 root    root   64339 Mar  1 00:53 pandora_server.log
-rw-rw-rw-  1 root    root   65610 Mar  1 00:48 pandora_server.log.old
-rw-rw-rw-  1 root    root      23 Feb 28 21:30 pandora_snmptrap.log
-rw-rw-rw-  1 root    root       4 Jan 14 22:11 pandora_snmptrap.log.index


なんかエラーが大量に出てるっぽい(゚д゚lll)
中身を見てみる。


PANDORA:/var/log/pandora # tail -f pandora_server.error
DBD::mysql::db do failed: Incorrect key file for table './pandora/tserver.MYI'; try to repair it at /usr/lib/perl5/PandoraFMS/DB.pm line 579.
(これが延々と続く)

PANDORA:/var/log/pandora # tail -f pandora_server.log
2013-03-01 00:38:22 PANDORA [V1] Pandora FMS Server 'PANDORA' unhandled error.
2013-03-01 00:38:22 PANDORA [V1] [E] 'PANDORA': DBD::mysql::db do failed: Incorrect key file for table './pandora/tserver.MYI'; try to repair it at /usr/lib/perl5/PandoraFMS/DB.pm line 579.

(これが延々と続く)


▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああなんじゃこりゃああああああ


②調べてみる
とりあえず他のとこのPandoraちゃんで同じような事象が発生してないかを調査。

あったあった。(ただしスペイン語を読み解く必要有り)
http://openideas.info/smf/index.php?topic=7204.0;wap2
どうやらこの人も同じようなことで悩んでいたっぽい。
んで、他の人が「これ、MySQLのMyISAMの問題じゃね?」って言って参考ページに誘導されている。
→りくちゃも参考ページ見に行ってみた
 →スペイン語だよ!!!orz
  →頑張って読む


③tserver.MYIの状況を確認する
エラーの原因はここだとほぼ特定出来たので、データファイルの状況を確認。
※コマンドは前述の参考ページに書いてあったのをそのまま流用

PANDORA:/var/lib/mysql/pandora # myisamchk -c tserver.MYI
Checking MyISAM file: tserver.MYI
Data records:       4   Deleted blocks:       0
myisamchk: warning: Table is marked as crashed
myisamchk: warning: 4 clients are using or haven't closed the table properly
- check file-size
myisamchk: error: Size of datafile is: 396               Should be: 456
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3
- check data record references index: 4
- check record links
myisamchk: warning: Found          4 key parts. Should be: 8
MyISAM-table 'tserver.MYI' is corrupted
Fix it using switch "-r" or "-o"


データファイルがクラッシュしとるー!!!(((( ;゚д゚)))アワワワワ
ここできりのさん帰宅。


④データファイルを修復する
きりのさんが帰宅したので、データファイルを修復してもらいました(

参考ページ:http://akkunchoi.github.com/myisam-incorrect-key-file-for-table-try-to-repair-it.html

PANDORA:/var/log/pandora # mysql
mysql> use pandora
Database changed
mysql>
mysql> check table tserver ;
+-----------------+-------+----------+----------------------------------------------------------+
| Table           | Op    | Msg_type | Msg_text                                                 |
+-----------------+-------+----------+----------------------------------------------------------+
| pandora.tserver | check | warning  | Table is marked as crashed                               |
| pandora.tserver | check | warning  | 4 clients are using or haven't closed the table properly |
| pandora.tserver | check | error    | Checksum for key:  3 doesn't match checksum for records  |
| pandora.tserver | check | error    | Corrupt                                                  |
+-----------------+-------+----------+----------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> repair table tserver ;
+-----------------+--------+----------+----------+
| Table           | Op     | Msg_type | Msg_text |
+-----------------+--------+----------+----------+
| pandora.tserver | repair | status   | OK       |
+-----------------+--------+----------+----------+
1 row in set (0.00 sec)

mysql> check table tserver ;
+-----------------+-------+----------+----------+
| Table           | Op    | Msg_type | Msg_text |
+-----------------+-------+----------+----------+
| pandora.tserver | check | status   | OK       |
+-----------------+-------+----------+----------+
1 row in set (0.00 sec)

mysql> quit

このあと、りくちゃさんが先ほどのコマンドを実行。

PANDORA:/var/lib/mysql/pandora # myisamchk -c tserver.MYI
Checking MyISAM file: tserver.MYI
Data records:       4   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3
- check data record references index: 4
- check record links


あっ、修復されたっぽい!!
ということで、様子を見てみることにしました。。。


⑤思わぬ落とし穴
きりのさん「(カチャカチャ...)ん?Pandoraちゃん、サーバプロセスいなくない?」
りくちゃ「えーまさかー」

PANDORA:/etc/pandora # pstree
init---cannaserver
     --console-kit-dae---64*[{console-kit-da}]
     --cron
     --dbus-daemon
     --httpd2-prefork---10*[httpd2-prefork]
     --klogd
     --login---bash
     --5*[mingetty]
     --mysqld_safe---mysqld---9*[{mysqld}]
     --nscd---8*[{nscd}]
     --pandora_agent
     --polkitd---{polkitd}
     --rpcbind
     --sshd---2*[sshd---sshd---bash---su---bash---view]
     x      --sshd---sshd---bash---su---bash
     x      --sshd---sshd---bash---su---bash---pstree
     x      --sshd---bash
     --syslogd
     --tentacle_server
     --udevd---2*[udevd]


ホントだ(  Д ) ゚ ゚
Pandoraサーバのrestartかけました。

PANDORA:/etc/pandora # pstree
init---cannaserver
     --console-kit-dae---64*[{console-kit-da}]
     --cron
     --dbus-daemon
     --httpd2-prefork---10*[httpd2-prefork]
     --klogd
     --login---bash
     --5*[mingetty]
     --mysqld_safe---mysqld---20*[{mysqld}]
     --nscd---8*[{nscd}]
     --pandora_agent
     --pandora_server---sh---snmpget
     x                --10*[{pandora_server}]
     --polkitd---{polkitd}
     --rpcbind
     --snmptrapd
     --sshd---2*[sshd---sshd---bash---su---bash---view]
     x      --sshd---sshd---bash---su---bash
     x      --sshd---sshd---bash---su---bash---pstree
     x      --sshd---bash
     --syslogd
     --tentacle_server
     --udevd---2*[udevd]


めでたしめでたし。
教訓:psでプロセスの確認はしようね。
そのあとも監視継続中ですが、~going downが出なくなりました。

pandora_server落ちてたのに他のネットワーク機器の監視ができてたので、
その日は寝るまでpandoraちゃんすげぇとか言ってました。
このとらしゅのおかげで、本日は睡眠不足です。

そろそろpandoraちゃんのバージョンアップを検討中。