Zabbix系统性能优化建议

Posted magita

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix系统性能优化建议相关的知识,希望对你有一定的参考价值。

 

点击返回:自学Zabbix之路

点击返回:自学Zabbix4.0之路

点击返回:自学zabbix集锦

1. Zabbix性能变慢的可能表现:

  • zabbix队列有太多被延迟的item,可以通过administration-queue查看
  • zabbix绘图中经常出现断图,一些item没有数据
  • 带有nodata()函数的触发器出现flase
  • 前端页面无响应,或者响应慢

    a.通过Zabbix agent采集数据的设备处于moniting的状态但是此时机器死机或其他原因导致zabbix agent死掉server获取不到数据,此时unreachable poller
    就会升高。
    b.通过Zabbix agent采集数据的设备处于moniting的状态但是server向agent获取数据时时间过长,经常超过server甚至的timeout时间,此时unreachable poller就会升高。

   如何度量Zabbix性能:

         通过Zabbix的NVPS(每秒处理数值数)来衡量其性能。在Zabbix的dashboard上有一个错略的估值。

  技术图片

2. Zabbix性能优化的几点原则:

  • 确保zabbix内部组件性能处于被监控状态(调优的基础!)
  • 使用硬件性能足够好的服务器
  • 不同角色分开,使用各自独立的服务器
  • 使用分布式部署
  • 调整MySQL性能
  • 调整Zabbix自身配置

3. Zabbix变慢的几个原因总结如下:

  • Zabbix server硬件配置,建议更好的CPU、更大的内存,更快的硬盘
  • Zabbix架构,若整体架构过大,建议使用分布式proxy,各服务器功能独立
  • 数据量太大,vps太高,zabbix来不及处理
  • Housekeeper设置不当,数据库体积变大
  • 前端主机太多,查询过多的数据
  • Item工作模式及Triggers优化,Triggers太过复杂

   技术图片

技术图片

3.1 了解Zabbix目前的工作状态

     获得zabbix内部状态

         zabbix[wcache,values,all]

          zabbix[queue,1m]   ----延迟超过1分钟的item

     技术图片

    获得zabbix内部组件工作状态(该组件处于BUSY状态的时间百分比)

       zabbix[process,type,mode,state]

    其中可用的参数为:

  • type: trapper,discoverer,escalator,alerter,etc
  • mode: avg,count,min,max
  • state: busy,idel

     技术图片
     技术图片

3.2 Zabbix性能优化---Item工作模式及Triggers优化

  • 添加proxy节点,减少了server端的负荷。(下面方法无用,再使用此办法)
  • Zabbix中的item默认工作是被动模式,可以通过设置主动模式来提高server的性能。   

   主要讲讲采用主动模式,若采用active checks模式:

  ①zabbix_agentd.conf配置调整

1
2
3
4
5
6
7
8
LogFile=/tmp/zabbix_agentd.log
Server=xxx.xxx.xxx.xxx    server端ip
ServerActive=xxx.xxx.xxx.xx   指定Agentd收集的数据往哪里发送
Hostname=yyy.yyy.yyy.yyy   agent的hostname ,必须要和Server端添加主机时的主机名对应
RefreshActiveChecks=60
BufferSize=10000
MaxLinesPerSecond=200
Timeout=30

     比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名对应起来,这样Server端接收到数据才能找到对应关系,这里为了兼容被动模式,没有把StartAgents设为0,如果一开始就是使用主动模式的话建议把StartAgents设为0,关闭被动模式。
  ②zabbix_server.conf 配置调整

    StartPollers=100     减少主动收集数据进程,由原来的500---100,减小
    StartTrappers=200    负责处理Agentd推送过来的数据的进程,由原来的50---100 ,变大

  ③模板调整

    a. 以任何一个现有模板为例,clone并重命名,假如重命名模板为TEST
    b. 将模板TEST里所有items和discovery rules里的items都变更type为atvice agent

技术图片

    至此active-checks模式的agent部署完毕,可以在overview中查看模板中的监控项。

    Tigger中正则表达式函数last()、nodata()的速度是最快的。。。Min()、max()、avg()是最慢的。。。尽量使用速度快的函数

3.3  数据量太大,vps太高,zabbix来不及处理

    通过以下图,可看出哪个item导致慢:     若more than 10 min 有数据则表示对应的Item数据量过大。

技术图片

解决办法:

  • 修改监控项
  • 调整Item的时间间隔(主要办法)       将zabbix agent监控 timeout时间增大

备注:

调整unsupport items检查时间的方法是:在Adiministration里选择General然后在右侧下拉菜单里选择Other,然后修改Refresh unsupported items (in sec)的值,表示“每多少秒去重新检查一下那些not_supported的值”。
技术图片

3.4 调整MySQL性能

 采用分布式架构,性能瓶颈的最大可能出现在数据库中。

  • 关闭housekeeper, 将history分区
  • 将zabbix_server.conf中的StartDBSyncers参数上调,表示将数据从zabbix写入数据库的进程是多少

以上是关于Zabbix系统性能优化建议的主要内容,如果未能解决你的问题,请参考以下文章

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

从代码级别优化Zabbix的数据展现性能

实例讲解如何优化 Zabbix 系统

Zabbix服务器性能优化记录

Zabbix配置文件的参数优化和Zabbix的数据库优化

Zabbix分区优化