想要達到的效果:一條命令,快速對多臺主機部署zabbix_agentpython
實現思路:從源碼編譯編譯出zabbix_agentd,準備好安裝腳本,將安裝腳本和編譯出的agent一塊兒上傳到FTP服務器,在ansible機器上面執行下載腳本而且執行。agent安裝完成檢查一下端口是否起來(主動模式就檢查一下進程有沒有拉起來)linux
提示:選擇主動模式啓動agent的時候,也須要有對應的模版shell
最後的效果:vim
一、在ansible機器上面一條命令實現對客戶端的安裝數組
二、腳本實現修改配置文件,不一樣主機不一樣的Hostnamebash
三、添加了zabbix_agentd服務,而且將zabbix_agentd設置爲開機自啓服務器
四、對於active模式,配置了自動註冊的參數tcp
1) 系統版本:Linux Red Hat 6.5spa
2) server和agent最好YUM源搭建OKcode
3) FTP服務器IP:172.16.255.22 路徑: /var/ftp
4) Zabbix源碼包
5) 客戶端默認防火牆關閉(/etc/init.d/itpables stop)
若是防火牆開啓,參考命令:
主被是相對agent而言
被動模式:服務器打開10051端口,客戶端10050端口;(端口由配置文件決定,這裏不作更改)
主動模式:服務器打開10051端口(純主動模式)。
主被混合模式:server打開10051端口,agent打開10050端口
vim /etc/sysconfig/iptables #增長一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT #agent
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT #server
####最後修改完配置文件,別忘記reload一下,或者重啓防火牆生效
6) 客戶端默認selinux設置爲禁用
沒禁用,參考命令:
sed –I ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/sysconfig/selinux setenforce 0 #設置disabled,立刻生效 getenforce #檢查
#若是某一臺主機存在多個IP地址,就是用下面的命令,對主機獲取單個IP
#在這以前,已經對19端掃描過了,獲得host_19的這個文件
ansible -i /opt/shell/lizuofang/beleve/19/hosts_19 dev -m shell -a "source /etc/profile ;ip addr|egrep 'eth.$' | tr '/' ' '|grep -v 'secondary' "|grep 'inet' |awk '{print $2}' |sort -n -t. -k4 |uniq > /tmp/zabbix19 cat /tmp/zabbix19 |awk '{print $2}' |sort -n -t. -k4 |uniq|wc -l #對IP進行排序,方便查看
———————————————————安裝libselinux-python
#ansible拷貝文件的時候,必須安裝這個,否則報錯
ansible -i h19 h19 -m shell -a 'yum install libselinux-python -y' -K --become ansible -i t ht -m shell -a 'wget ftp://192.168.20.25/rhe65.repo;mv rhe65.repo /etc/yum.repos.d/' -K --become
[root@zabbix zabbix] tar xvf zabbix-3.2.7.tar.gz [root@zabbix zabbix] cd zabbix-3.2.7 #進入源碼所在的目錄 [root@zabbix zabbix-3.2.7]# ./configure --prefix=/usr/local/zabbix_agent --enable-agent [root@zabbix zabbix-3.2.7]# make && make install ##這個時候會在/usr/local/目錄下會生成一個zabbix_agentd的目錄
#給腳本執行權限
[root@zabbix zabbix-3.2.7]# chmod 755 misc/init.d/tru64/zabbix_agentd #修改zabbix_agentd服務啓動腳本,使zabbix_agentd服務支持開啓自啓 [root@zabbix zabbix-3.2.7]# sed -i '/bin\/sh/a #\n# chkconfig: 35 90 10\n# description: Starts and stops Zabbix Agent using chkconfig' misc/init.d/tru64/zabbix_agentd [root@zabbix zabbix-3.2.7]# sed -i 's/DAEMON=/usr/local/sbin/zabbix_agentd / DAEMON=/usr/local/zabbix_agent/sbin/zabbix_agentd /g' misc/init.d/tru64/zabbix_agentd
[root@zabbix zabbix-3.2.7] mkdir /opt/zabbix_agent [root@zabbix zabbix-3.2.7] cp misc/init.d/tru64/zabbix_agentd /opt/zabbix_agent [root@zabbix zabbix-3.2.7] cd /opt/zabbix_agent [root@zabbix zabbix_agent] cp -rf /usr/local/zabbix_agent . [root@zabbix zabbix_agent] zip -r zabbix_agent.zip *
[root@zabbix opt] scp zabbix_agent.zip watson@172.16.255.22:/tmp
###登陸到FTP服務器,將/tmp/路徑下面的壓縮包,轉移到ftp服務器跟路徑中,便於其餘機器下載,路徑爲/var/ftp/zabbix/zabbix_agentd.zi
在ftp服務器上,
路徑爲/var/ftp/zabbix
vim /var/ftp/zabbix/install_agent_passive.sh
#!/bin/bash # install_agent_passive.sh PAHT="/usr/local/sbin:/usr/sbin:/sbin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin"; FTP_Server="172.16.255.22" PKT_PATH="zabbix/zabbix_agent.zip" source /etc/profile; cd /tmp wget ftp://$FTP_Server/$PKT_PATH unzip zabbix_agent.zip mv zabbix_agent/zabbix_agent /usr/local/ mv zabbix_agentd/zabbix_agentd /etc/init.d/ useradd zabbix ##增長zabbix用戶到wheel數組 egrep wheel /etc/group > /dev/null if [ $? -eq 0 ] then usermod -G wheel zabbix fi egrep ficommon /etc/group > /dev/null if [ $? -eq 0 ] then usermod -G ficommon zabbix fi echo zabbix:zabbix@123 |chpasswd chmod 755 /etc/init.d/zabbix_agentd #cp /usr/local/zabbix_agent/sbin/zabbix_agentd /usr/local/sbin/ service zabbix_agentd start #設置開機自啓 sed -i ‘/bin\/sh/a\# chkconfig: 2345 80 30’ /etc/init.d/zabbix_agentd chkconfig zabbix_agentd on #echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local rm -rf /tmp/zabbix_agent.zip
vim /var/ftp/zabbix/install_agent_active.sh
#!/bin/bash PAHT="/usr/local/sbin:/usr/sbin:/sbin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin"; FTP_Server="192.168.20.25" PKT_PATH="zabbix/zabbix_agent.zip" #自動註冊參數 AOTU_Resgister="aotu_resgister32" source /etc/profile; cd /tmp wget ftp://$FTP_Server/$PKT_PATH unzip zabbix_agent.zip mv zabbix_agent/zabbix_agent /usr/local/ mv zabbix_agentd/zabbix_agentd /etc/init.d/ useradd zabbix chmod 755 /etc/init.d/zabbix_agentd #cp /usr/local/zabbix_agent/sbin/zabbix_agentd /usr/local/sbin/ Server_IP=192.168.19.222 if [[ `ip addr|egrep 'eth.$' | grep -v 'secondary'|tr '/' ' ' |awk '{print $2}'|wc -l` == '1' ]] then ListenIP=$(ip addr|egrep 'eth.$'|grep -v 'secondary' | tr '/' ' ' |awk '{print $2}') #替換被動模式的ListenIP sed -i 's/# ListenIP=0.0.0.0/ListenIP='$ListenIP'/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf #替換Hostname sed -i 's/Hostname=192.168.19.203/Hostname='$ListenIP'/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf #添加zabbix服務主機 sed -i 's/ServerActive=127.0.0.1/ServerActive='$Server_IP'/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf #取消RefreshActiveChecks註釋,設置被監控端到服務器獲取監控項的週期,默認120S sed -i 's/# RefreshActiveChecks=120/RefreshActiveChecks=120/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf # 取消BufferSize註釋,設置被監控端存儲監控信息的空間大小 sed -i 's/# BufferSize=100/BufferSize=200 /g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf # 取消Timeout註釋,設置被監控端超時時間 sed -i 's/# Timeout=3/Timeout=3/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf # 取消StartAgents註釋,關閉被動模式 sed -i 's/# StartAgents=3/StartAgents=0/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf #註釋掉這行Server,設置純主動模式 sed -i 's/Server=192.168.19.222/# Server=192.168.19.222/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf ############# 取消BufferSize註釋,設置被監控端存儲監控信息的空間大小 sed -i 's/# HostMetadataItem=/HostMetadataItem='$AOTU_Resgister'/g' /usr/local/zabbix_agent/etc/zabbix_agentd.conf fi #啓動服務 service zabbix_agentd start rm -rf /tmp/zabbix_agent.zip sed -i ‘/bin\/sh/a\# chkconfig: 2345 80 30’ /etc/init.d/zabbix_agentd chkconfig zabbix_agentd on
———————————————————ansible機器
ansible -i h6 h6-m shell -a 'wget #主動 ftp://172.16.255.22/zabbix/install_agent_active.sh ;bash install_agent_active.sh' -K -become #被動 ftp://172.16.255.22/zabbix/install_agent_active.sh ;bash install_agent_passive.sh' -K -become #驗證1 ansible -i h6 h6 -m shell -a 'source /etc/profile;/bin/ps -ef |grep zabbix' -K -become