部署zabbix-agent脚本

前景:每次新部署服务器总是要配置zabbix-agent,所以写一个shell脚本方便部署,提高效率。

下面直接展示代码,请根据实际环境自行修改。重点是修改配置文件的操作。

#!/bin/bash
echo ####安装zabbix-agent####
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum -y install zabbix-agent
systemctl enable zabbix-agent
 
echo ###
echo ####修改zabbix-agent.conf####
echo ###
 
HOSTNAME=`hostname`
echo "本机名称为:$HOSTNAME"
 
read -p "请输入对应的环境(数字):1.开发环境; 2.测试环境 3.生产环境  >> " n
 
# 选择对应环境修改相应配置
 
if [ $n -eq 1 ]
then
    zabbix_server=192.168.1.10
    sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
    sed -i "s/^ServerActive=127.0.0.1/ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
    sed -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g" /etc/zabbix/zabbix_agentd.conf
elif [ $n -eq 2 ]
then
    zabbix_server=172.16.80.20
    sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf 
    # 通过代理的需要注释此选项
    sed -i "s/^ServerActive=127.0.0.1/#ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
    sed -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g" /etc/zabbix/zabbix_agentd.conf
elif [ $n -eq 3 ]
then
    zabbix_server=172.16.90.100
    sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
    sed -i "s/^ServerActive=127.0.0.1/#ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agentd.conf
    sed -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g" /etc/zabbix/zabbix_agentd.conf
else
    echo "请输入正确的选项"
fi
 
echo "启动zabbix-agent......"
systemctl start zabbix-agent
 
read -p "确认是否安装端口监控脚本:1.确定;0.取消 >>" m
 
if [ $m -eq 1 ]
then
    if [ -d /etc/zabbix/scripts ];then
        chmod +x /etc/zabbix/scripts/*
    else
        mkdir /etc/zabbix/scripts
        cat >/etc/zabbix/scripts/discovery_tcpport.sh<<"EOF"
#!/bin/bash
#portarray=(`ss -tnlp |awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
portarray=(`netstat -tnlp |awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
length=${#portarray[@]}
  
function zabbix_json(){
  printf "{\n"
  printf '\t'"\"data\":["
  for ((i=0;i<$length;i++))
  do
      printf '\n\t\t{'
      printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
      if [ $i -lt $[$length-1] ];then
          printf ','
      fi
  done
  printf "\n\t]\n"
  printf "}\n"
}
  
zabbix_json
 
EOF
  
    chmod +x /etc/zabbix/scripts/*
    echo 'UserParameter=discovery.tcpport[*],/etc/zabbix/script/discovery_tcpport.sh $1 $2' >/etc/zabbix/zabbix_agentd.d/userparameter_sa_linux.conf
    echo "启动zabbix-agent"
    systemctl restart zabbix-agent
    fi
elif [ $m -eq 0 ]
then
    echo "不安装端口监控直接启动zabbix-agent"
    systemctl restart zabbix-agent       
else
    echo "输入选项不正确,请确认是否配置再启动zabbix-agent"
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值