下载官方的基础 agent 部署包

官方地址:点击到达

curl -O https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.36/zabbix_agent-5.0.36-linux-3.0-i386-static.tar.gz

编写 install 脚本

#!/bin/bash
## 变量定义
# 脚本所在路径
BASE_DIR=$(cd $(dirname $0);pwd)
# Zabbix_server连接IP
SERVER_IP=$1
# agent部署路径,默认/usr/local/zabbix_agent
INSTALL_DIR=$2
if [[ ! ${INSTALL_DIR} ]];then
INSTALL_DIR=/usr/local/zabbix_agent
fi
if [[ ! -d ${INSTALL_DIR} ]];then
mkdir -p ${INSTALL_DIR}/logs
fi
# agent部署包
INSTALL_PACK=$3
if [[ ! ${INSTALL_PACK} ]];then
INSTALL_PACK=$(find ${BASE_DIR} -name "zabbix*.tar.gz")
fi
# agent监听端口,默认10050
AGENT_PORT=$4
if [[ ! ${AGENT_PORT} ]];then
AGENT_PORT=10050
fi
## 环境监测
# 判断zabbix用户是否存在,不存在则创建
id zabbix &> /dev/null
if [[ $? != 0 ]];then
useradd zabbix
fi
# 判断端口是否被占用
PORT_IF=$(ss -tanlu|grep -v 'Port'|grep "${AGENT_PORT}" | awk '{printf $5 "\n"}' | awk -F ':' '{printf $NF "\n"}' | sort | uniq)
if [[ ${PORT_IF} ]];then
echo "端口 ${AGENT_PORT} 已被占用,退出安装"
exit 1
fi
## 开始安装agent
# 解压安装包
tar -zxf ${INSTALL_PACK} -C ${INSTALL_DIR}
# 授权部署路径
chown -R zabbix:zabbix ${INSTALL_DIR}
if [ ! -d "${INSTALL_DIR}/conf/zabbix_agentd.conf.d" ];then
mkdir ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
fi
# 修改配置文件
sed -i "s@Server=127.0.0.1@Server=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@# Include=/usr/local/etc/zabbix_agentd.conf.d/\*.conf@Include=${INSTALL_DIR}/conf/zabbix_agentd.conf.d/\*.conf@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@ServerActive=127.0.0.1@ServerActive=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@Hostname=Zabbix server@Hostname=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@# ListenPort=10050@ListenPort=${AGENT_PORT}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@# PidFile=/tmp/zabbix_agentd.pid@PidFile=${INSTALL_DIR}/logs/zabbix_agent.pid@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@LogFile=/tmp/zabbix_agentd.log@LogFile=${INSTALL_DIR}/logs/zabbix_agentd.log@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
sed -i "s@# Timeout=3@Timeout=30@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf # 复制自定义监控配置文件
# cp qunhe_it_disk.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# cp qunhe_it_network.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# cp zabbix_disk_speed.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# cp zabbix_disk_discovery.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# cp zabbix_network_tcp.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# chmod 755 ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/*.sh # sed -i "s@/etc/zabbix/zabbix_agentd.d@${INSTALL_DIR}/conf/zabbix_agentd.conf.d@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/qunhe_it_disk.conf
# sed -i "s@/etc/zabbix/zabbix_agentd.d@${INSTALL_DIR}/conf/zabbix_agentd.conf.d@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/qunhe_it_network.conf # 创建agent启动文件
cat > /usr/lib/systemd/system/zabbix_agentd.service << EOF
[Unit]
Description=Zabbix_agent service
After=syslog.target
After=network.target [Service]
Type=simple
User=zabbix
Restart=always
KillMode=mixed
PIDFile=${INSTALL_DIR}/logs/zabbix_agent.pid
ExecStart=${INSTALL_DIR}/sbin/zabbix_agentd -c ${INSTALL_DIR}/conf/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s [Install]
WantedBy=default.target
EOF
# 启动Zabbix_agent服务
systemctl daemon-reload
systemctl start zabbix_agentd.service
systemctl status zabbix_agentd.service &> /dev/null
if [[ $? = 0 ]];then
echo "zabbix_agentd服务启动完成"
else
echo "zabbix_agentd服务启动失败,请使用命令:systemctl status zabbix_agentd.service 查看失败原因"
fi

此时的目录下面是这样的结构

在这里你可以编写自定义的监控脚本,毕竟默认的配置文件很多情况下无法满足内部情况

自定义监控案例:TCP 连接情况

新增 Shell 脚本

#!/bin/bash
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep $1 | awk '{print $2}'

新增 conf 文件

UserParameter=qunhe.it.network.tcp[*],/usr/local/zabbix_agent/conf/zabbix_agentd.conf.d/zabbix_network_tcp.sh $1

将这两个文件同时放到你的打包目录下,此时的目录结构是:

修改原来的 install 安装脚本

在自定义脚本的地方加入以下命令:

