Zabbix 6.0 运行一段时间就比较慢,数据库方面怎么处理比较好?
Zabbix 6.0 运行一段时间就比较慢,数据库方面怎么处理比较好?
talkwithtrend
talkwithtrend.com社区(即twt社区)官方公众号,持续发布优秀社区原创内容。内容深度服务企业内各方向的架构师、运维主管、开发和运维工程师等IT专业岗位人群,让您时刻和国内企业IT同行保持信息同步。
社区探讨,供大家参考:
问题来自社区会员@甘草片 软件开发工程师,以下内容来自社区会员探讨,不代表社区倾向性
@waring_id 美宜佳 系统架构师:
数据库分表分库是一个不错的解决方案,但是非常考验运维的技术能力(一方面涉及当前数据的分表分库操作,可能导致一段时间内无法查询到历史数据;另一方面如果按月分表,每个月新表的建立和检查需要具备一定的数据库运维能力)。在规模不是很大的情况下(监控主机500台以内),可以考虑以下优化方式:
1、升级数据库到更高版本,如果是新部署可以考虑时序数据库(PGSQL 其实性能也不错)
2、服务器硬盘升级到SSD,配置更多的内存资源
3、调整监控模板中(如果监控项较多的话)监控项目的取值时间(例如由每10秒取值调整为每分钟或每5分钟取值,有些变化较小的指标,例如硬盘空间监控项可以调整为5分钟)
4、修改历史数据的保存时间(例如历史数据保留90天,趋势数据保留365天)
5、对数据库的配置文件调优
@wangyeye jingya 软件开发工程师:
对数据库进行优化:
1、数据库相关参数的优化(内存、IO)
@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”
长按二维码关注公众号
*本公众号所发布内容仅代表作者观点,不代表社区立场
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
