zoukankan      html  css  js  c++  java
  • Zabbix清理历史数据库,缩减表大小

    zabbix 由于历史数据过大, 因此导致磁盘空间暴涨,  下面是解决方法步骤:

    一、分析数据库:

    1. 统计数据库中每个表所占的空间:

    mysql> SELECT table_name AS "Tables",
           round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB"
          FROM information_schema.TABLES
          WHERE table_schema = 'zabbixdb'
          ORDER BY (data_length + index_length) DESC;
    View Code
    +----------------------------+------------+
    | Tables                     | Size in MB |
    +----------------------------+------------+
    | history_uint               |   29417.00 |
    | history                    |    8287.00 |
    | events                     |    2367.67 |
    | trends_uint                |    1781.91 |
    | event_recovery             |    1211.33 |
    | trends                     |     548.00 |
    | history_str                |     381.53 |
    | history_text               |      58.13 |
    | alerts                     |      46.67 |
    | problem                    |      31.06 |
    | items                      |      25.23 |
    | auditlog                   |      16.53 |
    | items_applications         |       6.20 |
    | triggers                   |       5.31 |
    | item_discovery             |       5.30 |
    | housekeeper                |       3.52 |
    | functions                  |       3.33 |
    | graphs                     |       2.23 |
    | graphs_items               |       2.17 |
    | item_preproc               |       1.88 |
    | auditlog_details           |       1.69 |
    | images                     |       1.53 |
    | profiles                   |       0.80 |
    | trigger_discovery          |       0.42 |
    | applications               |       0.38 |
    | application_template       |       0.38 |
    | trigger_depends            |       0.33 |
    | graph_discovery            |       0.25 |
    | hosts                      |       0.20 |
    | item_condition             |       0.16 |
    | sessions                   |       0.14 |
    | widget_field               |       0.11 |
    | dservices                  |       0.09 |
    | sysmaps_elements           |       0.09 |
    | sysmaps                    |       0.08 |
    | httptest                   |       0.08 |
    | interface                  |       0.08 |
    | mappings                   |       0.08 |
    | hosts_templates            |       0.08 |
    | group_prototype            |       0.06 |
    | hostmacro                  |       0.06 |
    | acknowledges               |       0.06 |
    | host_inventory             |       0.06 |
    | scripts                    |       0.06 |
    | sysmaps_links              |       0.06 |
    | slides                     |       0.05 |
    | maintenances_groups        |       0.05 |
    | users_groups               |       0.05 |
    | dashboard_usrgrp           |       0.05 |
    | sysmap_usrgrp              |       0.05 |
    | maintenances               |       0.05 |
    | dashboard_user             |       0.05 |
    | actions                    |       0.05 |
    | opgroup                    |       0.05 |
    | sysmap_user                |       0.05 |
    | httpstepitem               |       0.05 |
    | config                     |       0.05 |
    | item_application_prototype |       0.05 |
    | opcommand_hst              |       0.05 |
    | services_links             |       0.05 |
    | host_discovery             |       0.05 |
    | opcommand_grp              |       0.05 |
    | service_alarms             |       0.05 |
    | problem_tag                |       0.05 |
    | sysmap_element_trigger     |       0.05 |
    | task                       |       0.05 |
    | drules                     |       0.05 |
    | media                      |       0.05 |
    | optemplate                 |       0.05 |
    | slideshows                 |       0.05 |
    | icon_mapping               |       0.05 |
    | screens                    |       0.05 |
    | slideshow_usrgrp           |       0.05 |
    | sysmaps_link_triggers      |       0.05 |
    | icon_map                   |       0.05 |
    | opmessage_usr              |       0.05 |
    | maintenances_windows       |       0.05 |
    | screen_usrgrp              |       0.05 |
    | application_prototype      |       0.05 |
    | httptestitem               |       0.05 |
    | opmessage_grp              |       0.05 |
    | slideshow_user             |       0.05 |
    | maintenances_hosts         |       0.05 |
    | screen_user                |       0.05 |
    | rights                     |       0.05 |
    | hosts_groups               |       0.05 |
    | application_discovery      |       0.05 |
    | httptest_field             |       0.03 |
    | opmessage                  |       0.03 |
    | event_tag                  |       0.03 |
    | corr_condition_group       |       0.03 |
    | regexps                    |       0.03 |
    | operations                 |       0.03 |
    | group_discovery            |       0.03 |
    | users                      |       0.03 |
    | corr_condition             |       0.03 |
    | opconditions               |       0.03 |
    | services_times             |       0.03 |
    | dashboard                  |       0.03 |
    | sysmap_url                 |       0.03 |
    | conditions                 |       0.03 |
    | trigger_tag                |       0.03 |
    | interface_discovery        |       0.03 |
    | services                   |       0.03 |
    | sysmap_shape               |       0.03 |
    | graph_theme                |       0.03 |
    | autoreg_host               |       0.03 |
    | corr_operation             |       0.03 |
    | opcommand                  |       0.03 |
    | sysmap_element_url         |       0.03 |
    | escalations                |       0.03 |
    | media_type                 |       0.03 |
    | httpstep_field             |       0.03 |
    | screens_items              |       0.03 |
    | httpstep                   |       0.03 |
    | dhosts                     |       0.03 |
    | widget                     |       0.03 |
    | valuemaps                  |       0.03 |
    | expressions                |       0.03 |
    | dchecks                    |       0.03 |
    | groups                     |       0.03 |
    | usrgrp                     |       0.03 |
    | opinventory                |       0.02 |
    | proxy_history              |       0.02 |
    | proxy_dhistory             |       0.02 |
    | correlation                |       0.02 |
    | task_remote_command        |       0.02 |
    | proxy_autoreg_host         |       0.02 |
    | task_close_problem         |       0.02 |
    | corr_condition_tagvalue    |       0.02 |
    | task_acknowledge           |       0.02 |
    | globalvars                 |       0.02 |
    | corr_condition_tagpair     |       0.02 |
    | ids                        |       0.02 |
    | globalmacro                |       0.02 |
    | corr_condition_tag         |       0.02 |
    | history_log                |       0.02 |
    | timeperiods                |       0.02 |
    | task_remote_command_result |       0.02 |
    | dbversion                  |       0.02 |
    +----------------------------+------------+
    140 rows in set (0.68 sec)
    View Code

    二、清理zabbix一周之前的历史数据:

    !/bin/bash
    User="zabbixuser"
    Passwd="zabbixpass"
    Date=`date -d $(date -d "-7 day" +%Y%m%d) +%s` #取7天之前的时间戳
    $(which mysql) -u${User} -p${Passwd} -e "
    use zabbixdb;
    DELETE FROM history WHERE 'clock' < $Date;
    optimize table history;
    DELETE FROM history_str WHERE 'clock' < $Date;
    optimize table history_str;
    DELETE FROM history_uint WHERE 'clock' < $Date;
    optimize table history_uint;
    DELETE FROM history_text WHERE 'clock' < $Date;
    optimize table history_text;
    DELETE FROM  trends WHERE 'clock' < $Date;
    optimize table  trends;
    DELETE FROM trends_uint WHERE 'clock' < $Date;
    optimize table trends_uint;
    DELETE FROM events WHERE 'clock' < $Date;
    optimize table events;
    "
    5.6以后用alter table table_name engine="InnoDB";

    3、添加到系统计划任务:

    #remove the zabbix mysql data before 7 day's ago
    0 3 * * 0 /usr/local/script/clearzabbix.sh > /usr/local/script/clearzabbix.log

    4、另:可以使用truncate命令直接清空数据库:

    truncate table history;
    truncate table history_uint;
    truncate table history_str;
    truncate table history_text;
    truncate table trends;
    truncate table trends_uint;
    truncate table events;

    如果想要删除表的所有数据,truncate语句要比 delete 语句快

    因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。

    不过truncate命令虽然快,却不像delete命令那样对事务处理是安全的。

    因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。 

  • 相关阅读:
    Oracle-启动和关闭oracle的归档(ARCHIVELOG)模式
    Linux-数据表示方式
    Linux-21-30
    linux-1-10
    自律
    jenkins-修改系统时间
    jenkins-通过ssh username with private key配置节点服务器
    jenkins-slave开机自动启动
    mongodb-mongo使用
    mongodb-centos76yum安装mongodb
  • 原文地址:https://www.cnblogs.com/ld1977/p/8975543.html
Copyright © 2011-2022 走看看