2013/04/22

ZabbixのDBをMySQLの圧縮機能(Barracuda)で小さくしてみた。

@qryuu たんに教わったやり方にて実際試してみました。

■my.cnfの書き換え

テーブル圧縮を今後デフォルトにする場合は、以下の2行をmy.cnfに追記する。
innodb_file_format = Barracuda
innodb_file_per_table = 1

ちなみに圧縮前の状況はこちら。総計 388MB 使っている。
[root@FLAMINGO]/var/lib/mysql/zabbix# ls -l | sort -k5
合計 396432
-rw-rw----. 1 mysql mysql        65  4月  3 14:21 2013 db.opt
-rw-rw----. 1 mysql mysql      8602  4月  3 14:21 2013 valuemaps.frm
-rw-rw----. 1 mysql mysql      8622  4月  3 14:22 2013 globalvars.frm
-rw-rw----. 1 mysql mysql      8628  4月  3 14:22 2013 users_groups.frm
-rw-rw----. 1 mysql mysql      8634  4月  3 14:21 2013 groups.frm
-rw-rw----. 1 mysql mysql      8636  4月  3 14:21 2013 slideshows.frm
-rw-rw----. 1 mysql mysql      8642  4月  3 14:21 2013 globalmacro.frm
-rw-rw----. 1 mysql mysql      8642  4月  3 14:21 2013 help_items.frm
-rw-rw----. 1 mysql mysql      8642  4月  3 14:22 2013 regexps.frm
-rw-rw----. 1 mysql mysql      8644  4月  3 14:22 2013 hosts_groups.frm
-rw-rw----. 1 mysql mysql      8650  4月  3 14:22 2013 icon_map.frm
-rw-rw----. 1 mysql mysql      8650  4月  3 14:22 2013 opgroup.frm
-rw-rw----. 1 mysql mysql      8652  4月  3 14:22 2013 items_applications.frm
-rw-rw----. 1 mysql mysql      8654  4月  3 14:22 2013 history.frm
-rw-rw----. 1 mysql mysql      8654  4月  3 14:22 2013 history_str.frm
-rw-rw----. 1 mysql mysql      8654  4月  3 14:22 2013 history_uint.frm
-rw-rw----. 1 mysql mysql      8656  4月  3 14:22 2013 hosts_templates.frm
-rw-rw----. 1 mysql mysql      8660  4月  3 14:22 2013 opcommand_hst.frm
-rw-rw----. 1 mysql mysql      8660  4月  3 14:22 2013 opmessage_usr.frm
-rw-rw----. 1 mysql mysql      8662  4月  3 14:22 2013 opcommand_grp.frm
-rw-rw----. 1 mysql mysql      8662  4月  3 14:22 2013 optemplate.frm
-rw-rw----. 1 mysql mysql      8664  4月  3 14:22 2013 opmessage_grp.frm
-rw-rw----. 1 mysql mysql      8668  4月  3 14:22 2013 images.frm
-rw-rw----. 1 mysql mysql      8670  4月  3 14:22 2013 maintenances_hosts.frm
-rw-rw----. 1 mysql mysql      8670  4月  3 14:22 2013 rights.frm
-rw-rw----. 1 mysql mysql      8672  4月  3 14:22 2013 hostmacro.frm
-rw-rw----. 1 mysql mysql      8672  4月  3 14:22 2013 trigger_depends.frm
-rw-rw----. 1 mysql mysql      8674  4月  3 14:22 2013 maintenances_groups.frm
-rw-rw----. 1 mysql mysql      8680  4月  3 14:22 2013 history_text.frm
-rw-rw----. 1 mysql mysql      8680  4月  3 14:22 2013 sessions.frm
-rw-rw----. 1 mysql mysql      8682  4月  3 14:22 2013 housekeeper.frm
-rw-rw----. 1 mysql mysql      8682  4月  3 14:22 2013 ids.frm
-rw-rw----. 1 mysql mysql      8682  4月  3 14:22 2013 mappings.frm
-rw-rw----. 1 mysql mysql      8684  4月  3 14:22 2013 applications.frm
-rw-rw----. 1 mysql mysql      8684  4月  3 14:22 2013 service_alarms.frm
-rw-rw----. 1 mysql mysql      8686  4月  3 14:22 2013 httpstepitem.frm
-rw-rw----. 1 mysql mysql      8686  4月  3 14:22 2013 httptestitem.frm
-rw-rw----. 1 mysql mysql      8686  4月  3 14:22 2013 services_links.frm
-rw-rw----. 1 mysql mysql      8688  4月  3 14:22 2013 sysmap_element_url.frm
-rw-rw----. 1 mysql mysql      8694  4月  3 14:22 2013 maintenances_windows.frm
-rw-rw----. 1 mysql mysql      8700  4月  3 14:22 2013 graph_discovery.frm
-rw-rw----. 1 mysql mysql      8704  4月  3 14:22 2013 screens.frm
-rw-rw----. 1 mysql mysql      8708  4月  3 14:22 2013 dhosts.frm
-rw-rw----. 1 mysql mysql      8710  4月  3 14:22 2013 slides.frm
-rw-rw----. 1 mysql mysql      8712  4月  3 14:22 2013 trigger_discovery.frm
-rw-rw----. 1 mysql mysql      8714  4月  3 14:22 2013 history_str_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月  3 14:22 2013 history_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月  3 14:22 2013 history_uint_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月  3 14:22 2013 sysmap_url.frm
-rw-rw----. 1 mysql mysql      8716  4月  3 14:22 2013 acknowledges.frm
-rw-rw----. 1 mysql mysql      8722  4月  3 14:22 2013 sysmaps_link_triggers.frm
-rw-rw----. 1 mysql mysql      8724  4月  3 14:22 2013 functions.frm
-rw-rw----. 1 mysql mysql      8726  4月  3 14:22 2013 nodes.frm
-rw-rw----. 1 mysql mysql      8728  4月  3 14:21 2013 usrgrp.frm
-rw-rw----. 1 mysql mysql      8730  4月  3 14:22 2013 conditions.frm
-rw-rw----. 1 mysql mysql      8732  4月  3 14:22 2013 services_times.frm
-rw-rw----. 1 mysql mysql      8734  4月  3 14:22 2013 opmessage.frm
-rw-rw----. 1 mysql mysql      8740  4月  3 14:22 2013 opconditions.frm
-rw-rw----. 1 mysql mysql      8744  4月  3 14:22 2013 node_cksum.frm
-rw-rw----. 1 mysql mysql      8744  4月  3 14:22 2013 proxy_autoreg_host.frm
-rw-rw----. 1 mysql mysql      8744  4月  3 14:22 2013 trends.frm
-rw-rw----. 1 mysql mysql      8744  4月  3 14:22 2013 trends_uint.frm
-rw-rw----. 1 mysql mysql      8774  4月  3 14:22 2013 auditlog_details.frm
-rw-rw----. 1 mysql mysql      8774  4月  3 14:22 2013 item_discovery.frm
-rw-rw----. 1 mysql mysql      8782  4月  3 14:22 2013 autoreg_host.frm
-rw-rw----. 1 mysql mysql      8784  4月  3 14:22 2013 drules.frm
-rw-rw----. 1 mysql mysql      8784  4月  3 14:22 2013 icon_mapping.frm
-rw-rw----. 1 mysql mysql      8784  4月  3 14:22 2013 interface.frm
-rw-rw----. 1 mysql mysql      8784  4月  3 14:22 2013 media.frm
-rw-rw----. 1 mysql mysql      8792  4月  3 14:22 2013 sysmaps_links.frm
-rw-rw----. 1 mysql mysql      8796  4月  3 14:21 2013 maintenances.frm
-rw-rw----. 1 mysql mysql      8806  4月  3 14:22 2013 expressions.frm
-rw-rw----. 1 mysql mysql      8826  4月  3 14:22 2013 services.frm
-rw-rw----. 1 mysql mysql      8832  4月  3 14:22 2013 operations.frm
-rw-rw----. 1 mysql mysql      8834  4月  3 14:22 2013 history_log.frm
-rw-rw----. 1 mysql mysql      8842  4月  3 14:22 2013 escalations.frm
-rw-rw----. 1 mysql mysql      8844  4月  3 14:22 2013 profiles.frm
-rw-rw----. 1 mysql mysql      8850  4月  3 14:22 2013 httpstep.frm
-rw-rw----. 1 mysql mysql      8854  4月  3 14:22 2013 graphs_items.frm
-rw-rw----. 1 mysql mysql      8856  4月  3 14:22 2013 events.frm
-rw-rw----. 1 mysql mysql      8862  4月  3 14:22 2013 auditlog.frm
-rw-rw----. 1 mysql mysql      8868  4月  3 14:22 2013 proxy_history.frm
-rw-rw----. 1 mysql mysql      8872  4月  3 14:22 2013 proxy_dhistory.frm
-rw-rw----. 1 mysql mysql      8878  4月  3 14:22 2013 timeperiods.frm
-rw-rw----. 1 mysql mysql      8914  4月  3 14:22 2013 scripts.frm
-rw-rw----. 1 mysql mysql      8928  4月  3 14:22 2013 dservices.frm
-rw-rw----. 1 mysql mysql      8932  4月  3 14:22 2013 user_history.frm
-rw-rw----. 1 mysql mysql      8946  4月  3 14:22 2013 opcommand.frm
-rw-rw----. 1 mysql mysql      8960  4月  3 14:21 2013 media_type.frm
-rw-rw----. 1 mysql mysql      8960  4月  3 14:22 2013 httptest.frm
-rw-rw----. 1 mysql mysql      8982  4月  3 14:21 2013 actions.frm
-rw-rw----. 1 mysql mysql      9026  4月  3 14:22 2013 dchecks.frm
-rw-rw----. 1 mysql mysql      9048  4月  3 14:22 2013 triggers.frm
-rw-rw----. 1 mysql mysql      9076  4月  3 14:22 2013 alerts.frm
-rw-rw----. 1 mysql mysql      9122  4月  3 14:21 2013 users.frm
-rw-rw----. 1 mysql mysql      9138  4月  3 14:22 2013 screens_items.frm
-rw-rw----. 1 mysql mysql      9252  4月  3 14:22 2013 sysmaps_elements.frm
-rw-rw----. 1 mysql mysql      9286  4月  3 14:21 2013 graph_theme.frm
-rw-rw----. 1 mysql mysql      9296  4月  3 14:22 2013 graphs.frm
-rw-rw----. 1 mysql mysql      9854  4月  3 14:22 2013 sysmaps.frm
-rw-rw----. 1 mysql mysql      9970  4月  3 14:22 2013 hosts.frm
-rw-rw----. 1 mysql mysql     11008  4月  3 14:22 2013 config.frm
-rw-rw----. 1 mysql mysql     14648  4月  3 14:22 2013 items.frm
-rw-rw----. 1 mysql mysql     15832  4月  3 14:22 2013 host_inventory.frm
-rw-rw----. 1 mysql mysql     98304  4月  3 14:22 2013 help_items.ibd
-rw-rw----. 1 mysql mysql     98304  4月  3 14:22 2013 host_inventory.ibd
-rw-rw----. 1 mysql mysql     98304  4月  3 14:22 2013 media_type.ibd
-rw-rw----. 1 mysql mysql     98304  4月  3 14:22 2013 slideshows.ibd
-rw-rw----. 1 mysql mysql     98304  4月  3 14:22 2013 timeperiods.ibd
-rw-rw----. 1 mysql mysql     98304  4月 20 14:55 2013 housekeeper.ibd
-rw-rw----. 1 mysql mysql     98304  4月 21 14:59 2013 globalvars.ibd
-rw-rw----. 1 mysql mysql     98304  4月 22 11:12 2013 ids.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 dchecks.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 expressions.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 httpstep.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 maintenances.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 mappings.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 node_cksum.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 nodes.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 opcommand.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 opconditions.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 opmessage.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 regexps.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 screens.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 screens_items.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 services.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 services_times.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 sysmap_element_url.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 sysmap_url.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 usrgrp.ibd
-rw-rw----. 1 mysql mysql    114688  4月  3 14:22 2013 valuemaps.ibd
-rw-rw----. 1 mysql mysql    114688  4月  5 00:08 2013 actions.ibd
-rw-rw----. 1 mysql mysql    114688  4月  5 00:08 2013 conditions.ibd
-rw-rw----. 1 mysql mysql    114688  4月  5 00:08 2013 operations.ibd
-rw-rw----. 1 mysql mysql    114688  4月 13 16:36 2013 globalmacro.ibd
-rw-rw----. 1 mysql mysql    114688  4月 13 17:50 2013 autoreg_host.ibd
-rw-rw----. 1 mysql mysql    114688  4月 13 18:40 2013 groups.ibd
-rw-rw----. 1 mysql mysql    114688  4月 20 14:09 2013 dhosts.ibd
-rw-rw----. 1 mysql mysql    114688  4月 20 14:23 2013 hostmacro.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 01:43 2013 users.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 01:51 2013 auditlog_details.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 09:23 2013 user_history.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 10:28 2013 drules.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 11:09 2013 escalations.ibd
-rw-rw----. 1 mysql mysql    114688  4月 22 11:13 2013 sessions.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 config.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 graph_theme.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 history_str_sync.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 history_sync.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 history_text.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 history_uint_sync.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 httpstepitem.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 httptestitem.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 icon_map.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 icon_mapping.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 maintenances_groups.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 maintenances_hosts.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 maintenances_windows.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 media.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 opcommand_grp.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 opcommand_hst.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 opgroup.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 opmessage_grp.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 opmessage_usr.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 optemplate.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 proxy_autoreg_host.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 proxy_dhistory.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 proxy_history.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 rights.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 scripts.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 service_alarms.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 services_links.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 slides.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 sysmaps_link_triggers.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 trigger_depends.ibd
-rw-rw----. 1 mysql mysql    131072  4月  3 14:22 2013 users_groups.ibd
-rw-rw----. 1 mysql mysql    131072  4月 20 14:09 2013 dservices.ibd
-rw-rw----. 1 mysql mysql    131072  4月 20 14:16 2013 hosts_groups.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 01:50 2013 applications.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 01:50 2013 hosts_templates.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 01:50 2013 interface.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 01:51 2013 auditlog.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 10:35 2013 graph_discovery.ibd
-rw-rw----. 1 mysql mysql    131072  4月 22 10:35 2013 trigger_discovery.ibd
-rw-rw----. 1 mysql mysql    147456  4月  3 14:22 2013 httptest.ibd
-rw-rw----. 1 mysql mysql    147456  4月  3 14:22 2013 sysmaps.ibd
-rw-rw----. 1 mysql mysql    147456  4月  3 14:22 2013 sysmaps_links.ibd
-rw-rw----. 1 mysql mysql    147456  4月  5 15:44 2013 acknowledges.ibd
-rw-rw----. 1 mysql mysql    147456  4月 22 09:23 2013 profiles.ibd
-rw-rw----. 1 mysql mysql    163840  4月 22 01:50 2013 functions.ibd
-rw-rw----. 1 mysql mysql    163840  4月 22 10:35 2013 graphs.ibd
-rw-rw----. 1 mysql mysql    180224  4月  3 14:22 2013 sysmaps_elements.ibd
-rw-rw----. 1 mysql mysql    180224  4月 22 01:50 2013 hosts.ibd
-rw-rw----. 1 mysql mysql    180224  4月 22 10:35 2013 graphs_items.ibd
-rw-rw----. 1 mysql mysql    196608  4月  3 14:22 2013 alerts.ibd
-rw-rw----. 1 mysql mysql    196608  4月 22 10:35 2013 item_discovery.ibd
-rw-rw----. 1 mysql mysql    245760  4月 22 11:12 2013 triggers.ibd
-rw-rw----. 1 mysql mysql    327680  4月 22 01:50 2013 items_applications.ibd
-rw-rw----. 1 mysql mysql    524288  4月 22 11:04 2013 history_log.ibd
-rw-rw----. 1 mysql mysql    737280  4月 22 11:12 2013 events.ibd
-rw-rw----. 1 mysql mysql   9437184  4月  3 14:22 2013 images.ibd
-rw-rw----. 1 mysql mysql   9437184  4月 22 11:04 2013 history_str.ibd
-rw-rw----. 1 mysql mysql   9437184  4月 22 11:13 2013 items.ibd
-rw-rw----. 1 mysql mysql  10485760  4月 22 11:00 2013 trends.ibd
-rw-rw----. 1 mysql mysql  16777216  4月 22 11:08 2013 trends_uint.ibd
-rw-rw----. 1 mysql mysql  58720256  4月 22 11:13 2013 history.ibd
-rw-rw----. 1 mysql mysql 276824064  4月 22 11:13 2013 history_uint.ibd
[root@FLAMINGO]/var/lib/mysql/zabbix#
[root@FLAMINGO]/var/lib/mysql/zabbix# du -h .
388M    .
[root@FLAMINGO]/var/lib/mysql/zabbix#

