前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >批量部署zabbix agent (r6笔记第55天)

批量部署zabbix agent (r6笔记第55天)

作者头像
jeanron100
发布2018-03-16 15:37:29
9140
发布2018-03-16 15:37:29
举报

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 $argv 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 $argv 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 server已经能够自动识别出来了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档