Zabbix在使用的过程中有很多优化的点,可以提高系统性能和使用效率,包括高并发需要对MySQL进行拆分、Zabbix-agent被动上传修改为主动上报模式、服务器的地区较多的情况尽量使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化。
一、高并发需要对MySQL进行拆分
在高并发环境下,单个MySQL实例可能无法处理大量的查询请求。因此,可以考虑将Zabbix数据库进行拆分,以减轻负载。可以通过多个MySQL实例,每个实例负责不同的数据表或区域,从而实现数据库的拆分。
1. 1、分析当前的负载情况,确定是否需要拆分MySQL数据库。 2. 2、准备多个MySQL实例,并为每个实例创建相应的数据库。 3. 3、将Zabbix的数据表根据一定的规则拆分到各个MySQL实例中。可以根据功能模块、地理区域等进行拆分。 4. 4、修改Zabbix服务器和代理的配置文件,使其连接相应的MySQL实例。
二、Zabbix-agent被动上传修改为主动上报模式
默认情况下,Zabbix-agent使用被动上传模式,即等待服务器向其请求数据。但在高负载环境中,被动上传模式可能产生较高的系统负载。所以,将被动上传模式修改为主动上报模式可能会更好,即Zabbix-agent主动将数据发送给Zabbix服务器。
1. 1、修改Zabbix-agent的配置文件,在其中启用主动上报模式。 2. 2、在Zabbix服务器上添加主动监控项,用于接收来自Zabbix-agent的数据。 3. 3、配置主动监控项的触发器和动作,以便在满足特定条件时触发通知。
详细可以参考这篇文章: 【运维知识进阶篇】zabbix5.0稳定版详解6(zabbix自动化监控:自动发现+自动注册+监控项目主动式)_我是koten的博客-CSDN博客
三、服务器的地区较多的情况尽量使用proxy代理模式
当Zabbix服务器和被监控的主机地理位置较远时,网络延迟可能较高,影响数据采集的效率。在这种情况下,可以配置Zabbix Proxy代理来充当中间节点,将代理放置在被监控的主机附近,以减少网络延迟和带宽消耗。
1. 1、在需要进行代理的地区部署Zabbix Proxy代理服务器。 2. 2、配置Zabbix Proxy代理的相关参数,包括连接Zabbix服务器的地址、端口以及需要代理的主机。 3. 3、在被监控的主机上修改Zabbix-agent的配置文件,将其连接到相应的Zabbix Proxy代理服务器。
详细可以参考这篇文章:【运维知识进阶篇】zabbix5.0稳定版详解7(zabbix分布式监控:使用场景+功能详解+快速部署+基本使用)_我是koten的博客-CSDN博客
四、系统自带监控项优化
Zabbix提供了一些系统自带的监控项,但并非每个监控项都适用于所有情况。因此,可以根据实际需求,选择性地启用、禁用或调整这些自带的监控项,以减少不必要的开销。
1. 1、在Zabbix前端界面上,禁用不需要的系统自带监控项。 2. 2、根据需求,自定义监控项,以更准确地监控系统的关键指标。 3. 3、避免在单个主机上同时启用大量监控项,可以分散监控项的负载到多个主机。
详细可以参考这篇文章:
【运维知识进阶篇】zabbix5.0稳定版详解4(用脚本自定义监控项+监控MySQL状态信息)_我是koten的博客-CSDN博客
五、进程优化
对于Zabbix相关的进程,如Zabbix-server、Zabbix-agent等,可以根据系统的实际情况进行调优。例如,可以调整进程的启动参数、最大文件描述符数、线程数等,以提高性能和稳定性。
由于zabbix版本不同,可能有的配置项配置文件没有,自行调整即可。
1. 1. 调整Zabbix-server和Zabbix-agent的启动参数: 2. - 打开Zabbix-server配置文件(一般为zabbix_server.conf):vim /etc/zabbix/zabbix_server.conf` 3. - 修改Zabbix-server的启动参数,如调整内存限制为8GB: 4. ``` 5. StartVMwarePerfFrequency=60 6. StartJavaGateway=0 7. JavaGateway=127.0.0.1 8. JavaGatewayPort=10052 9. StartHTTPPollers=5 10. StartPreprocessors=10 11. StartPollers=100 12. StartPingers=10 13. StartDiscoverers=15 14. ``` 15. - 打开Zabbix-agent配置文件(一般为zabbix_agentd.conf):vim /etc/zabbix/zabbix_agentd.conf 16. - 修改Zabbix-agent的启动参数,如调整内存限制为2GB: 17. ``` 18. StartAgents=10 19. ``` 20. 2. 配置操作系统的最大文件描述符数: 21. - 打开limits.conf文件:vim /etc/security/limits.conf 22. - 添加以下行以提高文件描述符限制,如每个进程最大打开文件数为65536: 23. ``` 24. * soft nofile 65536 25. * hard nofile 65536 26. ``` 27. - 打开sysctl.conf文件:vim /etc/sysctl.conf 28. - 添加以下行以提高系统的可打开文件数: 29. ``` 30. fs.file-max = 200000 31. ```
六、缓存优化
Zabbix在数据查询和处理过程中使用了内部缓存,以提高性能。通过适当调整缓存大小、缓存时间等参数,可以优化系统的性能;还可以使用外部缓存服务器,如Memcached或Redis,来存储和提供缓存数据,提高响应速度和减轻数据库负载;针对频繁查询的数据,如历史数据和趋势数据等,可以使用缓存策略,减轻数据库负载。
由于zabbix版本不同,可能有的配置项配置文件没有,自行调整即可。
1. 1. 修改Zabbix-server的缓存参数: 2. - 打开Zabbix-server配置文件:vi /etc/zabbix/zabbix_server.conf 3. - 修改缓存配置,如增加缓存大小限制和缓存数量,即将以下参数修改为合适的值: 4. ``` 5. CacheSize=512M 6. CacheUpdateFrequency=30 7. StartPollersUnreachable=5 8. ``` 9. 2. 配置使用外部缓存服务器(如Memcached或Redis): 10. - 根据具体情况,安装并配置Memcached或Redis服务器。(这里以Memcached为例) 11. - 修改Zabbix-server和Zabbix-agent的配置文件,使其与Memcached服务器进行连接。 12. - 在Zabbix-server配置文件中添加以下行: 13. ``` 14. CacheType=CACHE_MEMCACHED 15. CacheSize=512M 16. CacheUpdateFrequency=30 17. StartPollersUnreachable=5 18. MemcachedCacheSize=256M 19. MemcachedTimeout=10s 20. MemcachedLocation=127.0.0.1:11211 21. ``` 22. - 在Zabbix-agent配置文件中添加以下行: 23. ``` 24. CachedItemMax=1000 25. CachedItemSize=128K 26. ``` 27. 3. 重启Zabbix-server和Zabbix-agent服务,使配置生效: 28. - 重启Zabbix-server服务:systemctl restart zabbix-server 29. - 重启Zabbix-agent服务:systemctl restart zabbix-agent
我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!