■既存のテーブルの圧縮

既にfile per table状態になっていないとできないが、たまたま今回はデフォルト(MySQL 5.6)でfile per tableになっていたので、ALTER TABLEにて圧縮。
use zabbix;
ALTER TABLE acknowledges ROW_FORMAT=Compressed;
ALTER TABLE actions ROW_FORMAT=Compressed;
ALTER TABLE alerts ROW_FORMAT=Compressed;
ALTER TABLE applications ROW_FORMAT=Compressed;
ALTER TABLE auditlog ROW_FORMAT=Compressed;
ALTER TABLE auditlog_details ROW_FORMAT=Compressed;
ALTER TABLE autoreg_host ROW_FORMAT=Compressed;
ALTER TABLE conditions ROW_FORMAT=Compressed;
ALTER TABLE config ROW_FORMAT=Compressed;
ALTER TABLE dchecks ROW_FORMAT=Compressed;
ALTER TABLE dhosts ROW_FORMAT=Compressed;
ALTER TABLE drules ROW_FORMAT=Compressed;
ALTER TABLE dservices ROW_FORMAT=Compressed;
ALTER TABLE escalations ROW_FORMAT=Compressed;
ALTER TABLE events ROW_FORMAT=Compressed;
ALTER TABLE expressions ROW_FORMAT=Compressed;
ALTER TABLE functions ROW_FORMAT=Compressed;
ALTER TABLE globalmacro ROW_FORMAT=Compressed;
ALTER TABLE globalvars ROW_FORMAT=Compressed;
ALTER TABLE graph_discovery ROW_FORMAT=Compressed;
ALTER TABLE graph_theme ROW_FORMAT=Compressed;
ALTER TABLE graphs ROW_FORMAT=Compressed;
ALTER TABLE graphs_items ROW_FORMAT=Compressed;
ALTER TABLE groups ROW_FORMAT=Compressed;
ALTER TABLE help_items ROW_FORMAT=Compressed;
ALTER TABLE history ROW_FORMAT=Compressed;
ALTER TABLE history_log ROW_FORMAT=Compressed;
ALTER TABLE history_str ROW_FORMAT=Compressed;
ALTER TABLE history_str_sync ROW_FORMAT=Compressed;
ALTER TABLE history_sync ROW_FORMAT=Compressed;
ALTER TABLE history_text ROW_FORMAT=Compressed;
ALTER TABLE history_uint ROW_FORMAT=Compressed;
ALTER TABLE history_uint_sync ROW_FORMAT=Compressed;
ALTER TABLE host_inventory ROW_FORMAT=Compressed;
ALTER TABLE hostmacro ROW_FORMAT=Compressed;
ALTER TABLE hosts ROW_FORMAT=Compressed;
ALTER TABLE hosts_groups ROW_FORMAT=Compressed;
ALTER TABLE hosts_templates ROW_FORMAT=Compressed;
ALTER TABLE housekeeper ROW_FORMAT=Compressed;
ALTER TABLE httpstep ROW_FORMAT=Compressed;
ALTER TABLE httpstepitem ROW_FORMAT=Compressed;
ALTER TABLE httptest ROW_FORMAT=Compressed;
ALTER TABLE httptestitem ROW_FORMAT=Compressed;
ALTER TABLE icon_map ROW_FORMAT=Compressed;
ALTER TABLE icon_mapping ROW_FORMAT=Compressed;
ALTER TABLE ids ROW_FORMAT=Compressed;
ALTER TABLE images ROW_FORMAT=Compressed;
ALTER TABLE interface ROW_FORMAT=Compressed;
ALTER TABLE item_discovery ROW_FORMAT=Compressed;
ALTER TABLE items ROW_FORMAT=Compressed;
ALTER TABLE items_applications ROW_FORMAT=Compressed;
ALTER TABLE maintenances ROW_FORMAT=Compressed;
ALTER TABLE maintenances_groups ROW_FORMAT=Compressed;
ALTER TABLE maintenances_hosts ROW_FORMAT=Compressed;
ALTER TABLE maintenances_windows ROW_FORMAT=Compressed;
ALTER TABLE mappings ROW_FORMAT=Compressed;
ALTER TABLE media ROW_FORMAT=Compressed;
ALTER TABLE media_type ROW_FORMAT=Compressed;
ALTER TABLE node_cksum ROW_FORMAT=Compressed;
ALTER TABLE nodes ROW_FORMAT=Compressed;
ALTER TABLE opcommand ROW_FORMAT=Compressed;
ALTER TABLE opcommand_grp ROW_FORMAT=Compressed;
ALTER TABLE opcommand_hst ROW_FORMAT=Compressed;
ALTER TABLE opconditions ROW_FORMAT=Compressed;
ALTER TABLE operations ROW_FORMAT=Compressed;
ALTER TABLE opgroup ROW_FORMAT=Compressed;
ALTER TABLE opmessage ROW_FORMAT=Compressed;
ALTER TABLE opmessage_grp ROW_FORMAT=Compressed;
ALTER TABLE opmessage_usr ROW_FORMAT=Compressed;
ALTER TABLE optemplate ROW_FORMAT=Compressed;
ALTER TABLE profiles ROW_FORMAT=Compressed;
ALTER TABLE proxy_autoreg_host ROW_FORMAT=Compressed;
ALTER TABLE proxy_dhistory ROW_FORMAT=Compressed;
ALTER TABLE proxy_history ROW_FORMAT=Compressed;
ALTER TABLE regexps ROW_FORMAT=Compressed;
ALTER TABLE rights ROW_FORMAT=Compressed;
ALTER TABLE screens ROW_FORMAT=Compressed;
ALTER TABLE screens_items ROW_FORMAT=Compressed;
ALTER TABLE scripts ROW_FORMAT=Compressed;
ALTER TABLE service_alarms ROW_FORMAT=Compressed;
ALTER TABLE services ROW_FORMAT=Compressed;
ALTER TABLE services_links ROW_FORMAT=Compressed;
ALTER TABLE services_times ROW_FORMAT=Compressed;
ALTER TABLE sessions ROW_FORMAT=Compressed;
ALTER TABLE slides ROW_FORMAT=Compressed;
ALTER TABLE slideshows ROW_FORMAT=Compressed;
ALTER TABLE sysmap_element_url ROW_FORMAT=Compressed;
ALTER TABLE sysmap_url ROW_FORMAT=Compressed;
ALTER TABLE sysmaps ROW_FORMAT=Compressed;
ALTER TABLE sysmaps_elements ROW_FORMAT=Compressed;
ALTER TABLE sysmaps_link_triggers ROW_FORMAT=Compressed;
ALTER TABLE sysmaps_links ROW_FORMAT=Compressed;
ALTER TABLE timeperiods ROW_FORMAT=Compressed;
ALTER TABLE trends ROW_FORMAT=Compressed;
ALTER TABLE trends_uint ROW_FORMAT=Compressed;
ALTER TABLE trigger_depends ROW_FORMAT=Compressed;
ALTER TABLE trigger_discovery ROW_FORMAT=Compressed;
ALTER TABLE triggers ROW_FORMAT=Compressed;
ALTER TABLE user_history ROW_FORMAT=Compressed;
ALTER TABLE users ROW_FORMAT=Compressed;
ALTER TABLE users_groups ROW_FORMAT=Compressed;
ALTER TABLE usrgrp ROW_FORMAT=Compressed;
ALTER TABLE valuemaps ROW_FORMAT=Compressed;

