Zabbix优化

一、 Zabbix架构优化

1. Server/Agent模式
2. Server/Proxy/Agent模式

二、 Item的工作模式及Trigger的优化

1. Zabbix中的Item默认为被动模式,可以通过设置为主动模式来提升服务器性能

#Zabbix中的Item默认为被动模式,可以通过设置为主动模式来提升服务器性能
vim /usr/local/etc/zabbix_agentd.conf
# 注释该行
#Server=127.0.0.1

#禁止被动监控        
StartAgents=0

# 填写zabbix server监控服务器IP,必须注释Server=127.0.0.1  
ServerActive=Zabbix-Server IP地址

# 必须要和zabbix web端配置的监控主机名称一致
# 通过Hostname来通信,而不是IP地址
Hostname=web2

#取消注释,默认120秒检测一次
RefreshActiveChecks=120

2. 还可以采用Trapper的工作模式,通过zabbix_sender程序发送数据,此模式也具有很高的性能

三、 Zabbix数据库的优化(只针对Zabbix)

1. 对数据库本身的优化,采用更高版本数据库

2. 对数据库本身的参数进行调优配置

innodb_buffer_pool_size 
尽可能越高越好,上限为可用内存75%左右
innodb_buffer_pool_instances
在 MySQL5.5,调为4,在MySQL5.6中调为8或者16
innodb_flush_log_at_trx_commit = 0 
是折中可显著改善写入吞吐量的配置
innodb_io_capacity
置这个是为了你的磁盘 IO 子系统能处理更多的写 iops
SSD建议最低位2000
转速低的硬盘建议500-800
query_cache_size = 0
query_cache_type = 0
禁止查询缓存

以下为配置示例,仅供参考,服务器配置为 16核32

#back_log = 600
#query_cache_size = 128M
#max_connections = 3000
#max_allowed_packet = 32M
#innodb_thread_concurrency=16

server-id              	= 1
#read_only 		= 1
innodb_buffer_pool_size = 1024M
innodb_log_buffer_size  = 16M
#key_buffer_size         = 64M
key_buffer_size         = 128M
query_cache_size        = 256M
tmp_table_size          = 128M

binlog_format          = mixed
skip-external-locking
skip-name-resolve
max_allowed_packet      = 16M
thread_cache_size       = 256
table_open_cache 	= 4096
back_log                = 1024
max_connect_errors      = 100000

interactive_timeout  =  1800
wait_timeout  = 1800

max_connections         = 2048
sort_buffer_size        = 16M
join_buffer_size        = 4M
read_buffer_size        = 4M
read_rnd_buffer_size    = 16M
binlog_cache_size       = 2M
thread_stack            = 192K

max_heap_table_size     = 128M
myisam_sort_buffer_size = 128M
bulk_insert_buffer_size = 256M
open_files_limit        = 65535
query_cache_limit       = 2M
slow-query-log
long_query_time        	= 2

expire_logs_days	= 3
max_binlog_size        	= 1000M
slave_parallel_workers 	= 4
log-slave-updates

binlog_ignore_db       	= mysql
replicate_wild_ignore_table = mysql.%
sync_binlog = 1

innodb_file_per_table 	= 1
innodb_flush_method 	= O_DIRECT
innodb_buffer_pool_instances = 4
innodb_log_file_size    = 512M
innodb_log_files_in_group = 3
innodb_open_files 	= 4000
innodb_read_io_threads 	= 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 8
innodb_io_capacity 	= 2000
innodb_io_capacity_max	= 6000
innodb_lru_scan_depth	= 2000
innodb_max_dirty_pages_pct = 85
innodb_flush_log_at_trx_commit = 2

3. 对Zabbix数据库结构进行优化,采用诸如 表分区 的方案

表分区在删除一个区间的数据时速度非常快,如删除200GB数据,也只需要1分钟
因此,Zabbix数据库结构优化一般就采用表分区的方式
方法是对history*、trends*等表进行分表操作,从而降低Zabbix数据库压力

实操:
环境:zabbix5.0,mysql5.7

3.1 清除表数据(truncate清理表数据,optimize释放表空间)

