1. 程式人生 > >如何自動化新增上百臺Zabbix監控

如何自動化新增上百臺Zabbix監控

前言

當我們熟悉了Zabbix的日常監控,可以在生產環境正確的部署和實施監控工作。而且通過修改Zabbix Agent為主動方式並結合Zabbix Proxy的使用,可以滿足大規模監控的需求。那麼同樣的問題就是大規模監控環境中,如何能讓操作自動化。面對上百、數千乃至上萬的規模,手動新增監控基本上是不可能的。

可以將Zabbix自動化分為三個大方向:

  • Zabbix Agent的自動新增
  • Zabbix Discovery自動發現
  • 使用Zabbix API

那麼今天我們來說說Zabbix Agent的自動新增。

Zabbix Agent主動註冊指的是,當我們新增加一臺伺服器,安裝好Zabbix Agent,並配置Zabbix Server的IP地址後,Zabbix Agent主動聯絡Zabbix Server,Zabbix Server接收到Agent的連線後,根據Agent的特徵,和相應的策略自動將它們加入Host,並且可以根據相關的特徵自動關聯相應的監控模板。

Zabbix Agent配置

需要開啟Zabbix Agent的主動註冊,首先我們需要對ZabbixAgent進行配置。

ServerActive=Zabbix Server的IP地址

Hostname=auto.example.com

#設定主機名,如果不設定預設使用HostnameItem獲取主機名。而預設情況下HostnameItem=system.hostname,這樣就可以獲取到Agent的主機名了。

#HostMetadata=nginx

#HostMetadata用於定義主機的元資料,在自動註冊的時候使用,不能大於255個字元,如果不設定預設從HostMetadataItem獲取

HostMetadataItem=system.uname

# HostMetadataItem也是用於定義主機的元資料,在自動註冊的時候使用,不能大於255個字元,這裡設定的Item指的是Zabbix自帶的監控項,注意這個值只用於HostMetadata沒有設定的時候才生效。

Zabbix Action配置

配置完畢Agent後,我們在Web介面上來配置一個Action。步驟為:

configuration>>action>>Eventsource(選擇Auto registration)>>CreateAction。

可以自定義一個名稱,其它的預設即可。

Action選項卡

Zabbix監控

Conditions選項卡

我們要在Conditions裡面定義好需要的條件,這裡我們選擇Host metadata like Linux。這樣就剛好可以匹配到我們在agent配置檔案裡面設定的HostMetadataItem=system.uname

監控

Operations選項卡

接下來我們配置Operations選項卡,告知Action匹配到條件後的操作。下面我們配置了三個操作,滿足條件的activehost發起請求後會進行下面操作:

  • 把agent加到host列表
  • 把agent加入linuxservers組
  • agent主機link模板Template OS linux

Zabbix監控

經過這樣的配置,那麼新的Agent就會自動被Zabbix Server新增到主機監控中,並自動連結模板。

需要強調的是,你需要修改模板中的監控型別為Zabbix Agent(active)。

目前自動註冊並不會產生一個事件所以在Event中是看不到Zabbix Server自動添加了一臺主機的。

分享嘉賓

趙舜東

江湖人稱“趙班長”,曾在武警某部負責指揮自動化架構和運維,曾帶團隊負責國內知名電商運維工作,SaltStack中國使用者組發起人、運維社群發起人、《saltstack入門與實踐》作者,《運維知識體系》作者。
文章出處:運維社群(訂閱號ID:cloud-oaas)