■圧縮後の効果を確認

388MB → 183MB (52%削減!)できた。

[root@FLAMINGO]/var/lib/mysql/zabbix# ls -l | sort -k5
合計 186664
-rw-rw----. 1 mysql mysql        65  4月  3 14:21 2013 db.opt
-rw-rw----. 1 mysql mysql      8602  4月 22 11:22 2013 valuemaps.frm
-rw-rw----. 1 mysql mysql      8622  4月 22 11:15 2013 globalvars.frm
-rw-rw----. 1 mysql mysql      8628  4月 22 11:22 2013 users_groups.frm
-rw-rw----. 1 mysql mysql      8634  4月 22 11:15 2013 groups.frm
-rw-rw----. 1 mysql mysql      8636  4月 22 11:22 2013 slideshows.frm
-rw-rw----. 1 mysql mysql      8642  4月 22 11:15 2013 globalmacro.frm
-rw-rw----. 1 mysql mysql      8642  4月 22 11:15 2013 help_items.frm
-rw-rw----. 1 mysql mysql      8642  4月 22 11:22 2013 regexps.frm
-rw-rw----. 1 mysql mysql      8644  4月 22 11:22 2013 hosts_groups.frm
-rw-rw----. 1 mysql mysql      8650  4月 22 11:22 2013 icon_map.frm
-rw-rw----. 1 mysql mysql      8650  4月 22 11:22 2013 opgroup.frm
-rw-rw----. 1 mysql mysql      8652  4月 22 11:22 2013 items_applications.frm
-rw-rw----. 1 mysql mysql      8654  4月 22 11:15 2013 history.frm
-rw-rw----. 1 mysql mysql      8654  4月 22 11:16 2013 history_str.frm
-rw-rw----. 1 mysql mysql      8654  4月 22 11:16 2013 history_uint.frm
-rw-rw----. 1 mysql mysql      8656  4月 22 11:22 2013 hosts_templates.frm
-rw-rw----. 1 mysql mysql      8660  4月 22 11:22 2013 opcommand_hst.frm
-rw-rw----. 1 mysql mysql      8660  4月 22 11:22 2013 opmessage_usr.frm
-rw-rw----. 1 mysql mysql      8662  4月 22 11:22 2013 opcommand_grp.frm
-rw-rw----. 1 mysql mysql      8662  4月 22 11:22 2013 optemplate.frm
-rw-rw----. 1 mysql mysql      8664  4月 22 11:22 2013 opmessage_grp.frm
-rw-rw----. 1 mysql mysql      8668  4月 22 11:22 2013 images.frm
-rw-rw----. 1 mysql mysql      8670  4月 22 11:22 2013 maintenances_hosts.frm
-rw-rw----. 1 mysql mysql      8670  4月 22 11:22 2013 rights.frm
-rw-rw----. 1 mysql mysql      8672  4月 22 11:22 2013 hostmacro.frm
-rw-rw----. 1 mysql mysql      8672  4月 22 11:22 2013 trigger_depends.frm
-rw-rw----. 1 mysql mysql      8674  4月 22 11:22 2013 maintenances_groups.frm
-rw-rw----. 1 mysql mysql      8680  4月 22 11:16 2013 history_text.frm
-rw-rw----. 1 mysql mysql      8680  4月 22 11:22 2013 sessions.frm
-rw-rw----. 1 mysql mysql      8682  4月 22 11:22 2013 housekeeper.frm
-rw-rw----. 1 mysql mysql      8682  4月 22 11:22 2013 ids.frm
-rw-rw----. 1 mysql mysql      8682  4月 22 11:22 2013 mappings.frm
-rw-rw----. 1 mysql mysql      8684  4月 22 11:15 2013 applications.frm
-rw-rw----. 1 mysql mysql      8684  4月 22 11:22 2013 service_alarms.frm
-rw-rw----. 1 mysql mysql      8686  4月 22 11:22 2013 httpstepitem.frm
-rw-rw----. 1 mysql mysql      8686  4月 22 11:22 2013 httptestitem.frm
-rw-rw----. 1 mysql mysql      8686  4月 22 11:22 2013 services_links.frm
-rw-rw----. 1 mysql mysql      8688  4月 22 11:22 2013 sysmap_element_url.frm
-rw-rw----. 1 mysql mysql      8694  4月 22 11:22 2013 maintenances_windows.frm
-rw-rw----. 1 mysql mysql      8700  4月 22 11:15 2013 graph_discovery.frm
-rw-rw----. 1 mysql mysql      8704  4月 22 11:22 2013 screens.frm
-rw-rw----. 1 mysql mysql      8708  4月 22 11:15 2013 dhosts.frm
-rw-rw----. 1 mysql mysql      8710  4月 22 11:22 2013 slides.frm
-rw-rw----. 1 mysql mysql      8712  4月 22 11:22 2013 trigger_discovery.frm
-rw-rw----. 1 mysql mysql      8714  4月 22 11:16 2013 history_str_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月 22 11:16 2013 history_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月 22 11:22 2013 history_uint_sync.frm
-rw-rw----. 1 mysql mysql      8714  4月 22 11:22 2013 sysmap_url.frm
-rw-rw----. 1 mysql mysql      8716  4月 22 11:15 2013 acknowledges.frm
-rw-rw----. 1 mysql mysql      8722  4月 22 11:22 2013 sysmaps_link_triggers.frm
-rw-rw----. 1 mysql mysql      8724  4月 22 11:15 2013 functions.frm
-rw-rw----. 1 mysql mysql      8726  4月 22 11:22 2013 nodes.frm
-rw-rw----. 1 mysql mysql      8728  4月 22 11:22 2013 usrgrp.frm
-rw-rw----. 1 mysql mysql      8730  4月 22 11:15 2013 conditions.frm
-rw-rw----. 1 mysql mysql      8732  4月 22 11:22 2013 services_times.frm
-rw-rw----. 1 mysql mysql      8734  4月 22 11:22 2013 opmessage.frm
-rw-rw----. 1 mysql mysql      8740  4月 22 11:22 2013 opconditions.frm
-rw-rw----. 1 mysql mysql      8744  4月 22 11:22 2013 node_cksum.frm
-rw-rw----. 1 mysql mysql      8744  4月 22 11:22 2013 proxy_autoreg_host.frm
-rw-rw----. 1 mysql mysql      8744  4月 22 11:22 2013 trends.frm
-rw-rw----. 1 mysql mysql      8744  4月 22 11:22 2013 trends_uint.frm
-rw-rw----. 1 mysql mysql      8774  4月 22 11:15 2013 auditlog_details.frm
-rw-rw----. 1 mysql mysql      8774  4月 22 11:22 2013 item_discovery.frm
-rw-rw----. 1 mysql mysql      8782  4月 22 11:15 2013 autoreg_host.frm
-rw-rw----. 1 mysql mysql      8784  4月 22 11:15 2013 drules.frm
-rw-rw----. 1 mysql mysql      8784  4月 22 11:22 2013 icon_mapping.frm
-rw-rw----. 1 mysql mysql      8784  4月 22 11:22 2013 interface.frm
-rw-rw----. 1 mysql mysql      8784  4月 22 11:22 2013 media.frm
-rw-rw----. 1 mysql mysql      8792  4月 22 11:22 2013 sysmaps_links.frm
-rw-rw----. 1 mysql mysql      8796  4月 22 11:22 2013 maintenances.frm
-rw-rw----. 1 mysql mysql      8806  4月 22 11:15 2013 expressions.frm
-rw-rw----. 1 mysql mysql      8826  4月 22 11:22 2013 services.frm
-rw-rw----. 1 mysql mysql      8832  4月 22 11:22 2013 operations.frm
-rw-rw----. 1 mysql mysql      8834  4月 22 11:16 2013 history_log.frm
-rw-rw----. 1 mysql mysql      8842  4月 22 11:15 2013 escalations.frm
-rw-rw----. 1 mysql mysql      8844  4月 22 11:22 2013 profiles.frm
-rw-rw----. 1 mysql mysql      8850  4月 22 11:22 2013 httpstep.frm
-rw-rw----. 1 mysql mysql      8854  4月 22 11:15 2013 graphs_items.frm
-rw-rw----. 1 mysql mysql      8856  4月 22 11:15 2013 events.frm
-rw-rw----. 1 mysql mysql      8862  4月 22 11:15 2013 auditlog.frm
-rw-rw----. 1 mysql mysql      8868  4月 22 11:22 2013 proxy_history.frm
-rw-rw----. 1 mysql mysql      8872  4月 22 11:22 2013 proxy_dhistory.frm
-rw-rw----. 1 mysql mysql      8878  4月 22 11:22 2013 timeperiods.frm
-rw-rw----. 1 mysql mysql      8914  4月 22 11:22 2013 scripts.frm
-rw-rw----. 1 mysql mysql      8928  4月 22 11:15 2013 dservices.frm
-rw-rw----. 1 mysql mysql      8932  4月 22 11:22 2013 user_history.frm
-rw-rw----. 1 mysql mysql      8946  4月 22 11:22 2013 opcommand.frm
-rw-rw----. 1 mysql mysql      8960  4月 22 11:22 2013 httptest.frm
-rw-rw----. 1 mysql mysql      8960  4月 22 11:22 2013 media_type.frm
-rw-rw----. 1 mysql mysql      8982  4月 22 11:15 2013 actions.frm
-rw-rw----. 1 mysql mysql      9026  4月 22 11:15 2013 dchecks.frm
-rw-rw----. 1 mysql mysql      9048  4月 22 11:22 2013 triggers.frm
-rw-rw----. 1 mysql mysql      9076  4月 22 11:15 2013 alerts.frm
-rw-rw----. 1 mysql mysql      9122  4月 22 11:22 2013 users.frm
-rw-rw----. 1 mysql mysql      9138  4月 22 11:22 2013 screens_items.frm
-rw-rw----. 1 mysql mysql      9252  4月 22 11:22 2013 sysmaps_elements.frm
-rw-rw----. 1 mysql mysql      9286  4月 22 11:15 2013 graph_theme.frm
-rw-rw----. 1 mysql mysql      9296  4月 22 11:15 2013 graphs.frm
-rw-rw----. 1 mysql mysql      9854  4月 22 11:22 2013 sysmaps.frm
-rw-rw----. 1 mysql mysql      9970  4月 22 11:22 2013 hosts.frm
-rw-rw----. 1 mysql mysql     11008  4月 22 11:15 2013 config.frm
-rw-rw----. 1 mysql mysql     14648  4月 22 11:22 2013 items.frm
-rw-rw----. 1 mysql mysql     15832  4月 22 11:22 2013 host_inventory.frm
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 actions.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 applications.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 auditlog.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 auditlog_details.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 autoreg_host.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 conditions.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 config.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 dchecks.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 dhosts.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 drules.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 dservices.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 escalations.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 expressions.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 functions.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 globalmacro.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 globalvars.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 graph_discovery.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 graph_theme.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 groups.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:15 2013 help_items.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:16 2013 history_str_sync.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:16 2013 history_sync.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:16 2013 history_text.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 history_uint_sync.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 host_inventory.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 hostmacro.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 hosts_groups.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 hosts_templates.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 housekeeper.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 httpstep.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 httpstepitem.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 httptestitem.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 icon_map.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 icon_mapping.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 interface.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 maintenances.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 maintenances_groups.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 maintenances_hosts.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 maintenances_windows.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 mappings.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 media.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 media_type.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 node_cksum.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 nodes.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opcommand.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opcommand_grp.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opcommand_hst.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opconditions.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 operations.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opgroup.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opmessage.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opmessage_grp.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 opmessage_usr.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 optemplate.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 proxy_autoreg_host.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 proxy_dhistory.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 proxy_history.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 regexps.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 rights.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 screens.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 screens_items.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 scripts.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 service_alarms.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 services.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 services_links.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 services_times.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 slides.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 slideshows.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 sysmap_element_url.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 sysmap_url.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 sysmaps_link_triggers.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 timeperiods.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 trigger_depends.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 trigger_discovery.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 user_history.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 users.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 users_groups.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 usrgrp.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:22 2013 valuemaps.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:23 2013 ids.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:25 2013 profiles.ibd
-rw-rw----. 1 mysql mysql     65536  4月 22 11:25 2013 sessions.ibd
-rw-rw----. 1 mysql mysql     73728  4月 22 11:15 2013 acknowledges.ibd
-rw-rw----. 1 mysql mysql     73728  4月 22 11:15 2013 graphs_items.ibd
-rw-rw----. 1 mysql mysql     73728  4月 22 11:22 2013 httptest.ibd
-rw-rw----. 1 mysql mysql     73728  4月 22 11:22 2013 sysmaps.ibd
-rw-rw----. 1 mysql mysql     73728  4月 22 11:22 2013 sysmaps_links.ibd
-rw-rw----. 1 mysql mysql     81920  4月 22 11:15 2013 graphs.ibd
-rw-rw----. 1 mysql mysql     90112  4月 22 11:22 2013 hosts.ibd
-rw-rw----. 1 mysql mysql     90112  4月 22 11:22 2013 sysmaps_elements.ibd
-rw-rw----. 1 mysql mysql     90112  4月 22 11:23 2013 triggers.ibd
-rw-rw----. 1 mysql mysql     98304  4月 22 11:15 2013 alerts.ibd
-rw-rw----. 1 mysql mysql     98304  4月 22 11:22 2013 item_discovery.ibd
-rw-rw----. 1 mysql mysql    147456  4月 22 11:22 2013 items_applications.ibd
-rw-rw----. 1 mysql mysql    212992  4月 22 11:16 2013 history_log.ibd
-rw-rw----. 1 mysql mysql    360448  4月 22 11:23 2013 events.ibd
-rw-rw----. 1 mysql mysql    401408  4月 22 11:25 2013 items.ibd
-rw-rw----. 1 mysql mysql   2097152  4月 22 11:16 2013 history_str.ibd
-rw-rw----. 1 mysql mysql   2097152  4月 22 11:22 2013 images.ibd
-rw-rw----. 1 mysql mysql   2097152  4月 22 11:22 2013 trends.ibd
-rw-rw----. 1 mysql mysql   3145728  4月 22 11:22 2013 trends_uint.ibd
-rw-rw----. 1 mysql mysql  30408704  4月 22 11:25 2013 history.ibd
-rw-rw----. 1 mysql mysql 142606336  4月 22 11:25 2013 history_uint.ibd
[root@FLAMINGO]/var/lib/mysql/zabbix#
[root@FLAMINGO]/var/lib/mysql/zabbix# du -h .
183M    .
[root@FLAMINGO]/var/lib/mysql/zabbix#

2013/04/09

2013年4月5日は26年ぶりの特別な“ある日”らしい のをPowerShellで確かめてみた。

2013年4月5日は26年ぶりの特別な“ある日”らしい」というまとめを見た上司が一言。

「じゃ、次はいつ来るんだっけ?」

というわけで、PowerShellでワンライナーを組んで確かめてみました。

for ( $dt = (get-date).adddays(-365*30) ; $dt -le ((get-date).adddays(365*400)); $dt = $dt.adddays(1) ) { $digits = @{}; $dt.tostring("yyyyMMdd") -split "" | where {$_ -match "[0-9]" } | foreach { $digits[$_] += 1 }; if ( $dt.tostring("yyyyMMdd").length -eq $digits.count ) { echo $dt.tostring("yyyy/MM/dd"); } }


1983/04/25
1983/04/26
1983/04/27
1983/05/24
1983/05/26
1983/05/27
1983/06/24
1983/06/25
1983/06/27
1983/07/24
1983/07/25
1983/07/26
1984/03/25
1984/03/26
1984/03/27
1984/05/23
1984/05/26
1984/05/27
1984/06/23
1984/06/25
1984/06/27
1984/07/23
1984/07/25
1984/07/26
1985/03/24
1985/03/26
1985/03/27
1985/04/23
1985/04/26
1985/04/27
1985/06/23
1985/06/24
1985/06/27
1985/07/23
1985/07/24
1985/07/26
1986/03/24
1986/03/25
1986/03/27
1986/04/23
1986/04/25
1986/04/27
1986/05/23
1986/05/24
1986/05/27
1986/07/23
1986/07/24
1986/07/25
1987/03/24
1987/03/25
1987/03/26
1987/04/23
1987/04/25
1987/04/26
1987/05/23
1987/05/24
1987/05/26
1987/06/23
1987/06/24
1987/06/25 ☆
2345/06/17 ←次は2345年6月17日!!ずいぶん先ですねw
2345/06/18
2345/06/19
2345/07/16
2345/07/18
2345/07/19
2345/08/16
2345/08/17
2345/08/19
2345/09/16
2345/09/17
2345/09/18
2346/05/17
2346/05/18
2346/05/19
2346/07/15
2346/07/18
2346/07/19
2346/08/15
2346/08/17
2346/08/19
2346/09/15
2346/09/17
2346/09/18
2347/05/16
2347/05/18
2347/05/19
2347/06/15
2347/06/18
2347/06/19
2347/08/15
2347/08/16
2347/08/19
2347/09/15
2347/09/16
2347/09/18
2348/05/16
2348/05/17
2348/05/19
2348/06/15
2348/06/17
2348/06/19
2348/07/15
2348/07/16
2348/07/19
2348/09/15
2348/09/16
2348/09/17
2349/05/16
2349/05/17
2349/05/18
2349/06/15
2349/06/17
2349/06/18
2349/07/15
2349/07/16
2349/07/18
2349/08/15
2349/08/16
2349/08/17
2354/06/17
2354/06/18
2354/06/19
2354/07/16
2354/07/18
2354/07/19
2354/08/16
2354/08/17
2354/08/19
2354/09/16
2354/09/17
2354/09/18
2356/04/17
2356/04/18
2356/04/19
2356/07/14
2356/07/18
2356/07/19
2356/08/14
2356/08/17
2356/08/19
2356/09/14
2356/09/17
2356/09/18
2357/04/16
2357/04/18
2357/04/19
2357/06/14
2357/06/18
2357/06/19
2357/08/14
2357/08/16
2357/08/19
2357/09/14
2357/09/16
2357/09/18
2358/04/16
2358/04/17
2358/04/19
2358/06/14
2358/06/17
2358/06/19
2358/07/14
2358/07/16
2358/07/19
2358/09/14
2358/09/16
2358/09/17
2359/04/16
2359/04/17
2359/04/18
2359/06/14
2359/06/17
2359/06/18
2359/07/14
2359/07/16
2359/07/18
2359/08/14
2359/08/16
2359/08/17
2364/05/17
2364/05/18
2364/05/19
2364/07/15
2364/07/18
2364/07/19
2364/08/15
2364/08/17
2364/08/19
2364/09/15
2364/09/17
2364/09/18



