#!/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 '}'