【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【运维知识进阶篇】Zabbix5.0稳定版详解9(Zabbix优化:高并发对MySQL进行拆分、Zabbix-agent主动上报模式、使用proxy代理模式、系统自带监控项优化、进程优化、缓存优化)

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年运维经验,持续分享运维干货,感谢大家的阅读和关注!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
8月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1397 1
|
10月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
399 11
|
7月前
|
缓存 关系型数据库 MySQL
在MySQL中处理高并发和负载峰值的关键技术与策略
采用上述策略和技术时,每个环节都要进行细致的规划和测试,确保数据库系统既能满足高并发的要求,又要保持足够的灵活性来应对各种突发的流量峰值。实施时,合理评估和测试改动对系统性能的影响,避免单一措施可能引起的连锁反应。持续的系统监控和分析将对维护系统稳定性和进行未来规划提供重要信息。
353 15
|
8月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
9月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
606 17
|
10月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
2548 26
|
10月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
1094 12
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
465 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战

热门文章

最新文章

推荐镜像

更多