zabbix agent shell一键安装脚本

#!/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监控,网卡流量监控

[[email protected]- 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 ‘}‘

[[email protected]- 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
[[email protected] 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 ‘}‘

原文地址:https://www.cnblogs.com/weifeng1463/p/8808849.html

时间: 2024-11-05 16:32:58

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

centos shell编程5LANMP一键安装脚本 第三十九节课

centos shell编程5LANMP一键安装脚本  第三十九节课 上半节课 下半节课 f

树莓派:L2TP/IPsec VPN 服务器一键安装脚本

经试验,在树莓派上一次成功,很好用,谢谢原作者!!!此文转自:https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md IPsec VPN 服务器一键安装脚本 使用 Linux Shell 脚本一键快速搭建 IPsec VPN 服务器.支持 IPsec/L2TP 和 Cisco IPsec 协议,可用于 Ubuntu,Debian 和 CentOS 系统.你只需提供自己的 VPN 登录凭证,然后运行脚本自动完成安装. I

MySQL系列之一键安装脚本----单实例/多实例

最近在搞MySQL,由于经常测试一些东西.因此,就写了一个一键安装脚本. 脚本用途: 用于在CentOS/RHEL 6.x系统上快速部署出Mysql的单实例或者多实例环境 脚本说明: 该脚本运行情况良好 针对脚本中,每一步命令执行的正误判断以及提醒非常醒目,可协助执行者快速定位错误源 脚本诸多内容都以声明变量,增加了脚本的灵活性和扩展性 脚本以做模块化处理,对应功能对应函数,方便SA快速更改和了解该脚本 该脚本使用注意事项: 1.能够通公网或者mysql源码包已经放置到/usr/local/sr

Ubuntu Or Debian L2TP VPN 一键安装脚本

#!/bin/bash if [ $(id -u) != "0" ]; then printf "Error: You must be root to run this tool!\n" exit 1 fi clear printf " #################################################### # # # This is a Shell-Based tool of l2tp installation # #

Centos7搭建pptp VPN一键安装脚本

Centos7搭建pptp一键安装脚本 废话不多说,先上脚本地址:Centos7一键pptp 使用: wget https://raw.githubusercontent.com/DanylZhang/VPS/master/CentOS7-pptp-host1plus.sh chmod +x ./CentOS7-pptp-host1plus.sh ./CentOS7-pptp-host1plus.sh -u your_username -p your_password 1 2 3 可在-u.-p

L2TP/IPSec一键安装脚本

本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tunneling Protocol)IPSec(Internet Protocol Security)IKEv2 (Internet Key Exchange v2)能实现 IPsec 的目前总体上有 openswan,libreswan,strongswan 这3种.libreswan 是基于 ope

PXE一键安装脚本

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包

mysql oracle静默 一键安装脚本

pre-read; 为了达到一键搞定的目的!现Ruiy简单做如下几小条规定   如果你想这么一键来搞定请君莫要违背约束!1. 下载 `二进制` mysql软件介质版本不限,二进制包务必,源码及rpm包格式,此处玩不转;eg:    wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz 2. 将下载下来的二进制mysql安装介质放到/opt/yoodo/installs/目录,

ss-panel(ss-R)前后端一键安装脚本(转)

ss-panel(ss-R)前后端一键安装脚本 前几天分享了ss-panel前后端的搭建教程,现在为了练习自己的技术,写了个一键安装脚本! 请注意,本脚本仅仅适用于centos7.* 最新更新:2016/11/5 本脚本包括以下功能: 使用rpm方式搭建LNMP,比市场上的LNMP一键安装包更高效,同时减轻了CPU负担,安装的时间段而且不会安装太多依赖 安装是依赖最新的SS-panel的源码,以及最新ss-rm的代码 本脚本集成了对LNMP以及ss的前端和后端,但是部分依然需要手动操作,请看详细