如何自動化新增上百臺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選項卡
Conditions選項卡
我們要在Conditions裡面定義好需要的條件,這裡我們選擇Host metadata like Linux。這樣就剛好可以匹配到我們在agent配置檔案裡面設定的HostMetadataItem=system.uname。
Operations選項卡
接下來我們配置Operations選項卡,告知Action匹配到條件後的操作。下面我們配置了三個操作,滿足條件的activehost發起請求後會進行下面操作:
- 把agent加到host列表
- 把agent加入linuxservers組
- agent主機link模板Template OS linux
經過這樣的配置,那麼新的Agent就會自動被Zabbix Server新增到主機監控中,並自動連結模板。
需要強調的是,你需要修改模板中的監控型別為Zabbix Agent(active)。
目前自動註冊並不會產生一個事件所以在Event中是看不到Zabbix Server自動添加了一臺主機的。
分享嘉賓
趙舜東
江湖人稱“趙班長”,曾在武警某部負責指揮自動化架構和運維,曾帶團隊負責國內知名電商運維工作,SaltStack中國使用者組發起人、運維社群發起人、《saltstack入門與實踐》作者,《運維知識體系》作者。
文章出處:運維社群(訂閱號ID:cloud-oaas)