linux系统zabbix调优相关操作

调优

      • 调优
      • zabbix服务器的进程
      • 数据清理

调优

Database:
历史数据不要保存太长时长;
尽量让数据缓存在数据库服务器的内存中;触发器表达式:减少使用聚合函数 min(), max(), avg();尽量使用last(),nodata();因为聚合函数,要运算数据收集:polling较慢(减少使用SNMP/agentlless/agent);尽量使用trapping(agent(active)主动监控);数据类型:文本型数据处理速度较慢;尽量少收集类型为文本 text或string类型的数据;多使用类型为numeric 数值型数据 的;

zabbix服务器的进程

(1) 服务器组件的数量;StartPollers=60StartPingers=10StartDBSyncer=5(2) 设定合理的缓存大小CacheSize=8MHistoryCacheSize=16MHistoryIndexCacheSize=4MTrendCacheSize=4MValueCacheSize=4M(3) 数据库优化分表:history_*trends*events*

其它解决方案

grafana:展示
collectd:收集
influxdb:存储grafana+collectd+influxdbprometheus:exporter:收集alertmanager:grafana:展示

数据清理

查看数据表大小语句

SELECT table_schema AS 'Database', table_name AS 'Table',round(((data_length + index_length) / 1024 / 1024), 2) 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'zabbix'
ORDER BY (data_length + index_length) DESC;

清理30天之前的数据

DELETE FROM history WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
DELETE FROM history_uint WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));

清理整张表

TRUNCATE TABLE history;
TRUNCATE TABLE history_uint;

优化表

OPTIMIZE 是 MySQL 数据库中的一个命令,用于优化表的性能和空间利用。当表中进行大量数据插入、更新和删除操作时,表可能会产生空洞,导致表文件变得不连续,从而影响查询性能。OPTIMIZE TABLE 命令可以解决这个问题。

OPTIMIZE TABLE history;
OPTIMIZE TABLE history_uint;