服务器硬件优化简单的说,你需要搭配更好的 CPU 、更大的内存,更快的硬盘:条件允许的化,可以考虑购买 SSD 固态硬盘,它比更大的 cpu 和更大的内存带来的效果更好,或者考虑使用 SAS 15K 硬盘,组 raid 等等,总之一句话,配置优化不动的情况,增加硬件投入。操作系统优化使用最新的操作系...
显示全部- 服务器硬件优化
简单的说,你需要搭配更好的 CPU 、更大的内存,更快的硬盘:条件允许的化,可以考虑购买 SSD 固态硬盘,它比更大的 cpu 和更大的内存带来的效果更好,或者考虑使用 SAS 15K 硬盘,组 raid 等等,总之一句话,配置优化不动的情况,增加硬件投入。
- 操作系统优化
使用最新的操作系统,优化、定制化操作系统内核。应该会有些作用,但是肯定不大。 - 数据库优化
1)DBsock 优化
如果 MySQL 和 zabbix server 在同一台服务器上, socket 连接要比 tcp 连接要更快。
2) 数据库分离
将数据库服务器独立,数据库和 zabbix 资源互相独立,例如:可以购买一台 RDS
3) 数据库引擎
使用 MySQL5.6 或者更高版本,自从 MySQL 被 Oracle 收购了,它的性能确实有不少的提升。请一定选择 innodb ,别选择 myisam ,因为 zabbix 在 innodb 的性能比在 myisam 快 1.5 倍,而且 myisam 不安全, zabbix 监控数据量很大,一旦表坏了,那就是一个悲剧。 history 等等表数据量较大,可以试着分区提高性能。
4) 其他优化
减少 history 保存时间,减少 item 获取间隔时间,减少不必要的监控项。
尽量让数据缓存在数据库服务器的内存中;
触发器表达式:
减少使用聚合函数 min(), max(), avg() ;尽量使用 last() , nodata() ,因为聚合函数,要运算
数据收集: polling 较慢 ( 减少使用 SNMP/agentless/agent );尽量使用 trapping ( agent(active )主动监控);
数据类型:文本型数据处理速度较慢;尽量少使用收集类型为文本 text 或 string 类型的数据;多使用类型为 numeric 数值型数据 的;
5) 对以下数据库分表:
history_*
trends*
events*
4.zabbix-server 或者 proxy 配置文件调优
zabbix 服务器的进程 - )服务器组件的数量;
alerter, discoverer, escalator, http poller, hourekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...
StartPollers=60
StartPingers=10
...
StartDBSyncer=5
... - )设定合理的缓存大小
CacheSize=8M
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
TrendCacheSize=4M
ValueCacheSize=4M - 、架构优化
grafana :展示
collectd :收集
influxdb :存储
grafana+collectd+influxdb
prometheus: 监控
exporter :收集
alertmanager: 告警
在条件不允许或者以上方法都无效的情况下,请一定考虑以上建议。在监控环境中,以上是大家都在犯的错误,大部分 item 是不需要保存太长的数据,有些监控项根本无意义,有些监控项的间隔时间太短。
收起