linux下zabbix agentd客户端插件Shell一键自动安装脚本

这次生产环境上线了多台Linux服务器,需要全部纳入Zabbix监控范畴,一台一台的去装Zabbix Agentd插件那就太苦逼了,所幸Zabbix客户端插件是支持绿色安装的,就写了个简单的一键安装脚本,然后配合 Secure CRT 的多窗口交互命令一次性就可以搞定了。

正常启动Zabbix客户端服务其实只需要2个文件: zabbix_agentd 和 zabbix_agentd.conf,需要特别说明的是:zabbix_agentd 最好是和 Zabbix_Server 一同编译所得,保证版本和配置文件的路径是一致的,否则可能无法使用Linux系统的 service 服务启动模式。

一、准备工作
Zabbix 主机肯定搭建了WEB服务,所以正好可以将所需放置到WEB目录,方便下载。

客户端插件 zabbix_agentd 位于 Zabbix 安装目录下的 sbin 目录,比如:/usr/local/zabbix/sbin/zabbix_agentd

服务控制脚本 zabbix_agentd 位于 zabbix 源码编译目录下的 misc/init.d/fedora/core/zabbix_agentd

我们要做的就是将这些文件拷贝到 WEB目录即可,比如 /var/www/html/zabbix_agent/ ,根据系统版本的不同,我们可以准备64和32位的 zabbix_agentd,方便后续不同系统下的安装。

拷贝后,手工验证下文件是否可以下载:

客户端插件:http://192.168.1.40/zabbix_agent/64/zabbix_agentd

服务控制脚本:http://192.168.1.40/zabbix_agent/init.d/zabbix_agentd

二、编写脚本

①、将以下代码保存为 zabbix_agentd.sh ,上传到第一步中的 zabbix_agent 目录。

#!/bin/bash
#Desc: Install Zabbix Agent in OneKey.
#Date: 2015-04-02
#Author: ZhangGe
 
#设置zabbix服务器地址
if [ -z $1 ]
then
    Server="192.168.1.40"
else
    Server=$1
fi
 
#检测相关
function Check(){
    netstat -ntlp | grep zabbix_agentd >/dev/null &&  echo "Exit for zabbix_agentd has been already installed." && exit
    test -f zabbix_agent.sh && rm -f zabbix_agent.sh
    test -f /usr/local/zabbix/sbin/zabbix_agentd && rm -rf /usr/local/zabbix/sbin/zabbix_agentd
 test -f /etc/init.d/zabbix_agentd && rm -f /etc/init.d/zabbix_agentd
}
 
#配置相关
function Config(){
 Server=$1
 
 #获取IP
 IP="`ifconfig | grep 192.168 | grep "inet addr:" | awk -F "  Bcast:" '{print $1}' | awk -F "inet addr:" '{print $2}'`"
 
 mkdir /usr/local/zabbix/sbin/ -p
 mkdir /usr/local/zabbix/etc/ -p
 cd /usr/local/zabbix/sbin/
 
 #写入配置文件
cat > /usr/local/zabbix/etc/zabbix_agentd.conf <<EOF
Server=${Server}
Hostname=${IP}
BufferSize=1024
DebugLevel=2
LogFileSize=1024
EnableRemoteCommands=1
#Include=/etc/zabbix/zabbix_command.conf
EOF
}
 
function Install(){
    Config $1
 
 #下载服务控制脚本
    wget -P /etc/init.d/  http://192.168.1.40/zabbix_agent/init.d/zabbix_agentd
 
 #判断系统位数,下载不同版本
 if [[ "$(uname -m)" == "x86_64" ]]
 then
  wget http://192.168.1.40/zabbix_agent/64/zabbix_agentd
 else
  wget http://192.168.1.40/zabbix_agent/32/zabbix_agentd
 fi
    chmod +x /etc/init.d/zabbix_agentd
    chmod +x /usr/local/zabbix/sbin/zabbix_agentd
   
 #新增用户和用户组
    groupadd zabbix
    useradd -s /sbin/nologin -M -g zabbix zabbix
   
 #启动服务并加入开启启动
 service zabbix_agentd start && chkconfig zabbix_agentd on
 echo ---------------------Result---------------------------------
 
 #检查安装结果
 netstat -ntlp | grep zabbix_agentd && echo -e "\033[33minstall Succeed.\033[0m" || echo -e "\033[31minstall Failed.\033[0m"
}
 
#main
Check
Install $Server

②、Service 服务控制脚本

为了方便没找到 zabbix agent 服务控制脚本的朋友,额外提供服务控制代码。将代码保存为zabbix_agentd,上传到第一步的 zabbixz_agent/init.d/ 目录备用。

#!/bin/sh
 #chkconfig: 345 95 95
 #description:Zabbix agent
 # Zabbix
 # Copyright (C) 2001-2013 Zabbix SIA
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 # Start/Stop the Zabbix agent daemon.
 # Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d
 SERVICE="Zabbix agent"
 DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
 PIDFILE=/tmp/zabbix_agentd.pid
 BASEDIR=/usr/local/zabbix
 ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
 case $1 in
   'start')
     if [ -x ${DAEMON} ]
     then
       $DAEMON
       # Error checking here would be good...
       echo "${SERVICE} started."
  else
       echo "Can't find file ${DAEMON}."
       echo "${SERVICE} NOT started."
     fi
   ;;
   'stop')
     if [ -s ${PIDFILE} ]
     then
       if kill `cat ${PIDFILE}` >/dev/null 2>&1
       then
         echo "${SERVICE} stoped."
         rm -f ${PIDFILE}
       fi
     fi
   ;;
   'restart')
     $0 stop
     sleep 10
     $0 start
   ;;
   *)
     echo "Usage: $0 start|stop|restart"
     ;;
 esac

