1. 程式人生 > >使用shell腳本一鍵安裝zabbix並配置客戶端的自動發現選項

使用shell腳本一鍵安裝zabbix並配置客戶端的自動發現選項

監控 shell zabbix 自動註冊 zabbix_agent

1.緣由:

我自己的ESXi服務器上上最近新加了好多虛擬主機,但我現在還不會安裝,使用,那種批量運維工具(saltstack,ansible,puppet等)。雖然還有一種方法:就是通過shell工具一次打開若幹個窗口,然後在編輯框中輸一行行的輸入命令,點擊全部窗口執行。可是我的老筆記本已經撐不住這麽開這麽多窗口了,。

2.然後

開始寫zabbix_agent安裝腳本,通過手工上傳到各個虛擬機中執行,這裏推薦大家在初始化Linux的時候,別忘記安裝lrzsz,rz和sz可以拖動上傳文件到Linux中。很方便。

還有一種思路:初始化Linux時,在管理機上配置一個共享掛載文件目錄到那些被管理機上,然後通過這種方式進行分發腳本。但覺得路子有點歪。還不如去整個ansible來做。這個留作後話吧。

printf "關閉並屏蔽服務firewalld."
systemctl stop firewalld > /dev/null 2>&1
systemctl mask firewalld > /dev/null 2>&1
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"
printf "安裝zabbix3.4.2源......."
yum -y install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm > /dev/null 2>&1
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"
printf "安裝zabbix-agent........"
yum -y install zabbix-agent > /dev/null 2>&1
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"
printf "更改zabbix-agent配置文件"
sed  -i "s/Server=127.0.0.1/Server=192.168.1.120/g" /etc/zabbix/zabbix_agentd.conf
sed  -i "s/ServerActive=127.0.0.1/ServerActive=192.168.1.120/g" /etc/zabbix/zabbix_agentd.conf
sed  -i "s/# HostMetadataItem=/HostMetadataItem=system.uname/g" /etc/zabbix/zabbix_agentd.conf
sed  -i "s/# HostnameItem=system.hostname/HostnameItem=system.hostname/g" /etc/zabbix/zabbix_agentd.conf
sed  -i "s/Hostname=Zabbix server/# Hostname=Zabbix server/g" /etc/zabbix/zabbix_agentd.conf
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"
printf "設置zabbix-agent自啟動.."
systemctl enable zabbix-agent > /dev/null 2>&1
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"
printf "啟動zabbix-agent服務...."
systemctl restart zabbix-agent > /dev/null 2>&1
printf "\033[32;1m%20s\033[0m\n" "[ OK ]"

技術分享

講解下:

  • 禁止防火墻自啟動本來可以用systemctl disable firewalld 這個命令在CentOS 7上沒毛病,

    但是在同源的FedoraServer26上總是無法成功,所以使用更加粗暴的systemctl mask firewalld的 方式,直接將firewalld的目錄指偏,讓systemctl找不到firewalld。

  • zabbix使用了最新的版本

  • 更改配置文件這裏,我對服務器地址進行了重新指定。

即Server=192.168.1.120(被動,適用於自動發現動作)

ServerActive=192.168.1.120 (主動,適用於自己向服務器發起註冊操作)

HostnameItem=system.hostname(定義主機的名稱,在自動註冊的時候有用)

HostMetadataItem=system.uname(定義主機的元數據信息,在自動註冊的時候有用)

  • 然後就是開啟服務啦。


本文出自 “漫漫SQL路......” 博客,請務必保留此出處http://l0vesql.blog.51cto.com/4159433/1965543

使用shell腳本一鍵安裝zabbix並配置客戶端的自動發現選項