若数据量不大,可以不清表(建议清理)

vim /var/lib/mysql/sql_submeter/clear_table.sql
truncate table history;
optimize table history;
truncate table history_str;
optimize table history_str;
truncate table history_log;
optimize table history_log;
truncate table history_text;
optimize table history_text;
truncate table history_uint;
optimize table history_uint;
truncate table trends;
optimize table trends;
truncate table trends_uint;
optimize table trends_uint;	
mysql -uroot -p zabbix
mysql> use zabbix;
# 执行sql文件
mysql> source /var/lib/mysql/sql_submeter/clear_table.sql;	

3.2 zabbix 数据库导入存储过程

先编辑一个SQL脚本执行导入四个存储过程,此脚本复制zabbix官网提供的SQL脚本
以下脚本需要修改的内容

CALL partition_maintenance(SCHEMA_NAME, 'history', 30, 24, 14);
CALL partition_maintenance(SCHEMA_NAME, 'history_log', 30, 24, 14);
CALL partition_maintenance(SCHEMA_NAME, 'history_str', 30, 24, 14);
CALL partition_maintenance(SCHEMA_NAME, 'history_text', 30, 24, 14);
CALL partition_maintenance(SCHEMA_NAME, 'history_uint', 30, 24, 14);
CALL partition_maintenance(SCHEMA_NAME, 'trends', 30, 24, 12);
CALL partition_maintenance(SCHEMA_NAME, 'trends_uint', 30, 24, 12);

举例:
('history', 33, 24, 14);
history :表名
30:历史数据保留时间 单位天
24:每多长时间分表 单位小时
14:每次运行脚本分多少张表 单位张
vim /var/lib/mysql/sql_submeter/partition.sql

DELIMITER $$
CREATE PROCEDURE `partition_create`(SCHEMANAME varchar(64), TABLENAME varchar(64), PARTITIONNAME varchar(64), CLOCK int)
BEGIN
        /*
           SCHEMANAME = The DB schema in which to make changes
           TABLENAME = The table with partitions to potentially delete
           PARTITIONNAME = The name of the partition to create
        */
        /*
           Verify that the partition does not already exist
        */

        DECLARE RETROWS INT;
        SELECT COUNT(1) INTO RETROWS
        FROM information_schema.partitions
        WHERE table_schema = SCHEMANAME AND table_name = TABLENAME AND partition_description >= CLOCK;

        IF RETROWS = 0 THEN
        /*
           1. Print a message indicating that a partition was created.
           2. Create the SQL to create the partition.
           3. Execute the SQL from #2.
        */
        SELECT CONCAT( "partition_create(", SCHEMANAME, ",", TABLENAME, ",", PARTITIONNAME, ",", CLOCK, ")" ) AS msg;
        SET @sql = CONCAT( 'ALTER TABLE ', SCHEMANAME, '.', TABLENAME, ' ADD PARTITION (PARTITION ', PARTITIONNAME, ' VALUES LESS THAN (', CLOCK, '));' );
        PREPARE STMT FROM @sql;
        EXECUTE STMT;
        DEALLOCATE PREPARE STMT;
        END IF;
