以前用zabbix,都是简简单单的把服务端、客户端一搭,模板监控项一弄就完了。没怎么真正去弄过优化啊之类的。现在有个场景就是获取zabbix的数据贼慢,得对zabbix进行优化,开始动手分析一下。
 
先看以下几张图,这是优化前后的对比图
 
1)队列数
 
优化前:
 
 
优化后:
 
 
通过grafna可视化图形看:
 
 
 
2、zabbix-server上poller进程的性能监控
 
优化前:
 
 
 
优化后:
 
 
 
3、zabbix-server收集数据时各个进程的性能监控,一直处于100%的可以看到是zabbix busy poller process;优化后降了很多
 
 
 
预测原因
 
1)是不是zabbix-server端主机的性能不行,要不要切分出来,做代理之类的。但是通过数据可以看到CPU只用了不到%6,说明主机还没有完全跑起来,岂不是浪费资源了。所以,可以增加zabbix服务端收集数据的各个进程数量。那就动手试试看。
 
 
 
先了解一下zabbix-server收集数据时,需要哪些进程,以及对应与zabbix server配置文件里的哪个配置项,分别代表是什么意思?
 
收集数据时的进程有如下:
 
 
 
对应的配置文件如下:
StartTrappers=                     Trappers初始子进程数
StartPollers= 初始化时启动子进程数量,数量越多,则服务端吞吐能力越强,最系统资源消耗越大
StartIPMIPollers= 主要用于IPMI技术用于获取硬件状态场景,如果无相关监控项,建议设置为0
StartDiscoverers= 用于设置自动发现主机的子进程数量
StartPingers= 用于设置启用icmp协议PING主机方式启动子进程数量
StartHTTPPollers= HTTP主动监测的进程数
StartProxyPollers= 启用多少子进程与代理端通信
StartPollersUnreachable= 默认情况下,zabbix会启动指定进程用于探测某些不可达主机(含IPMI场景);若场景中含有代理端,建议使用默认,若直接agent较多,根据值调整
StartDBSyncers= DB同步进程数量
 
 
通过ps -ef |grep zabbix来看一下zabbix服务端的进程分别代表什么意思:
 
 
报警器(alerter)                                该类型的进程是用来发送报警通知的;
配置同步器(configuration syncer) 用于将配置文件中的配置信息同步到内存中缓存;
数据发送器(data sender) 服务器代理节点用于发送数据的进程(服务器端没有这类进程);
数据库看门狗(db watchdog) 该进程用于监视zabbix系统的数据库状态,当数据库状态变为不可用时,发送警告信息(服务器代理端不支持这类型进程)。
自动发现器(discoverer) 用于自动发现设备的进程;
步骤(escalator) 用于处理动作中的步骤的进程;
心跳发送器(heartbeat sender) 服务器代理端用于发送心跳信息(服务器端没有这类型的进程);
历史数据同步器(history syncer) 用于写历史数据表;
管家(housekeeper) 用于清理过期的历史数据的进程;
HTTP 轮询器(http poller) 用于轮询web类的监控项目;
Ping检查器(icmp pinger) 用于定期的进行ICMP PING检查;
ipmi 轮询器(ipmi poller) 用于定期进行ipmi监控项目的检查;
java 轮询器(java poller) 用于轮询java 监控项目;
分布式节点看守器(node watcher) 用于在不同的分布式节点发送历史数据和配置信息更新的进程;
轮询器(poller) 用于普通的被动监控项目的轮询;
服务器代理轮询(proxy poller) 用于服务器代理的被动轮询;
自我监控(self-monitoring) 用于收集Zabbix系统内部的监控信息;
定时器(timer) 用于处理触发器中也时间相关的函数和维护模式的进程;
陷入器(trapper) 用于处理主动采集、陷入以及分布式节点间或服务器代理的通信;
不可到达轮询器(unreachable poller) 用于轮询不可到达到的设备;
vmware 收集器(vmware collector) 负责从vmware服务进程中收集数据(服务器代理端不支持这种类型的进程);
 
图片版的:
 
 
 
然后根据自己的zabbix服务状态,我把我的配置文件打开了这几个配置项,并修改了参数值;那么这些参数值具体调多少合适呢?
我的理解:这里得根据你的客户端数,服务器性能,然后得慢慢调,去测试才行
 
 
StartPollers=
StartIPMIPollers=
StartPollersUnreachable=
StartTrappers=
StartPingers=
StartDBSyncers=
知识项
 
1)队列(Queue) 
 
在Adminstartion --> Queue 这里可以看到

 
这里的队列表示的是正在等待刷新的监控项;这里的图片越绿越好,绿色表示我们的zabbix 服务端运行良好;像前面的图片中有其他颜色的,表明有等待,可以通过最右上角那里查看是什么具体的细节;如:
 
 
 
2)zabbix的NVPS(number of values processed per second)
 
每秒处理数值数,可以作为衡量zabbix服务端性能指标之一
 
 
 
参考文档:
 
 
 
 
 
 

