計測環境が壊れていました。 10/10/25

オンライン証券FX取引会社のサーバーを勝手に監視して情報を公開していた環境が数日前から壊れていた事に気がつきました。

cactiのログを見ると

MM/DD/2010 HH:MM:SS AM – CMDPHP: Poller[0] ERROR: SQL Assoc Failed!, Error:’1017′, SQL:”select poller_output.output, poller_output.time, poller_output.local_data_id, poller_item.rrd_path, poller_item.rrd_name, poller_item.rrd_num from (poller_output,poller_item) where (poller_output.local_data_id=poller_item.local_data_id and poller_output.rrd_name=poller_item.rrd_name) LIMIT 10000″

とSQLのエラーが発生していました。

結果としてはファイルシステムをパンクさせてしまい、MySQLのデータベースを壊してしまっている事がわかりました。

作業した内容を以下にメモしておきます。

(1)ファイルシステムの容量の確保
(2)エラーの発生しているテーブルの作り直し

この時に参考にさせていただいたのは”Cacti: offical forums and support”の
[SOLVED] Can’t clear poller cacheです。

こちらあるsql

DROP TABLE IF EXISTS `poller_output`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `poller_output` (
`local_data_id` mediumint(8) unsigned NOT NULL default ‘0’,
`rrd_name` varchar(19) NOT NULL default ”,
`time` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`output` text NOT NULL,
PRIMARY KEY (`local_data_id`,`rrd_name`,`time`)
) TYPE=MyISAM;
SET character_set_client = @saved_cs_client;
LOCK TABLES `poller_output` WRITE;
/*!40000 ALTER TABLE `poller_output` DISABLE KEYS */;
/*!40000 ALTER TABLE `poller_output` ENABLE KEYS */;
UNLOCK TABLES;

をcacti-repair.sqlという名前で保存して

mysql -u root -ppassword < cacti-repair.sql

として実行しました。

とちゅう、repair_database.phpも試してみましたが、私の場合には役に立たず、結局はテーブルのDrop&Createを行う事で復旧させて事になります。

[test q=”cacti”]

まだコメントはありません。