END$$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE `partition_drop`(SCHEMANAME VARCHAR(64), TABLENAME VARCHAR(64), DELETE_BELOW_PARTITION_DATE BIGINT)
BEGIN
        /*
           SCHEMANAME = The DB schema in which to make changes
           TABLENAME = The table with partitions to potentially delete
           DELETE_BELOW_PARTITION_DATE = Delete any partitions with names that are dates older than this one (yyyy-mm-dd)
        */
        DECLARE done INT DEFAULT FALSE;
        DECLARE drop_part_name VARCHAR(16);

        /*
           Get a list of all the partitions that are older than the date
           in DELETE_BELOW_PARTITION_DATE.  All partitions are prefixed with
           a "p", so use SUBSTRING TO get rid of that character.
        */
        DECLARE myCursor CURSOR FOR
        SELECT partition_name
        FROM information_schema.partitions
        WHERE table_schema = SCHEMANAME AND table_name = TABLENAME AND CAST(SUBSTRING(partition_name FROM 2) AS UNSIGNED) < DELETE_BELOW_PARTITION_DATE;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

        /*
           Create the basics for when we need to drop the partition.  Also, create
           @drop_partitions to hold a comma-delimited list of all partitions that
           should be deleted.
        */
        SET @alter_header = CONCAT("ALTER TABLE ", SCHEMANAME, ".", TABLENAME, " DROP PARTITION ");
        SET @drop_partitions = "";

        /*
           Start looping through all the partitions that are too old.
        */
        OPEN myCursor;
        read_loop: LOOP
        FETCH myCursor INTO drop_part_name;
        IF done THEN
    LEAVE read_loop;
        END IF;
        SET @drop_partitions = IF(@drop_partitions = "", drop_part_name, CONCAT(@drop_partitions, ",", drop_part_name));
        END LOOP;
        IF @drop_partitions != "" THEN
        /*
           1. Build the SQL to drop all the necessary partitions.
           2. Run the SQL to drop the partitions.
           3. Print out the table partitions that were deleted.
        */
        SET @full_sql = CONCAT(@alter_header, @drop_partitions, ";");
        PREPARE STMT FROM @full_sql;
        EXECUTE STMT;
        DEALLOCATE PREPARE STMT;

        SELECT CONCAT(SCHEMANAME, ".", TABLENAME) AS `table`, @drop_partitions AS `partitions_deleted`;
        ELSE
        /*
           No partitions are being deleted, so print out "N/A" (Not applicable) to indicate
           that no changes were made.
        */
        SELECT CONCAT(SCHEMANAME, ".", TABLENAME) AS `table`, "N/A" AS `partitions_deleted`;
        END IF;
END$$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE `partition_maintenance`(SCHEMA_NAME VARCHAR(32), TABLE_NAME VARCHAR(32), KEEP_DATA_DAYS INT, HOURLY_INTERVAL INT, CREATE_NEXT_INTERVALS INT)
BEGIN
        DECLARE OLDER_THAN_PARTITION_DATE VARCHAR(16);
        DECLARE PARTITION_NAME VARCHAR(16);
        DECLARE OLD_PARTITION_NAME VARCHAR(16);
        DECLARE LESS_THAN_TIMESTAMP INT;
        DECLARE CUR_TIME INT;

        CALL partition_verify(SCHEMA_NAME, TABLE_NAME, HOURLY_INTERVAL);
        SET CUR_TIME = UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'));

        SET @__interval = 1;
        create_loop: LOOP
        IF @__interval > CREATE_NEXT_INTERVALS THEN
    LEAVE create_loop;
        END IF;

        SET LESS_THAN_TIMESTAMP = CUR_TIME + (HOURLY_INTERVAL * @__interval * 3600);
        SET PARTITION_NAME = FROM_UNIXTIME(CUR_TIME + HOURLY_INTERVAL * (@__interval - 1) * 3600, 'p%Y%m%d%H00');
        IF(PARTITION_NAME != OLD_PARTITION_NAME) THEN
    CALL partition_create(SCHEMA_NAME, TABLE_NAME, PARTITION_NAME, LESS_THAN_TIMESTAMP);
        END IF;
        SET @__interval=@__interval+1;
        SET OLD_PARTITION_NAME = PARTITION_NAME;
        END LOOP;

        SET OLDER_THAN_PARTITION_DATE=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL KEEP_DATA_DAYS DAY), '%Y%m%d0000');
        CALL partition_drop(SCHEMA_NAME, TABLE_NAME, OLDER_THAN_PARTITION_DATE);

