Zabbix 安装好就放在那无论了,觉得不须要调优。直到最近出现了以下一堆告警。mysql
描述下咱们的环境sql
硬件:8核 32G 数据库
软件:Centos7.6 Zabbix4.0、Httpd2.四、PHP7.三、MySQL5.6缓存
出现告警时,查看系统资源使用率并不高。猜想是 Zabbix-Server 的配置问题,修改以下配置,已去掉不相关安全
# 本机经过socket链接更快 DBSocket=/home/work/mysqldata/data/mysql.sock # 轮询进程的初始实例数量。默认5 StartPollers=30 # 不可达主机 (包括IPMI 和 Java)的轮询进程的初始实例数量。默认1 StartPollersUnreachable=20 # trappers进程实例数量。Trappers接受来自Zabbix发送者、主动agents和主动proxies的传入链接。默认5 StartTrappers=15 # 自动发现子进程实例个数。默认1 StartDiscoverers=5 # HTTP 轮询器子进程实例个数。默认1 StartHTTPPollers=5 #Zabbix 执行 housekeeping 的频率 (单位为小时)。housekeeping负责从数据库中删除过时的信息。默认1 HousekeepingFrequency=24 #Zabbix 缓存更新频率, 单位秒。默认60 CacheUpdateFrequency=180 # 历史缓存数据大小, 单位字节.存储历史数据。默认8 HistoryCacheSize=64M # 历史索引缓存大小, 单位字节. # 用于索引历史缓存中历史数据的共享内存大小. #缓存一个item大概须要索引的大小为100字节.item表明一个监控项,按照100000个监控项来算:100000*100/1024/1024=9.6M HistoryIndexCacheSize=10M # 历史数据缓存大小, 单位bytes. # 缓存item历史数据请求的共享内存大小. # 0即禁止缓存 (不建议). # 当缓存大小超过共享内存时,每5分钟会向服务器日志写入一条警告信息. ValueCacheSize=128M
以上是Zabbix层面的优化,若是是系统资源不足,则要考虑以下几个层面。性能优化
服务器硬件 服务器
想经过几个简单的配置让服务器提升成倍的性能,想法很好,可是基本不太现实。简单的说,你须要搭配更好的CPU、更大的内存,更快的硬盘:条件容许的花,能够考虑购买SSD,它比更大的cpu和更大的内存带来的效果更好,或者考虑使用SAS 15K硬盘,组raid等等,总之一句话,配置优化不动的状况,增长硬件投入,别绞尽脑汁搜索:zabbix如何优化之类的文章,你在浪费时间。app
操做系统socket
使用最新的操做系统,优化、定制化操做系统内核。应该会有些做用,可是确定不大。tcp
数据库优化
DBsock优化
若是MySQL和zabbix server在同一台服务器上,socket链接要比tcp链接要更快。
数据库分离
将数据库服务器独立,数据库和zabbix资源互相独立,例如:能够购买一台RDS
数据库引擎
使用MySQL5.6或者更高版本,自从MySQL被Oracle收购了,它的性能确实有很多的提高。请必定选择innodb,别选择myisam,由于zabbix在innodb的性能比在myisam快1.5倍,并且myisam不安全,zabbix监控数据量很大,一旦表坏了,那就是一个悲剧。
mysql分区,history等等表数据量较大,能够试着分区替身性能。
其余优化
一、减小history保存时间
二、减小item获取间隔时间
三、减小没必要要的监控项