软件开发Zabbixzabbix 6.0

zabbix 6.0 运行一段时间就比较慢,数据库方面怎么处理比较好?

参与11

3同行回答

waring_idwaring_id技术经理某公司
数据库分表分库是一个不错的解决方案,但是非常考验运维的技术能力(1方面涉及当前数据的分表分库操作,可能导致一段时间内无法查询到历史数据;另一方面如果按月分表,每个月新表的建立和检查需要具备一段的数据库运维能力)。在规模不是很大的情况下(监控主机500台以内)可以考虑以下...显示全部

数据库分表分库是一个不错的解决方案,但是非常考验运维的技术能力(1方面涉及当前数据的分表分库操作,可能导致一段时间内无法查询到历史数据;另一方面如果按月分表,每个月新表的建立和检查需要具备一段的数据库运维能力)。在规模不是很大的情况下(监控主机500台以内)可以考虑以下的优化方式:
1、升级数据库到更高版本,如果是新部署可以考虑时序数据库(PGSQL 其实性能也不错)
2、服务器硬盘升级到SSD,配置更多的内存资源
3、调整监控模板中(如果监控项较多的话)监控项目的取值时间(例如由每10秒取值调整为每分钟或每5分钟取值,有些变化较小的指标,例如硬盘空间监控项可以调整为5分钟)
4、修改历史数据的保存时间(例如历史数据保留90天,趋势数据保留365天)
5、对数据库的配置文件调优
如果上述调整后还是无法满足性能要求,再考虑数据库分开部署以及分表分库的操作(有如此规模的主机,肯定会配置DBA)

收起
零售/批发 · 2023-06-01
wangyeyewangyeye系统运维工程师jingya
对数据库进行优化1、数据库相关参数的优化(内存、IO)2、对zabbix相关的历史表 进行分区,或者删除旧数据显示全部

对数据库进行优化
1、数据库相关参数的优化(内存、IO)
2、对zabbix相关的历史表 进行分区,或者删除旧数据

收起
互联网服务 · 2023-05-31
hbhe0316hbhe0316数据库管理员IBM
1.zabbix部分历史数据表,在创建的时候可以采用分区表的方式诸如一下为oracle部分表:-- Create table create table ZABBIX.HISTORY_TEXT ( itemid NUMBER(20) not null, clock NUMBER(10) default '0' not null, value NCLOB default '', ns NUMBER(10) def...显示全部

1.zabbix部分历史数据表,在创建的时候可以采用分区表的方式
诸如一下为oracle部分表:

-- Create table
create table ZABBIX.HISTORY_TEXT
(
  itemid NUMBER(20) not null,
  clock  NUMBER(10) default '0' not null,
  value  NCLOB default '',
  ns     NUMBER(10) default '0' not null,
  upd_time  TIMESTAMP(6) default SYSTIMESTAMP not null,
  ins_time  as ("ZABBIX"."UNIX_TO_ORACLE"("CLOCK"))
) tablespace ZABBIX_SCHE_DATA_TBS
 partition by range(UPD_TIME) interval (numtoyminterval(1,'month'))
(partition P_20230301 values less than (TIMESTAMP' 2023-03-01 00:00:00')
);

alter table ZABBIX.HISTORY_TEXT add CONSTRAINT PK_HISTORY_TEXT primary key (ITEMID, CLOCK, NS, UPD_TIME) using index local tablespace ZABBIX_SCHE_DATA_TBS;


create table ZABBIX.HISTORY_LOG
(
  itemid     NUMBER(20) not null,
  clock      NUMBER(10) default '0' not null,
  timestamp  NUMBER(10) default '0' not null,
  source     NVARCHAR2(64) default '',
  severity   NUMBER(10) default '0' not null,
  value      NCLOB default '',
  logeventid NUMBER(10) default '0' not null,
  ns         NUMBER(10) default '0' not null,
  upd_time  TIMESTAMP(6) default SYSTIMESTAMP not null,
  ins_time  as ("ZABBIX"."UNIX_TO_ORACLE"("CLOCK"))
) tablespace ZABBIX_SCHE_DATA_TBS
 partition by range(UPD_TIME) interval (numtoyminterval(1,'month'))
(partition P_20230301 values less than (TIMESTAMP' 2023-03-01 00:00:00')
);

alter table ZABBIX.HISTORY_LOG add CONSTRAINT PK_HISTORY_LOG primary key (ITEMID, CLOCK, NS, UPD_TIME) using index local tablespace ZABBIX_SCHE_DATA_TBS;

create table ZABBIX.HISTORY_STR
(
  itemid NUMBER(20) not null,
  clock  NUMBER(10) default '0' not null,
  value  NVARCHAR2(255) default '',
  ns     NUMBER(10) default '0' not null,
  upd_time  TIMESTAMP(6) default SYSTIMESTAMP not null,
  ins_time  as ("ZABBIX"."UNIX_TO_ORACLE"("CLOCK"))
) tablespace ZABBIX_SCHE_DATA_TBS
 partition by range(UPD_TIME) interval (numtoyminterval(1,'month'))
(partition P_20230301 values less than (TIMESTAMP' 2023-03-01 00:00:00')
);

alter table ZABBIX.HISTORY_STR add CONSTRAINT PK_HISTORY_STR primary key (ITEMID, CLOCK, NS, UPD_TIME) using index local tablespace ZABBIX_SCHE_DATA_TBS;


Mysql和oracle都可以,按照时间,定期删除分区数据,更新统计信息。

收起
IT分销/经销 · 2023-05-31
浏览513

ChatGPT 回答

如果Zabbix 6.0运行一段时间后变得比较慢,可能是由于数据库方面的问题引起的。以下是一些可能的解决方案:

  1. 数据库优化:可以使用数据库优化工具来检查和优化数据库性能。例如,使用MySQL的myisamchk或innodbchk工具来检查和修复表格。
  2. 数据库清理:Zabbix会在数据库中存储大量的历史数据,如果这些数据不再需要,可以考虑清理它们。可以使用Zabbix自带的清理功能或手动删除不需要的数据。
  3. 数据库升级:如果使用的是旧版本的数据库,可以考虑升级到新版本。新版本的数据库通常会提供更好的性能和更好的稳定性。
  4. 增加硬件资源:如果数据库服务器的硬件资源不足,可以考虑增加硬件资源,例如增加内存或CPU。
  5. 调整Zabbix配置:可以调整Zabbix的配置来改善性能。例如,可以增加Zabbix服务器的线程数或调整Zabbix代理的超时时间。

总之,要解决Zabbix 6.0运行变慢的问题,需要对数据库进行优化和清理,并考虑增加硬件资源或调整Zabbix配置。

提问者

甘草片
甘草片162151
软件开发工程师安天科技
擅长领域: 数据库服务器存储

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-05-31
  • 关注会员:5 人
  • 问题浏览:1314
  • 最近回答:2023-06-01
  • X社区推广