使用ansible結合FTP部署zabbix_agent

 

想要達到的效果:一條命令,快速對多臺主機部署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地址,就是用下面的命令,對主機獲取單個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

 

Agentd客戶端編譯壓縮上傳

從源碼編譯zabbix_agentd

[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的目錄

 

修改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 *

 

將壓縮文件上傳到FTP服務器

 [root@zabbix opt] scp zabbix_agent.zip watson@172.16.255.22:/tmp     

###登陸到FTP服務器,將/tmp/路徑下面的壓縮包,轉移到ftp服務器跟路徑中,便於其餘機器下載,路徑爲/var/ftp/zabbix/zabbix_agentd.zi

 

zabbix_agent安裝腳步

在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機器

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
相關文章
相關標籤/搜索