# 复制文件到安装目录下
cp zabbix_network_tcp.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
cp zabbix_network_tcp.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
# 给 SH 赋权
chmod 755 ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/*.sh
# 替换文件目录
sed -i "s@/etc/zabbix/zabbix_agentd.d@${INSTALL_DIR}/conf/zabbix_agentd.conf.d@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/qunhe_it_disk.conf

打包文件

tar -zcf install.tar.gz *

打包好了之后就可以去分发了~

在客户端安装 agent

# 安装
tar -zxf install.tar.gz
./install.sh 服务端IP 安装目录 自定义agent路径 端口号
  • 服务端 IP:必填
  • 安装目录:可选
  • agent 路径:可选
  • 端口号:可选

服务检查

service zabbix_agentd status

开启开机自启

systemctl enable zabbix_agentd

监控图表展示

制作一个内部的 zabbix-agent 快速部署脚本的更多相关文章

  1. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  2. zabbix监控服务部署脚本

    搭建平台脚本: #!/bin/bash #zabbix监控服务部署 #脚本使用前提:yum搭建,nginx-1.12.2源码包,zabbix-3.4.4源码包,要求源码包尽量在单一目录下,最好在默认管 ...

  3. centos下Zabbix Agent端部署和安装

    首先重复一下前面的规划 server端:  192.168.136.144    centos6.5 (虚拟机) agent端:    192.168.136.155    centos6.5( 虚拟 ...

  4. zabbix agent自动安装脚本

    #!/bin/bash #desc: used for autoinstall zabbix client #说明:本脚本旨在批量安装zabbix_agent,在一个服务器上放好软件和配置文件,执行本 ...

  5. 快速安装zabbix agent并部署监控

    1.准备yum源: epel源:yum install -y zabbix22-agent 2.上传脚本: 上传脚本事先写好的监控脚本到/script/下面 3.修改配置文件:Server=10.10 ...

  6. shell脚本实现---Zabbix5.0快速部署

    shell脚本实现---Zabbix5.0快速部署 zabbix-server快速安装脚本 #!/bin/bash #Zabbix-Server 5.0#author:sunli#mail:sunli ...

  7. Ubuntu操作系统部署zabbix agent服务

    Ubuntu操作系统部署zabbix agent服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zabbix软件包 博主推荐阅读: https://www.cnblog ...

  8. zabbix的安装部署及自定义监控的实现

    此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...

  9. 08 Zabbix Item类型之Zabbix agent类型

    点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 08 Zabbix Item类型之Zabbix agent类型 Zabbix agent类型的item是使用部署在服务器端的age ...

  10. github 快速部署

    在github上 新建一个项目后,并且未提交任何代码,会有一个页面提示我们如何快速部署.在此备份一下那个页面 Quick setup — if you’ve done this kind of thi ...

随机推荐

  1. web_枚举

    网页枚举 使用工具 gobuster,Nikto,WPScan Gobuster 安装:sudo apt install gobuster 有用的全局标志 -t 线程 并发线程数(默认10) -v 冗 ...

  2. 如何在2023年开启React项目

    在这里,我想给你一个新的React项目入门的简要概述.我想反思一下优点和缺点,反思一下作为一个开发者所需要的技术水平,反思一下作为一个React开发者,每个启动项目都能为你提供哪些功能.最后,你将了解 ...

  3. 互动无极限:在线免费ChatGPT聊天工具-gpt4

    在现代社会中,聊天交流已变得越来越普遍,并且不断发展成新的形式和类型.而如今,通过使用人工智能技术,我们可以更加便捷地进行自然的对话交流.那么,提供在线免费使用的ChatGPT聊天工具是否可以满足各种 ...

  4. CSR格式如何更新? GES图计算引擎HyG揭秘之数据更新

    摘要:HyG图计算引擎采用CSR格式来存储图的拓扑信息,CSR格式可以将稀疏矩阵的存储空间压缩,进而大大降低图的存储开销,同时具备访问效率高.格式易转化等优点. 本文分享自华为云社区<CSR格式 ...

  5. 全志G2D实现屏幕旋转,开机logo实现手动旋转。

    产品设计出来之后啊,大家使用的时候觉得反过来使用更加便捷.但是屏幕显示是反的.那怎么办那????? 修改硬件费时费工,那能否软件实现那????? 如果纯软件使用那就太费系统资源了.于是就想到了使用全志 ...

  6. 宋红康-Java基础复习笔记详细版

    Java基础复习笔记 第01章:Java语言概述 1. Java基础学习的章节划分 第1阶段:Java基本语法 Java语言概述.Java的变量与进制.运算符.流程控制语句(条件判断.循环结构).br ...

  7. 反转链表 Java版 图文并茂思路分析带答案(力扣第206题)

    反转链表 力扣第206题 我们不只是简单的学习(背诵)一个数据结构,而是要分析他的思路,以及为什么要有不同的指针等等 非递归方式: 思路分析:首先要链表有个头指针没有任何问题 然后,我们要将1的下一个 ...

  8. XMLSpy操作手册

    最新发布的XMLSpy会让XML代码的处理更容易,还会有助于这个产品成为最主要的XML编辑器.xmlspy是符合行业标准的XML开发环境,专门用于设计,编辑和调试企业级的应用程序,包括XML, XML ...

  9. 今天做php缓存发现一个批量替换非法关键词的php代码

    <?php $badwords = array('aa', 'bb'); // 敏感词数组 $str = "aa阿斯顿克拉拉斯柯达bb阿萨达速度"; $result = fi ...

  10. python学习--解析网页

    # -*- coding: utf-8 -*-"""Created on Thu Oct 17 14:04:21 2019 @author: DELL"&quo ...