END$$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE `partition_verify`(SCHEMANAME VARCHAR(64), TABLENAME VARCHAR(64), HOURLYINTERVAL INT(11))
BEGIN
        DECLARE PARTITION_NAME VARCHAR(16);
        DECLARE RETROWS INT(11);
        DECLARE FUTURE_TIMESTAMP TIMESTAMP;

        /*
         * Check if any partitions exist for the given SCHEMANAME.TABLENAME.
         */
        SELECT COUNT(1) INTO RETROWS
        FROM information_schema.partitions
        WHERE table_schema = SCHEMANAME AND table_name = TABLENAME AND partition_name IS NULL;

        /*
         * If partitions do not exist, go ahead and partition the table
         */
        IF RETROWS = 1 THEN
        /*
         * Take the current date at 00:00:00 and add HOURLYINTERVAL to it.  This is the timestamp below which we will store values.
         * We begin partitioning based on the beginning of a day.  This is because we don't want to generate a random partition
         * that won't necessarily fall in line with the desired partition naming (ie: if the hour interval is 24 hours, we could
         * end up creating a partition now named "p201403270600" when all other partitions will be like "p201403280000").
         */
        SET FUTURE_TIMESTAMP = TIMESTAMPADD(HOUR, HOURLYINTERVAL, CONCAT(CURDATE(), " ", '00:00:00'));
        SET PARTITION_NAME = DATE_FORMAT(CURDATE(), 'p%Y%m%d%H00');

        -- Create the partitioning query
        SET @__PARTITION_SQL = CONCAT("ALTER TABLE ", SCHEMANAME, ".", TABLENAME, " PARTITION BY RANGE(`clock`)");
        SET @__PARTITION_SQL = CONCAT(@__PARTITION_SQL, "(PARTITION ", PARTITION_NAME, " VALUES LESS THAN (", UNIX_TIMESTAMP(FUTURE_TIMESTAMP), "));");

        -- Run the partitioning query
        PREPARE STMT FROM @__PARTITION_SQL;
        EXECUTE STMT;
        DEALLOCATE PREPARE STMT;
        END IF;
END$$
DELIMITER ;

DELIMITER $$
CREATE PROCEDURE`partition_maintenance_all`(SCHEMA_NAME VARCHAR(32))
BEGIN
               CALL partition_maintenance(SCHEMA_NAME, 'history', 30, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_log', 30, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_str', 30, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_text', 30, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_uint', 30, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'trends', 30, 24, 12);
               CALL partition_maintenance(SCHEMA_NAME, 'trends_uint', 30, 24, 12);
END$$

说明:以上配置为保存30天数据,如果需要修改保存天数,需要调整存储过程:partition_maintenance_all

更新zabbix数据库名为 partition_maintenance_all 的存储过程

