设为首页 收藏本站
查看: 1977|回复: 0

[经验分享] 使用ansible结合FTP部署zabbix

[复制链接]
发表于 2018-1-3 06:08:45 | 显示全部楼层 |阅读模式
  想要达到的效果:一条命令,快速对多台主机部署zabbix_agent
  实现思路:从源码编译编译出zabbix_agentd,准备好安装脚本,将安装脚本和编译出的agent一起上传到FTP服务器,在ansible机器上面执行下载脚本并且执行。agent安装完成检查一下端口是否起来(主动模式就检查一下进程有没有拉起来)
  提示:选择主动模式启动agent的时候,也需要有对应的模版
  最后的效果:
  1、在ansible机器上面一条命令实现对客户端的安装
  2、脚本实现修改配置文件,不同主机不同的Hostname
  3、添加了zabbix_agentd服务,并且将zabbix_agentd设置为开机自启
  4、对于active模式,配置了自动注册的参数

环境准备:
  1)       系统版本:Linux Red Hat 6.5
  2)       server和agent最好YUM源搭建OK
  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
  

[iyunv@zabbix zabbix] tar xvf zabbix-3.2.7.tar.gz  

  
[iyunv@zabbix zabbix] cd zabbix
-3.2.7 #进入源码所在的目录  

  
[iyunv@zabbix zabbix
-3.2.7]# ./configure --prefix=/usr/local/zabbix_agent --enable-agent  

  
[iyunv@zabbix zabbix
-3.2.7]# make && make install  

  
##这个时候会在
/usr/local/目录下会生成一个zabbix_agentd的目录  


修改zabbix_agentd服务脚本
  #给脚本执行权限
  

[iyunv@zabbix zabbix-3.2.7]# chmod 755 misc/init.d/tru64/zabbix_agentd  

  
#修改zabbix_agentd服务启动脚本,使zabbix_agentd服务支持开启自启
  

  
[iyunv@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  

  
[iyunv@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
  


将编译后生成的目录以服务启动脚本拷贝在一起,并且压缩
  

[iyunv@zabbix zabbix-3.2.7] mkdir  /opt/zabbix_agent  

  
[iyunv@zabbix zabbix
-3.2.7] cp misc/init.d/tru64/zabbix_agentd /opt/zabbix_agent  

  
[iyunv@zabbix zabbix
-3.2.7] cd /opt/zabbix_agent  

  
[iyunv@zabbix zabbix_agent]
cp -rf  /usr/local/zabbix_agent .  

  
[iyunv@zabbix zabbix_agent]
zip -r zabbix_agent.zip *  


将压缩文件上传到FTP服务器
  

[iyunv@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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431003-1-1.html 上篇帖子: Ansible 笔记 (1) 下篇帖子: Ansible自动化运维工具-上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表