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 服务将无法启动,就只能通过命令行启动了!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

网游内存数据库的设计(2)

续第一篇,前两天对核心存储做了些修改,以前只打算与关系数据库的行与表做对应,value类型只能使array或list, 现在把7种基本类型也加入到value支持...

3738
来自专栏pangguoming

centos6.8 mysql5.6.34 root密码重置

1465
来自专栏zhangdd.com

zabbix监控windows agent安装配置

下载地址: https://www.zabbix.com/download_agents 选择windows版本的agent下载

1763
来自专栏云计算教程系列

# 如何在Ubuntu 14.04上使用Bottle Micro Framework部署Python Web应用程序 ##

由于其灵活性和高级功能,Python是一种优秀的Web编程语言。Web框架可以使编程Web应用程序更加简单,因为它们连接了强大的Web界面所需的许多组件。

1811
来自专栏CaiRui

Mysql-12-mysql的备份和恢复

1.数据库的备份   备份=拷贝加管理,防止数据的丢失同时记录用户的操作记录。其中最有效的备份是对IT架构进行备份。 原则: (1)数据库要定期备份,备份的周期...

2405
来自专栏代码世界

MYSQL之库操作

一、系统数据库 information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等 my...

3567
来自专栏Python

mysql数据备份与恢复

MySQL数据备份与恢复 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建...

3856
来自专栏Linux运维学习之路

MySQL日志管理

MySQL日志管理 错误日志 配置方法: vim /etc/my.cnf [mysqld] log-error=/tmp/mysql.log 查看配置方式: s...

46512
来自专栏蓝天

MySQL-5.7.10主主同步的安装和配置

这里安装的是最新的MySQL 5.7.10(5.7.12、5.7.13(后续更新版本可能类似)有些区别,安装过程中遇到错误可搜索下本文,也许可以找到解决办法...

1544
来自专栏pangguoming

Centos7 Mysql 双机热备实现数据库高可用

mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器。

4502

扫码关注云+社区

领取腾讯云代金券