運維之道 | 自動化安裝 zabbix-agent 的腳本

腳本支持 Centos6|Centos7|Ubuntu|RedHat6|RedHat7 安裝

1、自動化腳本
[root@localhost ~]# vim auto_zabbix.sh

#!/bin/bash
# date:2019-12
# auto install zabbix-agent
 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
export PATH
 
# 獲取操作系統位數
sys_num=`getconf LONG_BIT`
# zabbix服務端IP
ServerIP='192.168.142.10'
# 獲取客戶端服務器的IP
AgentIP=`ip a show dev ens33|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}'`
# 配置文件
zabbix_config='/etc/zabbix/zabbix_agentd.conf'
# 獲取數據
case $1 in 
    Centos6)
        checkAgent=`rpm -qa | grep 'zabbix-agent'`
        if [ -z $checkAgent ];then
         if [ $sys_num -eq 64 ];then
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-agent-4.2.6-1.el6.x86_64.rpm 
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             service zabbix-agent restart
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         else
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/6/i386/zabbix-agent-4.2.6-1.el6.i686.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             service zabbix-agent restart
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         fi
        else
          echo "Zabbix-agent has been installed in this system !"
        fi 
        ;; 
    Centos7)
        checkAgent=`rpm -qa | grep 'zabbix-agent'`
        if [ -z $checkAgent ];then
         if [ $sys_num -eq 64 ];then
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.6-1.el7.x86_64.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             systemctl restart zabbix-agent
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi           
         else
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.6-1.el7.x86_64.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         fi
        else
          echo "Zabbix-agent has been installed in this system !"
        fi
        ;;
    RedHat6)
        checkAgent=`rpm -qa | grep 'zabbix-agent'`
        if [ -z $checkAgent ];then
         if [ $sys_num -eq 64 ];then
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-agent-4.2.6-1.el6.x86_64.rpm 
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             service zabbix-agent restart
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         else
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/6/i386/zabbix-agent-4.2.6-1.el6.i686.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             service zabbix-agent restart
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         fi
        else
          echo "Zabbix-agent has been installed in this system !"
        fi 
        ;; 
    RedHat7)
        checkAgent=`rpm -qa | grep 'zabbix-agent'`
        if [ -z $checkAgent ];then
         if [ $sys_num -eq 64 ];then
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.6-1.el7.x86_64.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             systemctl restart zabbix-agent
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi           
         else
           rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.6-1.el7.x86_64.rpm
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi
         fi
        else
          echo "Zabbix-agent has been installed in this system !"
        fi
        ;;
    Ubuntu)
        checkAgent=`dpkg -l | grep zabbix-agent`
        if [ -z $checkAgent ];then
           apt-get install zabbix-agent
           if [ -z $checkAgent ];then
             sed -i "s/Server=127.0.0.1/Server=$ServerIP/" $zabbix_config
             sed -i "s/ServerActive=127.0.0.1/ServerActive=$ServerIP/" $zabbix_config
             sed -i "s/Hostname=Zabbix server/Hostname=$AgentIP/" $zabbix_config
             service zabbix-agent restart
           else
             echo 'Zabbix-agent install failed ! please run again .'
           fi           
        else
          echo "Zabbix-agent has been installed in this system !"
        fi
        ;;
        *) 
        echo "Usage:$0(Centos6|Centos7|Ubuntu|RedHat6|RedHat7)" 
        ;; 
esac
2、給予腳本可執行權限並執行安裝
Usage:./auto_zabbix.sh(Centos6|Centos7|Ubuntu|RedHat6|RedHat7)
[root@localhost ~]# chmod +x auto_zabbix.sh 
[root@localhost ~]# ./auto_zabbix.sh Centos7

https://blog.csdn.net/Hu_wen/article/details/103478212

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章