zabbix自動發現和自動註冊
熟練通過Zabbix監控平臺監控單臺客戶端之後,企業中有成千上萬臺服務器,如果手工添加會非常耗時間,造成大量的人力成本的浪費,有沒有什麼好的自動化添加客戶端的方法呢?
Zabbix自動發現就是爲了解決批量監控而設計的功能之一,什麼是自動發現呢,簡單來說就是Zabbix Server端可以基於設定的規則,自動批量的去發現局域網若干服務器,並自動把服務器添加至Zabbix監控平臺,省去人工手動頻繁的添加,節省大量的人力成本。(自動發現規則由服務端主動發起,Zabbix Server開啓發現進程,定時掃描局域網中IP服務器、設備,實現自動剛發現主機、自動將主機添加到主機組、自動加載模板、自動創建項目(item)、自動創建圖像等功能。)
自動發現的原理
網絡發現由兩個步驟組成: 發現和動作(action)
zabbix週期性地掃描在網絡發現規則中定義的IP段,根據每一個規則配置自身的檢查頻率,每一個規則都定義了一個對指定IP段的服務檢查集合.
動作是對發現的主機進程相關的設置過程, 常用的動作有添加,或刪除主機,啓用或停用主機,添加主機到某一個組中,發現通知等等.
自動發現discover進程
說明:用於設置自動發現主機的線程數量,若單臺代理所管理機器超過500臺,可以考慮加大此數值(僅適用於直接AGENT場景)
# StartDiscoverers=1
### Option: StartHTTPPollers
# Number of pre-forked instances of HTTP pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
[root@localhost ~]# systemctl restart zabbix-server --如果發現沒有探測到主機就要看看有沒有探測進程
[root@localhost ~]# ps -ef | grep discove --重啓zabbix-server服務之後查看是否存在discover進程,可以看到默認情況下只開啓一個探測進程
zabbixs+ 21298 21287 0 20:16 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #1 [processed 1 rules in 0.563187 sec, idle 60 sec]
[root@localhost ~]# vim /etc/zabbix_server.conf --默認情況下發現進程只有一個,如果需要發現的主機可以將參數調大,使用多個進程去發現主機,這樣探測速度快
StartDiscoverers=2
[root@localhost ~]# ps -ef | grep discoverer
zabbixs+ 21442 21431 0 20:21 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000338 sec, idle 43 sec]
zabbixs+ 21443 21431 0 20:21 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #2 [processed 0 rules in 0.000497 sec, idle 60 sec]
自動發現
Zabbix最大的特點之一就是可以批量自動主機並監控,利用發現(Discovery)模塊,實現自動發現主機、自動將主機添加到主機組、自動加載模板、自動創建項目(Items)、自動創建監控圖像,操作步驟如下:Configuration----->discovery------->Create discovery rule
創建發現的規則:
填寫server端所掃描的主機ip地址所在範圍,例如服務器所在的範圍爲192.168.179.99-104
修改適合的時間延遲(延遲太短如果主機太多會導致有的主機掃描不到,這裏爲60S)
Name: 規則名稱;
Discovery by proxy : 通過代理探索;
IP range : zabbix_server 探索區域的IP範圍;
Delay : 搜索一次的時間間隔;
Checks : 檢測方式,如用ping方式去發現主機,zabbix_server需安裝fping,此處使用SSH方式發現;
Device uniqueness criteria: 以IP地址作爲被發現主機的標識。
探測到了會如下顯示:(可以看到有些主機是沒有被探測到的,如101,102,SSH不通)
創建發現的動作
Zabbix發現規則創建完畢,客戶端Agent安裝完後,被發現的IP主機不會自動添加至Zabbix監控列表,需要添加發現動作,添加方法如下:Configuration --> Actions --> Event source(選擇Discovery) --> Create action
操作:添加相應的操作,如加模板,加主機等
查看結果
configuration-->hosts-->配置你的zabbix客戶端即按照zabbix agent
192.168.179.100上面安裝zabbix agent
[root@localhost ~]# yum install zabbix40-agent -y --被監控的主機安裝上agent
[root@localhost ~]# rpm -qc zabbix40-agent
/etc/zabbix/zabbix_agentd.conf
Server=192.168.179.103 --要將數據給到103
#ServerActive=127.0.0.1
Hostname=192.168.179.100 --主機ip
[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# netstat -tpln | grep 100
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 15386/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 15386/zabbix_agentd
再來查看可以看到192.168.179.99成功添加進監控項