zabbix性能优化记的更多相关文章

  1. (80)zabbix性能优化中的几个建议

    随着zabbix的广泛应用,少数人的zabbix服务器在性能上出现瓶颈,或者在未来会出现性能方面的瓶颈,接下来讨论几个有效并且简单的优化方案. 服务器硬件 想通过几个简单的配置让服务器提高成倍的性能, ...

  2. zabbix 性能优化

    Zabbix 安装好就放在那不管了,以为不需要调优.直到最近出现了如下一堆告警. 描述下我们的环境 硬件:8核 32G 软件:Centos7.6 Zabbix4.0.Httpd2.4.PHP7.3.M ...

  3. Zabbix性能优化

    前言 如果不做表分区和删除历史数据规则设置的话,随着时间的推移zabbix的查询性能会变得很低 查看zabbix的性能 通过zabbix的NVPS(每秒处理数值数)来衡量其性能,在zabbix的das ...

  4. zabbix性能优化等

    摘自: http://blog.sina.com.cn/s/blog_4cbf97060101fcfw.html 非常好的一篇,值得有用

  5. 20 Zabbix系统性能优化建议

    点击返回:自学Zabbix之路 20 Zabbix系统性能优化建议 1. Zabbix性能变慢的可能表现: zabbix队列有太多被延迟的item,可以通过administration-queue查看 ...

  6. 21 Zabbix系统性能优化建议

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 21 Zabbix系统性能优化建议 1. Zabbix性能变慢的可能表现: zabbix队列有太多 ...

  7. 023-zabbix性能优化中的几个中肯建议

    随着zabbix的广泛应用,少数人的zabbix服务器在性能上出现瓶颈,或者在未来会出现性能方面的瓶颈,接下来讨论几个有效并且简单的优化方案. 服务器硬件 想通过几个简单的配置让服务器提高成倍的性能, ...

  8. Zabbix--06主动模式和被动模式、低级自动发现、性能优化、

    目录 一. Zabbix主动模式和被动模式 1.克隆模版 2.修改克隆后的模版为主动模式 3.修改监控主机关联的模版为主动模式 4.修改客户端配置文件并重启 5.查看最新数据 二.Zabbix低级自动 ...

  9. 记一次mysql性能优化过程

    摘要: 所谓mysql的优化,三分是配置的优化,七分是sql语句的优化,通过一些案例分析,希望给大家在工作中带来一些思路 由于配置是运行过那么长时间,很稳定,基本上不考虑,所以本次主要是sql的优化, ...

随机推荐

  1. 浅谈Final

    Java关键字final有“这是无法改变的”或者“终态的”含义,final可以修饰非抽象类.非抽象类成员方法和变量. final类不能被继承,没有子类,final类中的方法默认是final的.fina ...

  2. 第 8 章 容器网络 - 065 - 容器在 Weave 中如何通信和隔离?

    首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 we ...

  3. [数据结构] 大纲 - Stan Zhang 数据结构速通教程

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 2019年4月8日 P1.1 链表 Link:https://www.cnblogs.com/yosql473/p/10727471 ...

  4. 【Mybatis】【2】处理大于号小于号及其他特殊字符

    正文: 问题:用<的时候会报错.因为是xml文件,会被识别成标签 解决方法: 原sql:SELECT * FROM TABLE T WHERE T.AGE < 10; 1,转义字符.用转义 ...

  5. React文档(十二)组合vs继承

    React拥有很强大的组合模型,我们建议使用组合来替代继承来重利用组件之间的代码. 在本章节中,我们将讨论一些开发者经常触及继承的问题,并且我们该如何使用组合来解决这些问题. 组合 一些组件事先不知道 ...

  6. CSS中的盒子模型与 box-sizing 属性

    盒子模型是css中一个重要的概念,是开发网页必须要用的布局方法.盒子模型有两种,分别是标准 w3c 盒子模型和 ie 盒子模型. 标准 w3c 盒子模型:包括 magin(外边距).border(边框 ...

  7. node基础知识-常用node命令

    node中js的组成部分:ECMAScript核心+全局成员+模块系统成员 浏览器中的js组成部分:ECMAScripts核心+BOM+DOM 常用node命令 cmd中进入REPL环境:直接输入no ...

  8. Guava:好用的java类库 学习小记

    基础功能 google guava中定义的String操作 在google guava中为字符串操作提供了很大的便利,有老牌的判断字符串是否为空字符串或者为null,用指定字符填充字符串,以及拆分合并 ...

  9. Python *Mix_w4

    1.什么是列表(list) 列表是一个可变的数据类型 列表由[ ]来表示,每一项元素使用逗号隔开.列表什么都能装,能装对象的对象. 列表可以装大量的数据,列表能装所有数据类型 2.列表的索引和切片 列 ...

  10. 微服务-注册与发现-zookeeper bydasn

    目录 一.微服务注册的概述 二.zookeeper2.1 zookeeper安装启动2.2 zookeeper集群搭建2.3 zkcli操作 一.微服务注册概述 在微服务中,有这么一个东西叫服务注册表 ...