とは言え、これだけだとなんのこっちゃだと思うのでばらして解説。


for ( $dt = (get-date).adddays(-365*30) ; $dt -le ((get-date).adddays(365*400)); $dt = $dt.adddays(1) ) {
 $digits = @{};
 $dt.tostring("yyyyMMdd") -split "" | where {$_ -match "[0-9]" } | foreach { $digits[$_] += 1 };
 if ( $dt.tostring("yyyyMMdd").length -eq $digits.count ) {
  echo $dt.tostring("yyyy/MM/dd");
 }

}

Get-Dateは現在日付を得るコマンドレット。これに対してAddDays関数を呼び出すことで一日ずつテストする日付を作ります。

次に $digits = @{} で連想配列(HashTable)を作成し、日付の文字を1桁ずつばらして(-split)、それぞれの個数を計算($digits[$_] += 1)しています。
最終的に $digits.count には各桁に利用された数字の種類数が溜まります。

そして日付の桁数と、利用されている数字の種類数を比較し、同一であれば、各桁に利用されている数字が全て異なることが分かるのでechoで出力しています。

Powershellでもワンライナー芸できるのでお暇な方は是非。


<追記>
そもそも話題になった発端は、2013/4/5のような可変長の日付表示で数字が全部異なる場合だったのでスクリプトを修正しました。


for ( $dt = (get-date).adddays(-365*27) ; $dt -le ((get-date).adddays(365*27)); $dt = $dt.adddays(1) ) {
 $digits = @{};
 $dt.tostring("yyyyMd") -split "" | where {$_ -match "[0-9]" } | foreach { $digits[$_] += 1 };
 if ( $dt.tostring("yyyyMd").length -eq $digits.count ) {
  echo $dt.tostring("yyyy/M/d");
 }
}



1986/4/20
1986/4/23
1986/4/25
1986/4/27
1986/4/30
1986/5/2
1986/5/3
1986/5/4
1986/5/7
1986/5/20
1986/5/23
1986/5/24
1986/5/27
1986/5/30
1986/7/2
1986/7/3
1986/7/4
1986/7/5
1986/7/20
1986/7/23
1986/7/24
1986/7/25
1986/7/30
1987/2/3
1987/2/4
1987/2/5
1987/2/6
1987/3/2
1987/3/4
1987/3/5
1987/3/6
1987/3/20
1987/3/24
1987/3/25
1987/3/26
1987/4/2
1987/4/3
1987/4/5
1987/4/6
1987/4/20
1987/4/23
1987/4/25
1987/4/26
1987/4/30
1987/5/2
1987/5/3
1987/5/4
1987/5/6
1987/5/20
1987/5/23
1987/5/24
1987/5/26
1987/5/30
1987/6/2
1987/6/3
1987/6/4
1987/6/5
1987/6/20
1987/6/23
1987/6/24
1987/6/25
1987/6/30 ☆26年前!
2013/4/5 ←久しぶり!!
2013/4/6
2013/4/7
2013/4/8
2013/4/9 ←え、もう数字がダブるの…
2013/5/4 ←と思ったら結構すぐ来るのね…
2013/5/6
2013/5/7
2013/5/8
2013/5/9
2013/6/4
2013/6/5
2013/6/7
2013/6/8
2013/6/9
2013/7/4
2013/7/5
2013/7/6
2013/7/8
2013/7/9
2013/8/4
2013/8/5
2013/8/6
2013/8/7
2013/8/9
2013/9/4
2013/9/5
2013/9/6
2013/9/7
2013/9/8
2014/3/5
2014/3/6
2014/3/7
2014/3/8
2014/3/9
2014/5/3
2014/5/6
2014/5/7
2014/5/8
2014/5/9
2014/6/3
2014/6/5
2014/6/7
2014/6/8
2014/6/9
2014/7/3
2014/7/5
2014/7/6
2014/7/8
2014/7/9
2014/8/3
2014/8/5
2014/8/6
2014/8/7
2014/8/9
2014/9/3
2014/9/5
2014/9/6
2014/9/7
2014/9/8
2015/3/4
2015/3/6
2015/3/7
2015/3/8
2015/3/9
2015/4/3
2015/4/6
2015/4/7
2015/4/8
2015/4/9
2015/6/3
2015/6/4
2015/6/7
2015/6/8
2015/6/9
2015/7/3
2015/7/4
2015/7/6
2015/7/8
2015/7/9
2015/8/3
2015/8/4
2015/8/6
2015/8/7
2015/8/9
2015/9/3
2015/9/4
2015/9/6
2015/9/7
2015/9/8
2016/3/4
2016/3/5
2016/3/7
2016/3/8
2016/3/9
2016/4/3
2016/4/5
2016/4/7
2016/4/8
2016/4/9
2016/5/3
2016/5/4
2016/5/7
2016/5/8
2016/5/9
2016/7/3
2016/7/4
2016/7/5
2016/7/8
2016/7/9
2016/8/3
2016/8/4
2016/8/5
2016/8/7
2016/8/9
2016/9/3
2016/9/4
2016/9/5
2016/9/7
2016/9/8
2017/3/4
2017/3/5
2017/3/6
2017/3/8
2017/3/9
2017/4/3
2017/4/5
2017/4/6
2017/4/8
2017/4/9
2017/5/3
2017/5/4
2017/5/6
2017/5/8
2017/5/9
2017/6/3
2017/6/4
2017/6/5
2017/6/8
2017/6/9
2017/8/3
2017/8/4
2017/8/5
2017/8/6
2017/8/9
2017/9/3
2017/9/4
2017/9/5
2017/9/6
2017/9/8
2018/3/4
2018/3/5
2018/3/6
2018/3/7
2018/3/9
2018/4/3
2018/4/5
2018/4/6
2018/4/7
2018/4/9
2018/5/3
2018/5/4
2018/5/6
2018/5/7
2018/5/9
2018/6/3
2018/6/4
2018/6/5
2018/6/7
2018/6/9
2018/7/3
2018/7/4
2018/7/5
2018/7/6
2018/7/9
2018/9/3
2018/9/4
2018/9/5
2018/9/6
2018/9/7
2019/3/4
2019/3/5
2019/3/6
2019/3/7
2019/3/8
2019/4/3
2019/4/5
2019/4/6
2019/4/7
2019/4/8
2019/5/3
2019/5/4
2019/5/6
2019/5/7
2019/5/8
2019/6/3
2019/6/4
2019/6/5
2019/6/7
2019/6/8
2019/7/3
2019/7/4
2019/7/5
2019/7/6
2019/7/8
2019/8/3
2019/8/4
2019/8/5
2019/8/6
2019/8/7 ☆!!
2031/4/5 ☆10年以上またダブり続けるのね…
2031/4/6
2031/4/7
2031/4/8
2031/4/9
2031/5/4
2031/5/6
2031/5/7
2031/5/8
2031/5/9
2031/6/4
2031/6/5
2031/6/7
2031/6/8
2031/6/9
2031/7/4
2031/7/5
2031/7/6
2031/7/8
2031/7/9
2031/8/4
2031/8/5
2031/8/6
2031/8/7
2031/8/9
2031/9/4
2031/9/5
2031/9/6
2031/9/7
2031/9/8
2034/1/5
2034/1/6
2034/1/7
2034/1/8
2034/1/9
2034/5/1
2034/5/6
2034/5/7
2034/5/8
2034/5/9
2034/5/16
2034/5/17
2034/5/18
2034/5/19
2034/6/1
2034/6/5
2034/6/7
2034/6/8
2034/6/9
2034/6/15
2034/6/17
2034/6/18
2034/6/19
2034/7/1
2034/7/5
2034/7/6
2034/7/8
2034/7/9
2034/7/15
2034/7/16
2034/7/18
2034/7/19
2034/8/1
2034/8/5
2034/8/6
2034/8/7
2034/8/9
2034/8/15
2034/8/16
2034/8/17
2034/8/19
2034/9/1
2034/9/5
2034/9/6
2034/9/7
2034/9/8
2034/9/15
2034/9/16
2034/9/17
2034/9/18
2035/1/4
2035/1/6
2035/1/7
2035/1/8
2035/1/9
2035/4/1
2035/4/6
2035/4/7
2035/4/8
2035/4/9
2035/4/16
2035/4/17
2035/4/18
2035/4/19
2035/6/1
2035/6/4
2035/6/7
2035/6/8
2035/6/9
2035/6/14
2035/6/17
2035/6/18
2035/6/19
2035/7/1
2035/7/4
2035/7/6
2035/7/8
2035/7/9
2035/7/14
2035/7/16
2035/7/18
2035/7/19
2035/8/1
2035/8/4
2035/8/6
2035/8/7
2035/8/9
2035/8/14
2035/8/16
2035/8/17
2035/8/19
2035/9/1
2035/9/4
2035/9/6
2035/9/7
2035/9/8
2035/9/14
2035/9/16
2035/9/17
2035/9/18
2036/1/4
2036/1/5
2036/1/7
2036/1/8
2036/1/9
2036/4/1
2036/4/5
2036/4/7
2036/4/8
2036/4/9
2036/4/15
2036/4/17
2036/4/18
2036/4/19
2036/5/1
2036/5/4
2036/5/7
2036/5/8
2036/5/9
2036/5/14
2036/5/17
2036/5/18
2036/5/19
2036/7/1
2036/7/4
2036/7/5
2036/7/8
2036/7/9
2036/7/14
2036/7/15
2036/7/18
2036/7/19
2036/8/1
2036/8/4
2036/8/5
2036/8/7
2036/8/9
2036/8/14
2036/8/15
2036/8/17
2036/8/19
2036/9/1
2036/9/4
2036/9/5
2036/9/7
2036/9/8
2036/9/14
2036/9/15
2036/9/17
2036/9/18
2037/1/4
2037/1/5
2037/1/6
2037/1/8
2037/1/9
2037/4/1
2037/4/5
2037/4/6
2037/4/8
2037/4/9
2037/4/15
2037/4/16
2037/4/18
2037/4/19
2037/5/1
2037/5/4
2037/5/6
2037/5/8
2037/5/9
2037/5/14
2037/5/16
2037/5/18
2037/5/19
2037/6/1
2037/6/4
2037/6/5
2037/6/8
2037/6/9
2037/6/14
2037/6/15
2037/6/18
2037/6/19
2037/8/1
2037/8/4
2037/8/5
2037/8/6
2037/8/9
2037/8/14
2037/8/15
2037/8/16
2037/8/19
2037/9/1
2037/9/4
2037/9/5
2037/9/6
2037/9/8
2037/9/14
2037/9/15
2037/9/16
2037/9/18
2038/1/4
2038/1/5
2038/1/6
2038/1/7
2038/1/9
2038/4/1

一覧にしてみると、あんまりありがたくない感じがしますねぇ。。。。


2013/03/28

UNIXで適当なパスワード文字列を生成する方法

mkpasswdコマンドが用意されていなかったので、ワンライナーでごまかしてみた。
パスワード文字列にすると 0⇔O とか 1⇔l⇔I が紛らわしいので、その辺は取り除いてある。
# cat /dev/urandom | tr -c -d '[:alnum:]' | tr -d 'O0lI1' | head -c 16 | awk '{print}'
からくりとしては、/dev/urandomからランダムなバイト列を読み出して、英数字(alnum)のみをフィルタリング、"O0lI1"を取り除いて、先頭16文字だけ表示している。

MySQLの mysql_secure_installation が中身でやっていること。

yum install mysql-serverなんかをたたいたあとで、手動でmysql_secure_installationを実行してたのを自動化するときのためのメモ。

# MySQL 5.1同梱のものの中身を見て転記しただけですが。

○rootユーザのパスワード文字列を設定する

-- SET ROOT PASSWORD --
UPDATE mysql.user SET Password=PASSWORD('[パスワード文字列]') WHERE User='root';

○anonymousユーザを削除する
-- REMOVE ANONYMOUS USERS --
DELETE FROM mysql.user WHERE User='';

○リモートからのrootログインを禁止する
-- REMOVE REMOTE ROOT --
DELETE FROM mysql.user
WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');

○TESTデータベースを削除する
-- REMOVE TEST DATABASE --
DROP DATABASE test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';

○権限を再読み出しする
-- RELOAD PRIVILEGE TABLES --
FLUSH PRIVILEGES;

2013/03/25

CentOS上でお手軽にChef Server & Clientな環境を作ってみた。

■Hyper-V上で仮想マシンを作成する。(Windows 8上のHyper-V 3.0 + PowerShellで実施)


○新規仮想マシンの作成
PS C:\VHD> New-VM -Name Chef-Serv
Name      State CPUUsage(%) MemoryAssigned(M) Uptime   Status
----      ----- ----------- ----------------- ------   ------
Chef-Serv Off   0           0                 00:00:00 正常稼働中
○仮想マシンのメモリ量を設定する。
PS C:\VHD> Set-VMMemory -VMName Chef-Serv -StartupBytes 2048MB
PS C:\VHD> Get-VMMemory -VMName Chef-Serv


VMName    DynamicMemoryEnabled Minimum(M) Startup(M) Maximum(M)
------    -------------------- ---------- ---------- ----------
Chef-Serv False                512        2048       1048576

○仮想マシンに接続する、仮想ハードディスク(VHDX)を作成する。
 ※ VHDXが肥大化する問題があるので、明示的にブロックサイズを1MBに指定している。[参考: 【これ重要かも】CentOS 5.9 を試してたら VHDX と EXT3 の組み合わせ問題に遭遇?]
PS C:\VHD> New-VHD -Path C:\VHD\Chef-Serv.vhdx -Dynamic -BlockSizeBytes 1MB -SizeBytes 16GB


ComputerName            : TESTPC01
Path                    : C:\VHD\Chef-Serv.vhdx
VhdFormat               : VHDX
VhdType                 : Dynamic
FileSize                : 4194304
Size                    : 17179869184
MinimumSize             :
LogicalSectorSize       : 512
PhysicalSectorSize      : 4096
BlockSize               : 1048576
ParentPath              :
FragmentationPercentage : 0
Alignment               : 1
Attached                : False
DiskNumber              :
IsDeleted               : False
Number                  :

○仮想マシンに仮想ディスク(VHDX)を追加する
PS C:\VHD> Add-VMHardDiskDrive -VMName Chef-Serv -ControllerType IDE -ControllerLocation 0 -Path C:\VHD\Chef-Serv.vhdx
PS C:\VHD> Get-VMHardDiskDrive -VMName Chef-Serv


VMName    ControllerType ControllerNumber ControllerLocation DiskNumber Path
------    -------------- ---------------- ------------------ ---------- ----
Chef-Serv IDE            0                0                             C:\VHD\Chef-Serv.vhdx

○仮想マシンにネットワークを設定する。
PS C:\VHD> Get-VMSwitch


Name                          SwitchType NetAdapterInterfaceDescription
----                          ---------- ------------------------------
外部接続スイッチ(有線LAN経由) External   Intel(R) 82579LM Gigabit Network Connection
外部接続スイッチ(WiMAX経由)   External   Remote NDIS based Internet Sharing Device
内部接続スイッチ              Internal
外部接続スイッチ(無線LAN経由) External   Intel(R) Centrino(R) Advanced-N 6205

PS C:\VHD> Add-VMNetworkAdapter -VMName Chef-Serv -SwitchName "外部接続スイッチ(WiMAX経由)"
PS C:\VHD> Get-VMNetworkAdapter -VMName Chef-Serv


Name                    IsManagementOs VMName    SwitchName                  MacAddress   Status IPAddresses
----                    -------------- ------    ----------                  ----------   ------ -----------
ネットワーク アダプター False          Chef-Serv 外部接続スイッチ(WiMAX経由) 000000000000        {}

○CentOS 6.4のインストールメディアをマウントする。
PS C:\VHD> Set-VMDvdDrive -VMName Chef-Serv -Path C:\TEMP\CentOS-6.4-x86_64-minimal.iso
PS C:\VHD> Get-VMDvdDrive -VMName Chef-Serv


VMName    ControllerType ControllerNumber ControllerLocation DvdMediaType Path
------    -------------- ---------------- ------------------ ------------ ----
Chef-Serv IDE            1                0                  ISO          C:\TEMP\CentOS-6.4-x86_64-minimal.iso

○仮想マシンを起動し、仮想マシン接続する。
PS C:\VHD> Start-VM -VMName Chef-Serv
PS C:\VHD> vmconnect localhost Chef-Serv

■CentOSのインストール。

CentOSのインストールウィザードの詳細は割愛。 # CentOS 5.9/6.4以降は、Hyper-V統合サービスが標準添付されているので、マウスやキーボードははじめから動きます。

■OS周りの設定。

○まずはyum update。
# yum -y update

○IPアドレスを固定しておく。
# ifconfig -a | grep eth1 | awk '{print "HWADDR="$5;} > /etc/sysconfig/network-scripts/ifcfg-eth1
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=00:15:5D:00:6A:1B
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.101.11
NETMASK=255.255.255.0

# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=CHEFSERV.local

# vi /etc/hosts
192.168.101.11 CHEFSREV CHEFSERV.local


# ifconfig -a

○何かと問題になるので、iptablesは事前にオフにしておく。
# service iptables stop
# chkconfig iptables off
# service ip6tables stop
# chkconfig ip6tables off

# shutdown -r now

☆細かいOSの設定変更はどうせChefのrecipe上で管理していくのでパス。

■Chef Serverの導入

今回は、opscode.comからrpmをダウンロードしてきてインストールしてみる。
○Cher ServerのRPMファイルのダウンロード
# curl -O -L https://opscode-omnitruck-release.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.6-1.el6.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  169M  100  169M    0     0   444k      0  0:06:30  0:06:30 --:--:--  480k


# file chef-server-11.0.6-1.el6.x86_64.rpm
chef-server-11.0.6-1.el6.x86_64.rpm: RPM v3.0 bin i386/x86_64 chef-server-11.0.6-1.el6


# ls -l chef-server-11.0.6-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 177967164  3月 25 16:12 2013 chef-server-11.0.6-1.el6.x86_64.rpm

○RPMファイルのインストール
# rpm -ivh chef-server-11.0.6-1.el6.x86_64.rpm
警告: chef-server-11.0.6-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef-server            ########################################### [100%]
Thank you for installing Chef Server!