三、使用方法

登录到客户端系统,运行如下命令即可一键安装:

①、使用默认 zabbix_server 的IP地址:

 

wget http://192.168.1.40/zabbix_agent/zabbix_agent.sh && chmod +x zabbix_agent.sh && ./zabbix_agent.sh

②、后面添加IP参数可指定到其他 zabbix_server 或 zabbix_proxy:

wget http://192.168.1.40/zabbix_agent/zabbix_agent.sh && chmod +x zabbix_agent.sh && ./zabbix_agent.sh 192.168.1.41
Secure CRT多会话交互执行:

其他说明:此脚本中的 zabbix_agentd 编译路径(prefix)为 /usr/local/zabbix,如果编译的时候不是这个路径,则需要根据实际情况修改脚本里面相关路径,否则注册的zabbix_agentd服务将无法启动,就只能通过命令行启动了!

时间: 2024-10-27 07:12:54

linux下zabbix agentd客户端插件Shell一键自动安装脚本的相关文章

通过pipelight在Linux下使用Windows浏览器插件

可能,很多人非常想尝试Linux,但是无奈于很多网站都仅仅支持Windows所以计算机中还保留的双系统,或者Linux下还有Windows的虚拟机.这些都是无奈之举,极其不环保.这里介绍一种通杀方法 ---- Pipelight. Pipelight 是由 FDS-TEAM团队开发的一个linux 原生浏览器插件,可以将网页中对ActiveX Silverlight等windows专用插件的请求转接到wine,然后再将结果传回浏览器,这样,便可以在linux 原生浏览器里面通过wine使用win

Windows和Linux下定时删除某天前的文件的脚本_DOS/BAT

以前做到最多的定时我们就是定时备份功能了,我们常用利用定时功能来备份网站数据或备份数据库了,下面我来给(www.jb51.net)大家介绍几个Linux与Windows中定时删除某天前的文件方法,这个与备份有点区别,但大同小义了. Windows下bat文件内容如下: 复制代码 代码如下: @echo off forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path"

linux下mysql5.5.15源码包编译安装

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/809416 mysql果然是不愧是目前在linux下最火的数据库软件,自从mysql5.5.8之后,mysql的源码包编译安装都要用到cmake来进行编译了,编译的过程没有本质的区别,但是要直观很多.         1.源码包准备          (1)mysql-5.5.15.tar.gz mysqlmysq

Linux下生成链条式密码钥匙shell脚本

之前写过一个这样的博文,但因为Ecvps倒闭跑路了,所以我丢失了两个月的数据,那篇文章也就丢失了,但是我也更新了这个脚本的方法,将有内容生成密钥链条和无内容自动随机生成密钥链条两种,控制方法是A和B两种.A是随机 # !/bin/bash random() {   index=0   str=""   t=`grep '((?=[\x21-\x7e]+)[^A-Za-z0-9])'`   for i in {a..z}; do arr[index]=$i; index=`expr ${

Linux下MySQL主从同步监控shell脚本

说明: 操作系统:CentOS 目的:定时监控MySQL主从数据库是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1.创建脚本文件 vi /home/crontab/check_mysql_slave.sh   #编辑,添加下面代码 #!/bin/sh # check_mysql_slave status # author www.111cn.net ip=eth0  #网卡名称 mysql_binfile=/usr/local/mysql/bin/mysql mysql_us

Linux下MySQL 5.5.8 源码编译安装记录分享_Mysql

系统:Ubuntu 10.10 mysql源码文件:mysql-5.5.8.tar.gz 安装所需工具:cmake, GNU make, gcc, Perl, libncurses5-dev, bison(可选), chkconfig 注: 1.官方2010-11-18的源码有几处bug,在编译之前参照官方的说明,进行了手动修改. 官方说明链接:http://lists.mysql.com/commits/126782 2.官方5.5版本参考手册:http://dev.mysql.com/doc

Linux下Apache+Php4.0+Mysql+Imap+ZendOptimizer的安装

apache|mysql www.phpchina.com最新文章

linux下开源查杀病毒软件clamav的安装

1   安装clamav(anti virulus) 1.1安装压缩和解压缩函数库 zlib  源代码:http://zlib.net/ 安装时的最新版本为:zlib1.2.7.tar.gz 安装过程为cd到下载到的源文件目录后使用下述命令进行:tar -xzvf zlib.tar.gz  ;  ./condifure ;  make ; make install 1.2  下载clamav的源代码 1  http://www.clamav.net/lang/en/download/source

linux下查看swap分区被哪些进程占用实现脚本_unix linux

相信很多的系统管理员可能都遇见过这样的情况,用登录一台服务器,使用free命令查看内存,却发现swap分区被占用.那么到底是什么进程占用了这部分swap分区呢? 从2.6.16版本的kernel开始,我们可以使用proc文件系统中的smaps来查找这个问题.下边是一个列出所有进程占用swap分区情况的列表.可以通过简单修改就可以用于统计在/proc/$PID/smaps查出.以下是脚本: 复制代码 代码如下: for i in `cd /proc;ls |grep "^[0-9]"|a