# 进入zabbix数据库
use zabbix;
# 查看zabbix数据库的存储过程
show procedure status where db='zabbix';
# 删除partition_maintenance_all存储过程
drop procedure partition_maintenance_all;
# 手动新建存储过程
DELIMITER $
CREATE PROCEDURE`partition_maintenance_all`(SCHEMA_NAME VARCHAR(32))
BEGIN
               CALL partition_maintenance(SCHEMA_NAME, 'history', 60, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_log', 60, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_str', 60, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_text', 60, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'history_uint', 60, 24, 14);
               CALL partition_maintenance(SCHEMA_NAME, 'trends', 60, 24, 12);
               CALL partition_maintenance(SCHEMA_NAME, 'trends_uint', 60, 24, 12);
END$$

注意:一定将修改内容同步至定时任务中指定执行的脚本

3.3 导入分表sql

# 导入第3步最后的存储过程sql到数据库
mysql -uzabbix -p zabbix < partition.sql
# 调用存储过程
mysql  -uzabbix -pZD.zabbix123 zabbix -e"CALL partition_maintenance_all('zabbix')" &>/var/log/partition.log
# 查看是否生成相关数据库表
[root@OP sql_submeter]# ll -ah /var/lib/mysql/data/zabbix/trend*
-rw-r----- 1 mysql mysql 8.6K 1018 15:08 /var/lib/mysql/data/zabbix/trends.frm
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110180000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110190000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:21 /var/lib/mysql/data/zabbix/trends#P#p202110200000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110210000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110220000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110230000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:21 /var/lib/mysql/data/zabbix/trends#P#p202110240000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110250000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110260000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110270000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:21 /var/lib/mysql/data/zabbix/trends#P#p202110280000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 8.6K 1018 15:08 /var/lib/mysql/data/zabbix/trends_uint.frm
-rw-r----- 1 mysql mysql  96K 1018 15:39 /var/lib/mysql/data/zabbix/trends_uint#P#p202110180000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110190000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:22 /var/lib/mysql/data/zabbix/trends_uint#P#p202110200000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110210000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110220000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110230000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:22 /var/lib/mysql/data/zabbix/trends_uint#P#p202110240000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110250000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110260000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110270000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:22 /var/lib/mysql/data/zabbix/trends_uint#P#p202110280000.ibd
-rw-r----- 1 mysql mysql  96K 1018 15:20 /var/lib/mysql/data/zabbix/trends_uint#P#p202110290000.ibd

[root@OP sql_submeter]# ll -ah /var/lib/mysql/data/zabbix/history*
-rw-r----- 1 mysql mysql 8.5K 1018 15:08 /var/lib/mysql/data/zabbix/history.frm
-rw-r----- 1 mysql mysql 8.7K 1018 15:08 /var/lib/mysql/data/zabbix/history_log.frm
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_log#P#p202110180000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110190000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_log#P#p202110200000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110210000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_log#P#p202110220000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110230000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_log#P#p202110240000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110250000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_log#P#p202110260000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110270000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_log#P#p202110280000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_log#P#p202110300000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_log#P#p202110310000.ibd
-rw-r----- 1 mysql mysql  80M 1018 15:46 /var/lib/mysql/data/zabbix/history#P#p202110180000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110190000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history#P#p202110200000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110210000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history#P#p202110220000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110230000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history#P#p202110240000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110250000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history#P#p202110260000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110270000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history#P#p202110280000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history#P#p202110300000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history#P#p202110310000.ibd
-rw-r----- 1 mysql mysql 8.5K 1018 15:08 /var/lib/mysql/data/zabbix/history_str.frm
-rw-r----- 1 mysql mysql 480K 1018 15:44 /var/lib/mysql/data/zabbix/history_str#P#p202110180000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110190000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_str#P#p202110200000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110210000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_str#P#p202110220000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110230000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_str#P#p202110240000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110250000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_str#P#p202110260000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110270000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_str#P#p202110280000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_str#P#p202110300000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_str#P#p202110310000.ibd
-rw-r----- 1 mysql mysql 8.5K 1018 15:08 /var/lib/mysql/data/zabbix/history_text.frm
-rw-r----- 1 mysql mysql 7.0M 1018 15:45 /var/lib/mysql/data/zabbix/history_text#P#p202110180000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110190000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_text#P#p202110200000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110210000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_text#P#p202110220000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110230000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_text#P#p202110240000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110250000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_text#P#p202110260000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110270000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_text#P#p202110280000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_text#P#p202110300000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_text#P#p202110310000.ibd
-rw-r----- 1 mysql mysql 8.5K 1018 15:08 /var/lib/mysql/data/zabbix/history_uint.frm
-rw-r----- 1 mysql mysql 104M 1018 15:46 /var/lib/mysql/data/zabbix/history_uint#P#p202110180000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110190000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_uint#P#p202110200000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110210000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_uint#P#p202110220000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110230000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:19 /var/lib/mysql/data/zabbix/history_uint#P#p202110240000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110250000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_uint#P#p202110260000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110270000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110280000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110290000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:21 /var/lib/mysql/data/zabbix/history_uint#P#p202110300000.ibd
-rw-r----- 1 mysql mysql 112K 1018 15:20 /var/lib/mysql/data/zabbix/history_uint#P#p202110310000.ibd

3.4 添加定时任务

# 每天执行
vim /etc/crontab
01 01 * * *  root  /usr/bin/mysql -uzabbix -ppassword zabbix -e "CALL partition_maintenance_all('zabbix')" &>/var/log/partition.log
systemctl restart crond.service

3.5 关闭zabbix 管家功能(housekeeping)

在web页面中操作,关闭历史数据和趋势

四、 Zabbix硬件优化

选用RAID10,SSD固态,多核CPU,大容量内存等硬件配置

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要优化Zabbix的UI界面,可以从以下几个方面着手: 1. 界面布局优化:重新设计和调整界面的布局,让主要的功能和操作更加易于使用和访问。可以考虑采用响应式设计,使界面能够适应不同大小的屏幕和设备。 2. 用户体验改进:提高用户界面的交互性和友好性,使用户能够更快速、方便地完成操作。可以减少不必要的点击和步骤,优化表单填写和选择的方式,引入自动补全和预填功能等。 3. 数据可视化:通过图表、图形和仪表盘等方式,将监控数据以直观形式展示,帮助用户更轻松地理解和分析数据。可以支持自定义报表和图表样式,满足不同用户的需求。 4. 主题和样式定制:允许用户根据自己的喜好和需求,自定义Zabbix的界面主题和样式。可以提供多种预设的主题选择,或者支持用户导入自定义的主题样式。 5. 模块化设计:将界面划分为多个模块,每个模块负责不同的功能和任务。通过模块化设计,可以更方便地扩展和定制界面,使用户能够根据自己的需求自由选择需要的功能模块。 6. 响应速度优化:通过优化代码和改进数据查询和加载方式,提高界面的响应速度和性能。可以采用异步加载和局部刷新等技术,减少不必要的数据传输和页面刷新,提升用户体验。 通过以上这些优化措施,可以使Zabbix的UI界面更加易用、美观和高效,提升用户的工作效率和满意度。同时,还应不断收集用户反馈,进行改进和升级,以适应不断变化的需求和技术发展。 ### 回答2: 要优化Zabbix的UI界面,可以从以下几个方面进行改进: 1. 提升用户体验:简化界面布局,减少冗余信息,使得用户能够更快捷地找到需要的功能和信息。增加各类操作的按钮和快捷入口,方便用户进行常用操作。 2. 增加可配置性:提供更多的界面配置选项,使得用户能够根据自己的需求进行个性化设置。例如,可以增加可拖拽的小组件,用户可以根据自己的偏好将常用的监控项和图表放置在合适的位置。 3. 支持自定义主题:提供不同的主题选择,让用户可以根据自己的审美选择适合自己的UI风格,提升界面的美观度。 4. 增加可视化功能:在监控项和图表展示方面,加入更多的图表类型和可视化效果,例如折线图、柱状图、饼图等,让用户能够更直观地了解和分析监控数据。 5. 提供更高效的操作方式:引入快捷键、右键菜单等操作方式,提高用户操作的效率和便捷性。 6. 提供更多的定制化选项:允许用户自定义仪表盘和报表的内容和布局,方便用户根据自己的需求进行个性化展示。 通过以上的优化措施,可以让Zabbix的UI界面更加直观、美观,并提高用户的使用体验和工作效率。 ### 回答3: 要优化Zabbix的UI界面,可以采取以下措施: 1. 界面布局优化:通过调整布局,使得不同功能和模块更加清晰、易于理解和操作。可以根据用户使用的频率和重要性对界面元素进行重新排序和分组,以提高用户的使用效率。 2. 界面美化:改善界面的视觉效果,优化颜色、字体、图标等设计元素,使整体界面更加美观、舒适、符合用户的审美。可以采用现代化的设计风格,提供更加直观、简洁的界面。 3. 响应式设计:对于不同的屏幕尺寸和设备,应该自适应地调整界面布局和元素大小,以确保用户在不同设备上都能有良好的使用体验。可以使用响应式设计技术来实现这一点。 4. 自定义界面:提供一些自定义选项,让用户根据自己的需求和喜好来调整界面的外观和布局。例如,用户可以自定义模块的显示和隐藏、界面颜色主题等。 5. 快捷操作:在界面中加入一些常用操作的快捷方式,以减少用户的操作步骤和时间。例如,可以加入一键刷新、一键搜索等功能,方便用户快速完成操作。 6. 清晰的反馈和提示:在界面中给出清晰明确的反馈和提示信息,帮助用户正确理解和使用功能。例如,通过图标、颜色、文字等方式来表示状态、进度和错误信息。 通过以上优化措施,可以提升Zabbix的UI界面的易用性、美观性和用户体验,从而更好地满足用户的需求和期望。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值