The next step in the install process is to run:


sudo chef-server-ctl reconfigure

○Chefの初期設定
# chef-server-ctl reconfigure
# chef-server-ctl test

○WebUIへの初回ログオン
https://chef-server/ へアクセスする。
デフォルトのユーザ名、パスワードは下記コマンドで分かる。
# grep web_ui_admin /opt/chef-server/embedded/cookbooks/chef-server/attributes/default.rb
default['chef_server']['chef-server-webui']['web_ui_admin_user_name'] = "admin"
default['chef_server']['chef-server-webui']['web_ui_admin_default_password'] = "p@ssw0rd1"

これでChef Serverの導入は終わり。

■Chef Workstationの設定

○Chefコマンド群をインストールする。
# curl -O -L https://opscode-omnitruck-release.s3.amazonaws.com/el/6/x86_64/chef-11.4.0-1.el6.x86_64.rpm


# rpm -ivh chef-11.4.0-1.el6.x86_64.rpm
警告: chef-11.4.0-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef                   ########################################### [100%]
Thank you for installing Chef!

○Chef関連の操作を行うためのレポジトリディレクトリをopscodeのgithubから複製しておく。
# yum install git
# git clone https://github.com/opscode/chef-repo.git chef-repo
Initialized empty Git repository in /root/chef-repo/.git/
remote: Counting objects: 202, done.
remote: Compressing objects: 100% (120/120), done.
remote: Total 202 (delta 73), reused 162 (delta 49)
Receiving objects: 100% (202/202), 34.27 KiB, done.
Resolving deltas: 100% (73/73), done.
# cd chef-repo
# ls -al
drwxr-xr-x. 9 root root  4096  3月 25 16:47 2013 .
dr-xr-x---. 6 root root  4096  3月 25 16:46 2013 ..
drwxr-xr-x. 8 root root  4096  3月 25 16:47 2013 .git
-rw-r--r--. 1 root root    18  3月 25 16:47 2013 .gitignore
-rw-r--r--. 1 root root 10850  3月 25 16:47 2013 LICENSE
-rw-r--r--. 1 root root  3521  3月 25 16:47 2013 README.md
-rw-r--r--. 1 root root  2171  3月 25 16:47 2013 Rakefile
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 certificates
-rw-r--r--. 1 root root   156  3月 25 16:47 2013 chefignore
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 config
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 cookbooks
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 data_bags
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 environments
drwxr-xr-x. 2 root root  4096  3月 25 16:47 2013 roles

○Chefリポジトリのディレクトリに、Chef Serverと通信するための認証ファイルを置いておく。
# mkdir .chef
# cd .chef
# scp -p chefserv:/etc/chef-server/admin.pem ./
# scp -p chefserv:/etc/chef-server/chef-validator.pem ./
# ls -al
drwxr-xr-x.  2 root root 4096  3月 25 16:51 2013 .
drwxr-xr-x. 10 root root 4096  3月 25 16:48 2013 ..
-rw-------.  1 root root 1679  3月 25 16:19 2013 admin.pem
-rw-------.  1 root root 1679  3月 25 16:19 2013 chef-validator.pem

○knifeの初期設定
 chef server URLはデフォルトだと全然違うポート&プロトコルを指しているので、明示的にhttps://chef-serverのipアドレス:443 を指定してあげる必要がある。

