カテゴリー: ZABBIX
ZABBIX Database is down. 見てびっくり history テーブルが?ギガになっていた
ログをまめに消すためにしてみた。
zabbix_server.conf のMaxHousekeeperDelete を0にしてzabbix-server を再起動。
これは、こういうことらしい
Housekeeper(ヒストリなどの保持期限が過ぎたデータを削除するプロセス)が、1回削除動作をする際に実行する、1テーブルあたりに削除する最大行数 でデフォルトでは500行らしい。
http://d.hatena.ne.jp/BlueSkyDetector/20110211
zabbixでのデータの保存期間も60日に変更してみた。
zabbixのMySqlデータベースが壊れた。まめにバックアップして、圧縮することにした。
Zabbixでサーバを監視していていて、いたって快適に使っていたのですが、こんなメッセージが携帯メールに届いた。
「Zabbix database is down.」
mysqlが壊れたみたい。
/var/lib/mysql/ibdata1 のサイズが6ギガくらいになっていた。
修復してもどうしてもだめなので、結局ZABBIZサーバの再構築をした。
データベースのバックアップをさぼっていたので、バックアップすることにした。
せっかくだからその時圧縮も行うことにした。
無理があるが、その時のシェルスクリプト。
root_passwd=mysql <-ここではmysqlのrootのパスワードを指定する。
#!/bin/sh root_passwd=mysql prefix="mysql.mysqldump" nowtime="$(date +%Y%m%d%H%M%S)" backup_file="${prefix}_${nowtime}" cd /backup /etc/init.d/httpd stop /etc/init.d/zabbix-server stop mysqldump -u root -p${root_passwd} -x --all-database > ${backup_file} mysqladmin -u root -p${root_passwd} -f drop zabbix /etc/init.d/mysqld stop rm -rf /var/lib/mysql/ib_logfile0 rm -rf /var/lib/mysql/ib_logfile1 rm -rf /var/lib/mysql/ibdata1 /etc/init.d/mysqld start mysqladmin -u root -p${root_passwd} create zabbix mysql -u root -p${root_passwd} zabbix < ${backup_file} /etc/init.d/zabbix-server start /etc/init.d/httpd start
ところで、/etc/my.cnf に innodb_file_per_table を追加した。
その時のmy.cnf が以下の通り。
[mysqld] innodb_file_per_table datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set=utf8 skip-character-set-client-handshake # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid