批量部署zabbix agent

2021-09-22 19:25:03 字數 2000 閱讀 7974

zabbix作為系統級的監控還是非常給力,它總是在後台孜孜不倦的進行反反覆覆的檢查和校驗,然後通過郵件,簡訊,圖形等方式來把系統的預警表達出來。

zabbix agent是在客戶端上需要的乙個元件,在這種被動模式下,zabbix server的壓力就會大大減輕,因為是在agent端開始推送資訊給服務端,而不是服務端主動去獲取。

簡單來上個圖,其實這個架構和原理想必大家非常熟悉了。

客戶單的server和zabbix server之間通過網路的特定埠來進行互動。所以在兩個server間需要考慮防火牆。

現在如果要在每個server安裝這個agent,至少我們需要把安裝介質拷貝過去,建立相應的目錄,建立對應的使用者,然後配置網路,最後執行agent的安裝檔案做make install等等。

如果每個客戶端都這麼做一遍,其實步驟都是類似,花費時間不少,還是非常耗費精力的。我就自己試著手工方式安裝,結果安裝了幾台之後,備受煎熬。中間某些步驟有操作失誤,又得分析分析,最後發現是個很簡單的小錯誤。

至少對於我來說,我認為最簡單的安裝方式就是只提供乙個ip位址,然後剩下的事情都能自動完成。

比如假設我們有個指令碼 zabbix_agent.sh 只需要輸入需要安裝agent的機器ip位址,就會開始自動安裝,這樣就省時省力了。

我們可以把問題繼續細化,把它細化稱為可以實現的幾個部分。比如我在一台中間**伺服器上,需要通過這台伺服器連線到各個server安裝agent,那麼首先要做的就是在目標機器上建立對應的目錄,把安裝所需要的檔案等都給拷貝過去,可以簡稱發布agent

然後檔案目錄等都具備之後,我們就需要配置網路防火牆,建立zabbix agent的作業系統使用者,呼叫安裝檔案,這個部分簡稱為部署agent

所以我把指令碼分成兩個部分,執行的時候只需要提供ip位址即可。

./publish_zabbix_agd.sh $1

./zabbix_agent_dep.sh $1

明確了目標任務之後,剩下的就是具體的實現了。

對於發布程式來說,為了達到一鍵式發布,部署的效果,使用expect的方式來動態執行指令碼。

目前我採用的方式如下:

發布agent的指令碼內容如下,假設agent的目錄為new_agent,就線建立資料夾,然後把安裝檔案拷貝到指定的目錄下/home/zabbix

#!/usr/bin/expect

set ip_addr [lindex $ar** 0]

set timeout 2

spawn ssh $ip_addr

expect "*#"

send "mkdir -p /home/zabbix \r"

expect eof

spawn scp -r  /home/jeanron/new_agent $ip_addr:/home/zabbix

send "exit \r"

expect eof

然後部署agent的指令碼如下,我們把網路配置,呼叫安裝檔案的部分都濃縮在install-zabbix-agentd.sh裡面。直接一次性呼叫即可。

#!/usr/bin/expect

set ip_addr [lindex $ar** 0]

set timeout 120

spawn ssh $ip_addr

expect "*#"

send "cd /home/zabbix/new_agent/zabbix_agent \r"

send "chmod +x install-zabbix-agentd.sh \r"

send "./install-zabbix-agentd.sh \r"

send "exit \r"

send "exit \r"

expect eof

按照這個思路,基本就能夠實現一鍵式安裝zabbix agent了。

在吃飯前,開始跑指令碼,等吃完飯回來,幾十台的agent就自動安裝完成了,在zabbix也能夠自動識別。

zabbix agent自動部署安裝

一 先編譯個zabbix zgent wget tar zxf zabbix 3.4.3.tar.gz cd tmp zabbix 3.4.3 configure prefix usr local webserver zabbix enable agent make make install 2 配...

部署被監控主機Zabbix Agent

root web1 useradd s sbin nologin zabbix root web1 yum y install gcc pcre devel root web1 tar xf zabbix 3.4.4.tar.gz root web1 cd zabbix 3.4.4 root web...

pxe批量部署

功能 批量全自動安裝作業系統 方法 dhcp 自動分配ip tftp 微系統 用來安裝系統 httpd 網路源 操作流程 檢查環境 getenforce 檢查selinux systemctl status firewalld 檢查防火牆 配置yum源 光碟源 rm rf etc yum.repos...