服務漸增加要保持整體服務高可用性及系統穩定,正式環境中並不會依靠人力一一檢查。當出現問題時可利用 Zabbix 快速鎖定問題範圍,但當主機數量一一攀升,部分監控項須透過 Zabbix agent Active模式分擔主機監控的責任了。
值得慶幸是當小編覺得好用時,第一直覺是考慮到未來監控數量大可能會發生狀況,提早向Google 詢問 Zabbix agent Active 與 Passive 差異 ,不然等到主機數量大增時再一一來改正跟重新設定,會工作到吐血。
Active 與 Passive 資料傳送方式差異
兩者在監控的本職功能上並沒有差異,差異是在推送資料的方式,除了監控以外的自動化就要使用 Passive Agent,下方文章會詳加敘述。
Passive agent 是被動式的服務 Zabbix Server 主動輪流詢問監控站台取回資料,被詢問到的 Agent 才回應資料內容。
Active agent 是主動式每台監控主機設定的時間一到,Agent 先送出確認 Zabbix server 服務狀態確認在線,就把監控的 Server 資料送出到 Zabbix server。
Active 與 Passive 優缺點比較
架構需求
被監控的主機只能有連出的連線,不能有連入的流量或是主機有開額外的服務 Port。此時十分適合Active agent,因 Agent會主動送出資料無須連入主機。
除了監控主機活動狀態以外,需要在發現觸發告警時自動執行指令嘗試自動修復主機,此時就需要 Passive agent 等待接收指令。
效能瓶頸
在 Passive agent 模式下 Zabbix server 需每台主機上監控的項目一一詢問,當監控標的數越高,例如一百台主機每台30-150個監控項,每分鐘產生請求數量對主機的效能要求就會越嚴苛。
而監控列表上有失連主機,每一次詢問都需要等到超時才會進行下一項資料取得,對於輪詢的效率就非常差。當然問題都是多個解決方式,亦可以透過增加線程增加Proxy server 數量,分流單一主機的運算壓力。
而 Active agent 模式下資料取得由各自的 Agent 各自取得,時間週期一到即把監控資料發回主機,如果短時間連不上有短時間保留資料的效果,但別忘了缺點是不能自動判斷跟下指令修復或關閉主機。
幸好Active Agent 與 Passive agent 可以混合使用,主機資料或是有 Agent 模板可以使用 Agent 去抓取資料的都使用 Active Agent,需要下指令或是需要透過SNMP 等就透過Passive agent 大量分散需要的資源量。