首页 > 行业资讯 > Zabbix 6.0 运行一段时间就比较慢,数据库方面怎么处理比较好?

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

时间:2023-06-22 来源: 浏览:

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

原创 twt社区 twt企业IT社区
twt企业IT社区

talkwithtrend

talkwithtrend.com社区(即twt社区)官方公众号,持续发布优秀社区原创内容。内容深度服务企业内各方向的架构师、运维主管、开发和运维工程师等IT专业岗位人群,让您时刻和国内企业IT同行保持信息同步。

收录于合集

社区探讨,供大家参考:

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

问题来自社区会员@甘草片 软件开发工程师,以下内容来自社区会员探讨,不代表社区倾向性

@waring_id 美宜佳 系统架构师:

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

1、升级数据库到更高版本,如果是新部署可以考虑时序数据库(PGSQL 其实性能也不错)

2、服务器硬盘升级到SSD,配置更多的内存资源

3、调整监控模板中(如果监控项较多的话)监控项目的取值时间(例如由每10秒取值调整为每分钟或每5分钟取值,有些变化较小的指标,例如硬盘空间监控项可以调整为5分钟)

4、修改历史数据的保存时间(例如历史数据保留90天,趋势数据保留365天)

5、对数据库的配置文件调优

如果上述调整后还是无法满足性能要求,再考虑数据库分开部署以及分表分库的操作(有如此规模的主机,肯定会配置DBA)。

@wangyeye jingya 软件开发工程师:

对数据库进行优化:

1、数据库相关参数的优化(内存、IO)

2、对Zabbix相关的历史表 进行分区,或者删除旧数据

@hbhe0316 IBM 数据库管理员:

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都可以,按照时间,定期删除分区数据,更新统计信息。

欢迎点击文末 阅读原文 到社区阅读和讨论交流,发表您的看法

觉得本文有用,请 转发 或点击 ,让更多同行看到

 资料/文章推荐:

  • 在Grafana环境里配置Zabbix导航盘及导航盘数据解析 | 运维进阶

  • 一文搞懂 Grafana Mimir | 运维进阶

  • 通过 Docker 安装设定 Grafana | 运维进阶

  • 经典干货:银行 Zabbix 监控架构

  • 基于 Zabbix 系统监控 Windows、Linux、VMware 等

欢迎关注社区  "监控" 技术主题   ,将会不断更新优质资料、文章。地址:

http://www.talkwithtrend.com/Topic/3937

下载 twt 社区客户端 APP

长按识别二维码即可下载

或到应用商店搜索“twt”

长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