1. 程式人生 > >zabbix agent shell一鍵安裝腳本

zabbix agent shell一鍵安裝腳本

net def oot start mes bin 127.0.0.1 lis 流量

#!/bin/bash

basepath=$(cd `dirname $0`; pwd)
SHELL_DIR="${basepath}/shell"
PACKAGE_DIR="${basepath}/package"


#獲取參數
while getopts "i:" opt; do
    case $opt in
        i)
            ipaddr=$OPTARG
            ;;
        \?)
            ;;
    esac
done

echo "ip NO:"
echo $ipaddr

rpm -ivh  $PACKAGE_DIR/zabbix-release-2.4
-1.el6.noarch.rpm yum install -y zabbix-agent if [ -e /etc/zabbix/zabbix_agentd.conf ];then echo echo "##########begin modify zabbix_agentd.conf##########" sed -i s/^Server=127.0.0.1/Server=116.*******28/g /etc/zabbix/zabbix_agentd.conf sed -i s/^ServerActive=127.0.0.1/ServerActive=116.*******.28/g /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=${ipaddr}/g" /etc/zabbix/zabbix_agentd.conf #sed -i s/^Hostname=Zabbix server/Hostname=$ip/g /etc/zabbix/zabbix_agentd.conf #sed -i /ListenPort=10050$/a\ListenPort=21224 /etc/zabbix/zabbix_agentd.conf #sed -i "/ListenIP=0.0.0.0$/a\ListenIP=${ip}" /etc/zabbix/zabbix_agentd.conf sed -i
/Timeout=3$/a\Timeout=30 /etc/zabbix/zabbix_agentd.conf grep -v ^# /etc/zabbix/zabbix_agentd.conf |grep -v ^$ echo "##########end modify zabbix_agentd.conf##########" echo else echo echo "##########zabbix_agentd.conf is not exit##########" echo exit 2 fi if [ -d /etc/zabbix/zabbix_agentd.d ];then cp -r $PACKAGE_DIR/yuwang.conf /etc/zabbix/zabbix_agentd.d else echo "##########/etc/zabbix/zabbix_agentd.d is not exist##########" echo exit 3 fi echo "##########begin move scripts to /etc/zabbix/scripts##########" if [ -d /etc/zabbix/scripts ];then cp -r $PACKAGE_DIR/scripts/* /etc/zabbix/scripts chmod +x /etc/zabbix/scripts/* else mkdir /etc/zabbix/scripts cp -r $PACKAGE_DIR/scripts/* /etc/zabbix/scripts chmod +x /etc/zabbix/scripts/* fi echo "##########end move scripts to /etc/zabbix/scripts##########" echo "##########begin modify /etc/sudoers##########" sed -i ‘s/\(Defaults.*requiretty\)/#\1/g‘ /etc/sudoers echo ‘...‘ sed -i ‘s/!visiblepw/visiblepw/g‘ /etc/sudoers echo ‘...‘ echo ‘zabbix ALL=(ALL) NOPASSWD:/etc/zabbix/scripts/*‘ >> /etc/sudoers echo ‘...‘ echo "##########end modify /etc/sudoers##########" service zabbix-agent restart chkconfig zabbix-agent on zabbixagentpid=`ps aux|grep zabbix_agentd|grep -v "grep"|awk ‘{print $2}‘` if [ "$zabbixagentpid" ];then echo "success ! zabbix agent is running now" fi

配置文件內容
cat yuwang.conf 
UserParameter=iostat[*],/etc/zabbix/scripts/iostat.sh $1 $2
UserParameter=discovery.disk,/etc/zabbix/scripts/discovery.disk.sh
UserParameter=net.if.discovery2,/etc/zabbix/scripts/net.if.discovery2.sh

腳本網卡發現,磁盤io監控,網卡流量監控

[root@pro- scripts]# cat discovery.disk.sh 
#!/bin/bash

count=`cat /proc/diskstats |grep [vs]d[a-z]  |wc -l`
i=1

echo {
echo     "data":[

for disk in `cat /proc/diskstats |grep [vs]d[a-z]  |awk {print $3}`
do
        if [ $i -lt $count ] ; then
                echo         {"{#DISK}":"$disk"},
        else
                echo         {"{#DISK}":"$disk"}
        fi
        i=`echo $(($i+1))`
done

echo     ]
echo }

[root@pro- scripts]# cat iostat.sh 
#!/bin/bash
result=`iostat -k -x $1 1 2|grep $1 |tail -n1`
#echo "$result"
#Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
#sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
function readkB(){
    echo "$result" |awk {print $6}
}
function writekB(){
    echo "$result" |awk {print $7}
}
function avgrq-sz(){
    echo "$result" |awk {print $8}
}
function avgqu-sz(){
    echo "$result" |awk {print $9}
}
function await(){
    echo "$result" |awk {print $10}
}
function svctm(){
    echo "$result" |awk {print $11}
}
function util(){
    echo "$result" |awk {print $12}
}
$2
[root@ scripts]# cat net.if.discovery2.sh 
#/bin/bash

i=0
names=()
for interface in `cat /proc/net/dev |tail -n +3 |grep -v lo\|vir\|vnet |grep -oP \w+\d*(?=:)`
#for interface in `cat /proc/net/dev |tail -n +3 |grep -v lo |grep -oP \w+\d*(?=:)`
do
    c=`ifconfig $interface 2>/dev/null|grep inet  |grep -v -c 127.0.0.1`
    if [ $c -gt 0 ];then
        names[$i]=$interface
        i=`echo $((i+1))`
    fi
done


length=${#names[*]}
i=1
echo {
echo     "data":[
for interface in ${names[*]}
do
    if [ $i -lt $length ];then
        echo         {"{#IFNAME}":"$interface"},
        i=`echo $((i+1))`
    else
        echo         {"{#IFNAME}":"$interface"}
        break
    fi
done

echo     ]
echo }

zabbix agent shell一鍵安裝腳本