#!/bin/bash

basepath=$(cd `dirname $`; 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-.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
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
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 $ $
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= 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+))`
done echo ' ]'
echo '}' [root@pro- scripts]# cat iostat.sh
#!/bin/bash
result=`iostat -k -x $ |grep $ |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}'
}
$
[root@ scripts]# cat net.if.discovery2.sh
#/bin/bash i=
names=()
for interface in `cat /proc/net/dev |tail -n + |grep -v 'lo\|vir\|vnet' |grep -oP '\w+\d*(?=:)'`
#for interface in `cat /proc/net/dev |tail -n + |grep -v 'lo' |grep -oP '\w+\d*(?=:)'`
do
c=`ifconfig $interface >/dev/null|grep 'inet ' |grep -v -c '127.0.0.1'`
if [ $c -gt ];then
names[$i]=$interface
i=`echo $((i+))`
fi
done length=${#names[*]}
i=
echo '{'
echo ' "data":['
for interface in ${names[*]}
do
if [ $i -lt $length ];then
echo ' {"{#IFNAME}":"'$interface'"},'
i=`echo $((i+))`
else
echo ' {"{#IFNAME}":"'$interface'"}'
break
fi
done echo ' ]'
echo '}'

zabbix agent shell一键安装脚本的更多相关文章

  1. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  2. LNMP、LAMP、LANMP一键安装脚本(定期更新)[转]

    这个脚本是使用shell编写,为了快速在生产环境上部署LNMP/LAMP/LANMP(Linux.Nginx/Tengine.MySQL/MariaDB/Percona.PHP),适用于CentOS/ ...

  3. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  4. LAMP最新源码一键安装脚本

    Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...

  5. SSR服务端一键安装脚本

    支持新协议混淆,SSR服务端一键安装脚本   Shadowsocks-R 是项目 shadowsocks 的增强版,用于方便地产生各种协议接口.实现为在原来的协议外套一层编码和解码接口,不但可以伪装成 ...

  6. jdk1.8一键安装脚本(linux环境)

    1.下载jdk安装包和安装脚本 下载地址:https://pan.baidu.com/s/1bo6ADQ3 其中包括: jdk安装包:jdk-8u151-linux-x64.tar.gz jdk一键安 ...

  7. Centos7搭建pptp一键安装脚本

    废话不多说,先上脚本地址:Centos7一键pptp 使用: wget http://files.cnblogs.com/files/wangbin/CentOS7-pptp-host1plus.sh ...

  8. L2TP/IPSec一键安装脚本

    本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tun ...

  9. *** Python版一键安装脚本

    本脚本适用环境:系统支持:CentOS 6,7,Debian,Ubuntu内存要求:≥128M日期:2018 年 02 月 07 日 关于本脚本:一键安装 Python 版 *** 的最新版.友情提示 ...

随机推荐

  1. [NOI2010][bzoj2005] 能量采集 [欧拉函数+分块前缀和优化]

    题面: 传送门 思路: 稍微转化一下,可以发现,每个植物到原点连线上植物的数量,等于gcd(x,y)-1,其中xy是植物的横纵坐标 那么我们实际上就是要求2*sigma(gcd(x,y))-n*m了 ...

  2. linux系统——日志文件系统及性能分析

    Linux日志文件系统及性能分析 日志文件系统可以在系统发生断电或者其它系统故障时保证整体数据的完整性,Linux是目前支持日志文件系统最多的操作系统之一,本文重点研究了Linux常用的日志文件系统: ...

  3. inline-block元素垂直对齐

    多个inline-block元素使用vertical-align:middle无法对齐,必须有个height:100%的子元素才行,通常使用伪元素.另一种方法是添加line-height:normal ...

  4. leetcode 15 3sum & leetcode 18 4sum

    3sum: 1 class Solution { public: vector<vector<int>> threeSum(vector<int>& num ...

  5. 【02】 Vue 之 数据绑定

    2.1. 什么是双向绑定? Vue框架很核心的功能就是双向的数据绑定. 双向是指:HTML标签数据 绑定到 Vue对象,另外反方向数据也是绑定的.通俗点说就是,Vue对象的改变会直接影响到HTML的标 ...

  6. 安装聊天软件telegram-cli

    Telegram是一款加密通信的聊天软件,可以在linux,windows,android,chrome等运行.官方网址:https://telegram.org/ 它是有桌面版的,但作为一个linu ...

  7. AC日记——中庸之道 codevs 2021

    2021 中庸之道  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 给定一个长度为N的序列 ...

  8. Codeforces 761C Dasha and Password(枚举+贪心)

    题目链接 Dasha and Password 题目保证一定有解. 考虑到最多只有两行的指针需要移动,那么直接预处理出该行移动到字母数字或特殊符号的最小花费. 然后O(N^3)枚举求最小值即可. 时间 ...

  9. POJ 2411 Mondriaan's Dream [经典状态压缩dp]

    题意:略. 思路:这一题开始做的时候完全没有思路,便去看了别人的题解. 首先,对于这个题目解法想有一个初步的了解,请看这里:http://www.2cto.com/kf/201208/146894.h ...

  10. P1243~P1247 线段树模板题总结

    前言 这几天刚刚刷了5道线段树(水)题,现在来总结一下. 首先是犯的不少错误: 1.建树.更新函数没有return.这是最气的,每次最后程序错误查了半天也没查出来,最后发现是没有return.递归边界 ...