# knife configure
WARNING: No knife configuration file found
Where should I put the config file? [/root/.chef/knife.rb] /root/chef-repo/.chef/knife.rb
Please enter the chef server URL: [http://CHEFSERV:4000] https://chefserv:443
Please enter an existing username or clientname for the API: [root] admin
Please enter the validation clientname: [chef-validator]
Please enter the location of the validation key: [/etc/chef/validation.pem]
Please enter the path to a chef repository (or leave blank): /root/chef-repo
*****


You must place your client key in:
  /root/chef-repo/.chef/admin.pem
Before running commands with Knife!


*****


You must place your validation key in:
  /etc/chef/validation.pem
Before generating instance data with Knife!


*****
Configuration file written to /root/chef-repo/.chef/knife.rb

■Chef Clientの登録

さっそく、上記で設定したWorkstation上でknife bootstrapコマンドを実行して、Chef Clientを設定する。
○zabbixsvという名前のクライアントとなるサーバを追加する。
# cd ~/chef-repo
# knife bootstrap zabbixsv.local
Bootstrapping Chef on zabbixsv.local
Failed to authenticate root - trying password auth
Enter your password:
zabbixsv.local Downloading Chef 11.4.0 for el...
zabbixsv.local Installing Chef 11.4.0
zabbixsv.local 警告: /tmp/tmp.NxRNG2Nq/chef-11.4.0.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
zabbixsv.local 準備中...
zabbixsv.local ########################################    (100%)
zabbixsv.local ########################################### [100%]
zabbixsv.local    1:chef
zabbixsv.local ########################################### [100%]
zabbixsv.local Thank you for installing Chef!
zabbixsv.local Starting Chef Client, version 11.4.0
zabbixsv.local Creating a new client identity for ZABBIXSV using the validator key.
zabbixsv.local resolving cookbooks for run list: []
zabbixsv.local Synchronizing Cookbooks:
zabbixsv.local Compiling Cookbooks...
zabbixsv.local [2013-03-25T17:25:54+09:00] WARN: Node ZABBIXSV has an empty run list.
zabbixsv.local Converging 0 resources
zabbixsv.local Chef Client finished, 0 resources updated

○Chef Server上で認識されていることを確認する。
# knife node list
ZABBIXSV

○一応Chef Server自身もクライアントとして認識させておく。
# knife bootstrap chefserv.local
Bootstrapping Chef on chefserv.local
Failed to authenticate root - trying password auth
Enter your password:
chefserv.local Starting Chef Client, version 11.4.0
chefserv.local Creating a new client identity for CHEFSERV using the validator key.
chefserv.local resolving cookbooks for run list: []
chefserv.local Synchronizing Cookbooks:
chefserv.local Compiling Cookbooks...
chefserv.local [2013-03-25T17:29:57+09:00] WARN: Node CHEFSERV has an empty run list.
chefserv.local Converging 0 resources
chefserv.local Chef Client finished, 0 resources updated

○ノードが増えた!
# knife node list
CHEFSERV
ZABBIXSV

■knifeコマンドで遊んでみる。

knife node listで表示されるようになると、sshコマンドなどで遊べるようになる。
# knife ssh -x root -P $(head -1) "hostname:*" date
P@ssw0rd!
MYSQLSRV 2013年  3月 25日 月曜日 17:50:17 JST
ZABBIXSV 2013年  3月 25日 月曜日 17:50:17 JST
CHEFSERV 2013年  3月 25日 月曜日 17:50:17 JST

☆ -P $(head -1)は、標準入力から1行読み出してssh時のパスワードとするための小技。  普通に "-P P@ssw0rd!" のように入力してしまうと、historyに保存されてしまったり、ps -efで他のユーザにパスワード文字列を読み取られてしまったりするのを回避するためにこうしている。

■簡単なレシピを作成し、適用してみる。


簡単にyum install zshするだけのレシピを作成し適用してみる。

○いじる元になるcookbookの作成
# cd ~/chef-repo/cookbooks
# knife cookbook create install-zsh
# cd install-zsh

○レシピファイルの中に、今回はzshをインストールするように記載を追加する。
# vi recipes/default.rb
package "zsh" do
 action :install
end

○Chef Serverにcookbookを登録する
# knife cookbook upload install-zsh

○実際にRun List (適用すべきレシピ=cookbook一覧)に新規作成したinstall-zshを登録する。
# knife node run_list add CHEFSERV install-zsh

○chef-clientを実行し、Run Listに記載されているレシピを実際適用させる。
# knife ssh -x root -P $(head -n1) "hostname:CHEFSERV" chef-client
CHEFSERV Recipe: install-zsh::default
CHEFSERV   * package[zsh] action install
CHEFSERV  (up to date)
CHEFSERV Chef Client finished, 1 resources updated

○本当に導入されているか、おしゃれにknife ssh経由で確認して見る。
# knife ssh -x root -P $(head -n1) "hostname:CHEFSERV" "rpm -qa | grep zsh"
CHEFSERV zsh-4.3.10-5.el6.x86_64
#

以上! 何となく動いたからOK!!

2013/02/04

Pythonを使ってIMAPメールボックスのクォータ状態を表示する方法

Thunderbirdだと標準でIMAP QUOTAの情報を表示する機能がメールクライアント上に実装されているのだが、Sylpheedだとそういう機能がないのでスクリプトを書いてみた。
CentOS上のPythonと、Windows上のIronPythonで動いていることを確認した。

■IMAPのクォータを取得するPythonスクリプト

#!/usr/bin/python

import getpass, imaplib, re

print("Input your password for USERNAME@mail.example.com")
username = "USERNAME"
password = getpass.getpass()

mbox = imaplib.IMAP4("mail.example.com")
mbox.login(username, password)
quota = mbox.getquotaroot("INBOX")

print(quota)

match = re.match('.* (\d+) (\d+).*', quota[1][1][0])
used, total = match.groups()
used, total = int(used), int(total)
print("Quota Used: " + str(100.0*used/total) + "%")

mbox.logout()

print("\n")
raw_input("Please input any key...")

imaplib::getquotarootの戻り文字列は多分にIMAPサーバの仕様による気がするが、、、まぁ上記の正規表現でうまいこと動いている気がする。
# まぁThunderbirdでどう実装されているか見れば自明なんだが。。。

2013/01/26

EPELでインストールされるZabbixのバージョンについて (2013/01/26時点)


EPEL経由でもZabbix入れられるけど、Zabbix 2.0を入れたければ明示的にバージョンが入ったものを指定しようね。
というだけのメモ(._.)φ

■zabbix20-server-pgsql

================================================================================
 Package                   Arch       Version                 Repository   Size
================================================================================
Installing:
 zabbix20-server-pgsql     x86_64     2.0.4-1.el6             epel        1.4 M
Installing for dependencies:
 OpenIPMI-libs             x86_64     2.0.16-12.el6           base        475 k
 fping                     x86_64     2.4b2-10.el6            epel         31 k
 gnutls                    x86_64     2.8.5-4.el6_2.2         base        342 k
 iksemel                   x86_64     1.4-2.el6               epel         48 k
 libtasn1                  x86_64     2.3-3.el6_2.1           base        238 k
 libtool-ltdl              x86_64     2.2.6-15.5.el6          base         44 k
 lm_sensors-libs           x86_64     3.1.1-10.el6            base         37 k
 net-snmp-libs             x86_64     1:5.5-41.el6_3.1        updates     1.5 M
 perl                      x86_64     4:5.10.1-127.el6        base         10 M
 perl-Module-Pluggable     x86_64     1:3.90-127.el6          base         38 k
 perl-Pod-Escapes          x86_64     1:1.04-127.el6          base         30 k
 perl-Pod-Simple           x86_64     1:3.13-127.el6          base        210 k
 perl-libs                 x86_64     4:5.10.1-127.el6        base        576 k
 perl-version              x86_64     3:0.77-127.el6          base         49 k
 postgresql-libs           x86_64     8.4.13-1.el6_3          updates     200 k
 traceroute                x86_64     3:2.0.14-2.el6          base         51 k
 unixODBC                  x86_64     2.2.14-12.el6_3         updates     378 k
 zabbix20                  x86_64     2.0.4-1.el6             epel        176 k
 zabbix20-server           x86_64     2.0.4-1.el6             epel         25 k

Transaction Summary
================================================================================
Install      20 Package(s)


■zabbix-server-pgsql

================================================================================
 Package                   Arch       Version                 Repository   Size
================================================================================
Installing:
 zabbix-server-pgsql       x86_64     1.8.15-2.el6            epel        378 k
Installing for dependencies:
 OpenIPMI-libs             x86_64     2.0.16-12.el6           base        475 k
 fping                     x86_64     2.4b2-10.el6            epel         31 k
 gnutls                    x86_64     2.8.5-4.el6_2.2         base        342 k
 iksemel                   x86_64     1.4-2.el6               epel         48 k
 libtasn1                  x86_64     2.3-3.el6_2.1           base        238 k
 libtool-ltdl              x86_64     2.2.6-15.5.el6          base         44 k
 lm_sensors-libs           x86_64     3.1.1-10.el6            base         37 k
 net-snmp                  x86_64     1:5.5-41.el6_3.1        updates     302 k
 net-snmp-libs             x86_64     1:5.5-41.el6_3.1        updates     1.5 M
 perl                      x86_64     4:5.10.1-127.el6        base         10 M
 perl-Module-Pluggable     x86_64     1:3.90-127.el6          base         38 k
 perl-Pod-Escapes          x86_64     1:1.04-127.el6          base         30 k
 perl-Pod-Simple           x86_64     1:3.13-127.el6          base        210 k
 perl-libs                 x86_64     4:5.10.1-127.el6        base        576 k
 perl-version              x86_64     3:0.77-127.el6          base         49 k
 postgresql-libs           x86_64     8.4.13-1.el6_3          updates     200 k
 traceroute                x86_64     3:2.0.14-2.el6          base         51 k
 unixODBC                  x86_64     2.2.14-12.el6_3         updates     378 k
 zabbix                    x86_64     1.8.15-2.el6            epel         96 k
 zabbix-server             x86_64     1.8.15-2.el6            epel         54 k

Transaction Summary
================================================================================
Install      21 Package(s)



2013/01/15

Intel NUCにWindows Server 2012 (64bit)をインストールした。

Intel NUC DC3217IYE を購入したので、Windows Server 2012 + Hyper-Vを導入してみました。

前面から。
USBポートと比べてみると非常に小さいことが分かります。

背面には、HDMI×2個と、USB×2個、1GbE端子が並んでいます。

■PCを組み立てる

標準状態だと、下記のパーツを別途調達する必要があります。

  • DDR3-1333/1600 SO-DIMM対応メモリ
    安かったので、8GB×2枚 (総計16GB)を購入。
  • 1.8inch mSATA対応のSSD
    Crucial m4 mSATA SSD (256GB)を搭載。
  • ミッキータイプのACケーブル
    ACアダプタは添付されているのですが、ミッキー型⇔2Pの電源ケーブルは別売り。
    (この辺は世界中で1SKUとして販売する以上仕方ないですね…国毎にケーブル違いますし)
  • HDMIケーブル
    対応ディスプレイがなければHDMI⇔DVI変換タイプが必要ですね。
  • 外付けUSB DVDドライブ
    OSをインストールするには、外付けDVDドライブが必要となります。

※上記パーツですが、円安の関係で今後は値上がりするみたいですね。。。

あとは、一枚ペラの説明に従って底面を開けてパーツを挿入するだけ。

この後、漆塗りのようなケースをデコります。

まず、貼り付け場所を決めて。

電源スイッチ周りにシールを貼りますw

全部を貼り付け終わるとこんな感じにww

■BIOS設定を確認する

最近はUEFI対応BIOSなんですね。。。
マウス対応のGUIになってたり、ダッシュボードと称して内蔵ファンの回転数や内部温度をグラフィカルに表示できるようになっててびっくりしました。

とりあえず Intel HT & VT & VT-d は標準で有効になっていましたので、特に対応は不要。
(内蔵NICもSR-IOV対応とはまた良いものを搭載してるw)

Intel Visual BIOSの開始画面。

■Windows Server 2012をインストールする

この辺は、普通にDVDから起動してインストール画面をぽちぽちするだけなので割愛。

Windows Server 2012のインストール風景。
外は何年かぶりの大雪でしたw


■Windows Server 2012にIntel PROSetドライバを適用する。

Intel NUCに搭載されているNICは、Intel® 82579V Gigabit Ethernet PHYと言われるもの。
サーバ向けと言うよりは、どっちかというとPCや組み込みデバイス向けっぽいですね。

というわけでIntel PROSetドライバを適用すれば良いのですが…

なんとWindows Server 2012 (NTamd64.6.2)向けにはまだ正式な動作検証が終わっていないのか、PROSetドライバのウィザードを立ち上げても「対応するIntelネットワークアダプタが見つかりません」的なエラーを吐いてドライバをインストールすることが出来ません。
# Windows 8向けドライバは正式版があります。

待っていても仕方が無いので、下記情報を基にinfファイルを編集して無理矢理ドライバを認識させてしまいます。

Enable the Intel 82579V NIC in Windows Server 2012

PROsetドライバは インテル® デスクトップ・キット DC3217IYE のページからダウンロードしました。

  1. デバイスマネージャから搭載しているNICのデバイスIDを確認
    うちのIntel NUCは
    PCI\VEN_8086\DEV_1503
    でした。
  2. PROSetドライバをWinRARなどで解凍すると、PRO1000\Winx64\NDIS63\e1c63x64.infがあるので編集
    1. [ControlFlags]のExcludeFromSelectから該当するデバイスIDを削除
    2. [Intel.NTamd64.6.2]に、%E1503NC.DeviceDesc%で始まる行をコピー
  3. OSの起動オプションの変更 [infファイルを手動編集して認識させるために必要:やらないとドライバの一貫性チェックに引っかかって止まってしまう]
    C:\> bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
    C:\> bcdedit -set TESTSIGNING ON
  4. OS再起動後、PROSetドライバのapps\prosetdx\winx64\DxSysChk.exeを実行する
    今度は、ちゃんとドライバーのセットアッププロセスが実行され、「本当にこのドライバを入れて良いの?署名無いけど?」的なダイアログが出てくるので「OK」を押下して進む。
  5. ドライバが適用されていることを確認後、OS起動オプションを元に戻しておく。
    C:\> bcdedit -set loadoptions ENABLE_INTEGRIRY_CHECKS
    C:\> bcdedit -set TESTSIGNING OFF

■Windows Updateを実行する

NICさえ認識できれば、普通にWindows Updateから更新プログラムを導入しておきます。

■Hyper-Vを導入する


サーバーマネージャーの管理→「役割と機能の追加」ウィザードからHyper-Vの役割を追加し、再起動すれば使えるようになります。

Hyper-Vの管理コンソール上で、仮想スイッチの管理を実行すると、実際にこのNICがSR-IOV対応であることが確認出来ると思います。


静かで小さいのにメモリが16GBも搭載できて、VT-d対応UEFI対応BIOS+SR-IOV対応のNICまで載っかっているマシン・・・、
なかなか夢が広がりますね♪

2013/01/04

(._.)φ zshrcを晒す等。

とりあえず初期設定の~/.zshrcを少しいじった程度のものを晒しておくテスト。

# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=3000
SAVEHIST=3000
RPROMPT='(%~)'
PROMPT=$'%B%n@%m%b:%# '

bindkey -e

setopt auto_list
setopt extended_history
setopt append_history
setopt correct
setopt magic_equal_subst
setopt mark_dirs
setopt print_eight_bit

case "${TERM}" in
kterm)
  export TERM=kterm-color
  ;;
xterm)
  export TERM=xterm-color
  ;;
cons25)
  unset LANG
esac

alias ls="ls -G"
alias la="ls -aG"
alias ll="ls -lG"

# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/imksoo/.zshrc'

autoload -Uz compinit
compinit
# End of lines added by compinstall


Windows Server 2012のHyper-V上にFreeBSD 10-currentをインストールしてみた。

FreeBSDのインストール方法は、まぁ皆さん分かるでしょうから(w
# 最近はsysinstallからbsdinstallになってるんですね。。。見た目が綺麗になりました。

はまったところをメモしておきます。

■レガシーNICの認識方法

Hyper-Vのレガシーネットワークアダプタを利用した場合、デバイスとしてはde0で認識される。
IPアドレスの設定方法はいつも通り /etc/rc.conf に以下を追記すれば良い。

defaultrouter="192.168.1.1"
ifconfig_de0="inet 192.168.1.3 netmask 255.255.255.0"

とは言え、これだけだと仮想マシンが起動してきたときにアドレスは振られるものの仮想NICのリンクがダウンしてしまい外と疎通できない状態になってしまう。

# ifconfig de0 down
# ifconfig de0 up

とすれば一時的には通信できるようになる。

この場合、仮想NICのリンク速度のネゴシエーションに失敗しているため、明示的に下記のように100Mbps/Full-Duplexに設定してやると、再起動したあともちゃんとリンクアップするようになる。

ifconfig_de0="inet 192.168.1.3 netmask 255.255.255.0 media 100baseTX mediaopt full-duplex"

以上。