21 Zabbix系統性能優化建議


點擊返回:自學Zabbix之路

點擊返回:自學Zabbix4.0之路

點擊返回:自學zabbix集錦

21 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優化指南

    獲得zabbix內部組件工作狀態(該組件處於BUSY狀態的時間百分比)

       zabbix[process,type,mode,state]

    其中可用的參數為:

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

     [轉載]zabbix優化指南
     [轉載]zabbix優化指南

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

  • 添加proxy節點,減少了server端的負荷。(下面方法無用,再使用此辦法)
  • Zabbix中的item默認工作是被動模式,可以通過設置主動模式來提高server的性能。   

   主要講講采用主動模式,若采用active checks模式:

  ①zabbix_agentd.conf配置調整

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寫入數據庫的進程是多少


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM