如何自動化添加上百臺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自動添加了一臺主機的。