zoukankan      html  css  js  c++  java
  • zabbix_agentd-install.sh (脚本部署zabbix_agentd服务)

    原文发表于cu:2016-05-20

    基于http://www.cnblogs.com/netonline/p/7406598.htmlhttp://blog.chinaunix.net/uid-26168435-id-5730201.html),写了1个简单的脚本来简化zabbix_agnetd的部署。
    脚本运行注意事项:
    1. script与zabbix-3.0.1.tar.gz放置在同一个目录运行;
    2. 由于zabbix安装文件的名字未采用变量,在script中已写死,虽然可变更,但需要同步修改脚其中对应的地方;
    3. script中涉及到变更运行目录,所以请使用"source" 或 ". "运行script,如: "source xx.sh"或". ./xx.sh";
    4. script运行基于centos6.x,请注意与centos7.x的命令区别,这里主要是centos7.x默认没有iptables,需要提前准备好iptables的环境。

    #!/bin/bash
    # Program:
    #     Automatic install zabbix_agentd-3.0.1 in centos-6.x-x86_64 by the scripts.
    # Usage:
    #     It relate to change directory, please use source or . to execute this scripts, the others methods will fail.
    # History:
    #     2016/05/10    v0.1
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    # Check if user is root.
    if [ $(id -u) != "0" ]; then
        echo "Error: You must be root to run this script, please use root to install zabbix_agentd!"
        exit 1
    fi
    
    # Function: check the zabbix_server ip address which has be inputed.
    checkip() {
            echo $1 | egrep -q '^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$' > /dev/null
                if [ $? -ne 0 ]; then
                    echo "Error: Please input correct format IP address!"
                    exit 1
                fi
    
            ipaddr=$1
            ip1=`echo $ipaddr | awk -F. '{print $1}'`
            ip2=`echo $ipaddr | awk -F. '{print $2}'`
            ip3=`echo $ipaddr | awk -F. '{print $3}'`
            ip4=`echo $ipaddr | awk -F. '{print $4}'`
    
            for num in $ip1 $ip2 $ip3 $ip4; do
                if [ $num -ge 255 ] || [ $num -lt 0 ]; then
                    echo "Error: Please input correct format IP address!"
                    exit 1
                fi
            done
    
            return 0
    }
    
    # Input zabbix_server's ip address.
    read -p "Please input zabbix_server's ip address[ie: 192.168.1.1]: " zabbixserverip
    checkip $zabbixserverip
    echo "OK! Your zabbix_server is ${zabbixserverip}!"
    
    # Set iptables rules, zabbix server will detect agentd by tcp 10050, and zabbix_agentd will send trapper to server by tcp 10051.
    iptables -I INPUT -s $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
    iptables -I OUTPUT -d $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
    service iptables save
    
    # Check selinux.
    if [ $(getenforce) = "Enforcing" ]; then
        sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config ; sed -i 's|SELINUXTYPE=targeted|#SELINUXTYPE=targeted|g' /etc/selinux/config && setenforce 0
    fi
    
    # Create zabbix group and user.
    groupadd zabbix
    useradd -g zabbix -s /sbin/nologin zabbix
    
    # Install zabbix_agentd
    cur_dir=$(pwd)
    tar -zxvf $cur_dir/zabbix-3.0.1.tar.gz -C /usr/local/src/
    cd /usr/local/src/zabbix-3.0.1 
    ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
    cd ~
    
    # Add soft link to zabbix_agentd execute file.
    ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ 
    ln -s /usr/local/zabbix/bin/* /usr/local/bin/
    
    # Modify zabbix_agentd config file.
    sed -i "s|Server=127.0.0.1|Server=${zabbixserverip}|g" /usr/local/zabbix/etc/zabbix_agentd.conf
    sed -i '262s|# Include=/usr/local/etc/zabbix_agentd.conf.d/|Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/|g' /usr/local/zabbix/etc/zabbix_agentd.conf
    sed -i 's|# UnsafeUserParameters=0|UnsafeUserParameters=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf
    
    # Set zabbix_agentd automatic start scripts.
    cp /usr/local/src/zabbix-3.0.1/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
    chown zabbix:zabbix /etc/rc.d/init.d/zabbix_agentd
    chmod +x /etc/rc.d/init.d/zabbix_agentd
    sed -i 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|g' /etc/rc.d/init.d/zabbix_agentd
    chkconfig --level 35 zabbix_agentd on
    
    # Start zabbix_agentd service.
    service zabbix_agentd start
    
    # Check zabbix_agentd service.
    if [ $(netstat -tnlp | grep zabbix_agentd | awk '{print $7}' | awk -F/ '{print $2}') = "zabbix_agentd" ]; then
        echo -e "33[32m [INFO]Zabbix_agentd has installed and started! 33[0m"
    else
        echo -e "33[31m [ERROR]Zabbix_agentd has not started! 33[0m"
    fi
    
    # Clean install package.
    rm -rf /usr/local/src/zabbix-3.0.1
  • 相关阅读:
    Java中使用Lua脚本语言(转)
    lua、groovy嵌入到java中的性能对比(转)
    有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
    Lua Development Tools (LDT)
    海量数据处理面试题集锦
    三层架构之抽象工厂加反射----实现数据库转换
    八卦一下
    java实现各种数据统计图(柱形图,饼图,折线图)
    activity-alias的使用
    C#反射Assembly 具体说明
  • 原文地址:https://www.cnblogs.com/netonline/p/7410474.html
Copyright © 2011-2022 走看看