下载官方的基础 agent 部署包

官方地址:点击到达

  1. 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 脚本

  1. #!/bin/bash
  2. ## 变量定义
  3. # 脚本所在路径
  4. BASE_DIR=$(cd $(dirname $0);pwd)
  5. # Zabbix_server连接IP
  6. SERVER_IP=$1
  7. # agent部署路径,默认/usr/local/zabbix_agent
  8. INSTALL_DIR=$2
  9. if [[ ! ${INSTALL_DIR} ]];then
  10. INSTALL_DIR=/usr/local/zabbix_agent
  11. fi
  12. if [[ ! -d ${INSTALL_DIR} ]];then
  13. mkdir -p ${INSTALL_DIR}/logs
  14. fi
  15. # agent部署包
  16. INSTALL_PACK=$3
  17. if [[ ! ${INSTALL_PACK} ]];then
  18. INSTALL_PACK=$(find ${BASE_DIR} -name "zabbix*.tar.gz")
  19. fi
  20. # agent监听端口,默认10050
  21. AGENT_PORT=$4
  22. if [[ ! ${AGENT_PORT} ]];then
  23. AGENT_PORT=10050
  24. fi
  25. ## 环境监测
  26. # 判断zabbix用户是否存在,不存在则创建
  27. id zabbix &> /dev/null
  28. if [[ $? != 0 ]];then
  29. useradd zabbix
  30. fi
  31. # 判断端口是否被占用
  32. PORT_IF=$(ss -tanlu|grep -v 'Port'|grep "${AGENT_PORT}" | awk '{printf $5 "\n"}' | awk -F ':' '{printf $NF "\n"}' | sort | uniq)
  33. if [[ ${PORT_IF} ]];then
  34. echo "端口 ${AGENT_PORT} 已被占用,退出安装"
  35. exit 1
  36. fi
  37. ## 开始安装agent
  38. # 解压安装包
  39. tar -zxf ${INSTALL_PACK} -C ${INSTALL_DIR}
  40. # 授权部署路径
  41. chown -R zabbix:zabbix ${INSTALL_DIR}
  42. if [ ! -d "${INSTALL_DIR}/conf/zabbix_agentd.conf.d" ];then
  43. mkdir ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  44. fi
  45. # 修改配置文件
  46. sed -i "s@Server=127.0.0.1@Server=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  47. 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
  48. sed -i "s@ServerActive=127.0.0.1@ServerActive=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  49. sed -i "s@Hostname=Zabbix server@Hostname=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  50. sed -i "s@# ListenPort=10050@ListenPort=${AGENT_PORT}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  51. sed -i "s@# PidFile=/tmp/zabbix_agentd.pid@PidFile=${INSTALL_DIR}/logs/zabbix_agent.pid@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  52. sed -i "s@LogFile=/tmp/zabbix_agentd.log@LogFile=${INSTALL_DIR}/logs/zabbix_agentd.log@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  53. sed -i "s@# Timeout=3@Timeout=30@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf
  54. # 复制自定义监控配置文件
  55. # cp qunhe_it_disk.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  56. # cp qunhe_it_network.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  57. # cp zabbix_disk_speed.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  58. # cp zabbix_disk_discovery.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  59. # cp zabbix_network_tcp.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  60. # chmod 755 ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/*.sh
  61. # 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
  62. # 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
  63. # 创建agent启动文件
  64. cat > /usr/lib/systemd/system/zabbix_agentd.service << EOF
  65. [Unit]
  66. Description=Zabbix_agent service
  67. After=syslog.target
  68. After=network.target
  69. [Service]
  70. Type=simple
  71. User=zabbix
  72. Restart=always
  73. KillMode=mixed
  74. PIDFile=${INSTALL_DIR}/logs/zabbix_agent.pid
  75. ExecStart=${INSTALL_DIR}/sbin/zabbix_agentd -c ${INSTALL_DIR}/conf/zabbix_agentd.conf
  76. ExecStop=/bin/kill -SIGTERM $MAINPID
  77. LimitNOFILE=infinity
  78. LimitNPROC=infinity
  79. TimeoutStartSec=0
  80. Delegate=yes
  81. Restart=on-failure
  82. StartLimitBurst=3
  83. StartLimitInterval=60s
  84. [Install]
  85. WantedBy=default.target
  86. EOF
  87. # 启动Zabbix_agent服务
  88. systemctl daemon-reload
  89. systemctl start zabbix_agentd.service
  90. systemctl status zabbix_agentd.service &> /dev/null
  91. if [[ $? = 0 ]];then
  92. echo "zabbix_agentd服务启动完成"
  93. else
  94. echo "zabbix_agentd服务启动失败,请使用命令:systemctl status zabbix_agentd.service 查看失败原因"
  95. fi

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

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

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

新增 Shell 脚本

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

新增 conf 文件

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

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

修改原来的 install 安装脚本

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

  1. # 复制文件到安装目录下
  2. cp zabbix_network_tcp.conf ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  3. cp zabbix_network_tcp.sh ${INSTALL_DIR}/conf/zabbix_agentd.conf.d
  4. # 给 SH 赋权
  5. chmod 755 ${INSTALL_DIR}/conf/zabbix_agentd.conf.d/*.sh
  6. # 替换文件目录
  7. 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

打包文件

  1. tar -zcf install.tar.gz *

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

在客户端安装 agent

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

服务检查

  1. service zabbix_agentd status

开启开机自启

  1. 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. ODOO13之十四 :Odoo 13开发之部署和维护生产实例

    本文中将学习将 Odoo 服务器作为生产环境的基本准备.安装和维护服务器是一个复杂的话题,应该由专业人员完成.本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮.安全环境. 本文旨在介绍 ...

  2. Go 开源库运行时依赖注入框架 Dependency injection

    Dependency injection 一个Go编程语言的运行依赖注入库.依赖注入是更广泛的控制反转技术的一种形式.它用于增加程序的模块化并使其具有可扩展性. 实例展示(High API): typ ...

  3. 曲线艺术编程 coding curves 第八章 贝赛尔曲线(Bézier Curves)

    贝赛尔曲线(Bézier Curves) 原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 译者:池中物王二狗(s ...

  4. CMU15445 (Fall 2020) 数据库系统 Project#3 - Query Execution 详解

    前言 经过前两个实验的铺垫,终于到了执行 SQL 语句的时候了.这篇博客将会介绍 SQL 执行计划实验的实现过程,下面进入正题. 总体架构 一条 SQL 语句的处理流程可以归纳为: SQL 被 Par ...

  5. stream流根据集合中的元素的属性进行去重的方法

    public class StreamListTest { public static void main(String[] args) { List<Student> studentLi ...

  6. 企业级logstash简单使用(ELK)

    企业级logstash简单使用(ELK) 要使用logstash收集到Elasticsearch的方式,需确保logstash版本与es版本一致. 由于我也是刚刚研究使用,所以本文暂不会出现原理性的东 ...

  7. 最近很火的开源培训系统,支持免费商用,3个月1000star!

    项目简介 PlayEdu 开源培训系统自发布以来,3个月内帮助上千位开发者部署了私有化培训平台,并在 Github 上获得了1000star. 项目地址 Github 地址:https://githu ...

  8. 即构SDK5月迭代:新增声道选择、网络探测、智能消噪等功能,打造更优的视听体验

    即构SDK5月份的迭代更新如期而至,本月互动视频(LiveRoom).实时语音(AudioRoom)两大SDK以及录制插件(PlayRecord)均有新功能上线.新增的声道选择.变调控制.智能消噪.枚 ...

  9. CRM系统化整合从N-1做减法实践

    1 背景 京销易系统已经接入大网.KA以及云仓三个条线商机,每个条线商机规则差异比较大,当前现状是独立实现三套系统分别做支撑. 2 目标 2022年下半年CRM目标是完成9个新条线业务接入,完成销售过 ...

  10. Magick.NET跨平台压缩图片的用法

    //首先NuGet安装:Magick.NET.Core,Magick.NET-Q16-AnyCPUusing ImageMagick; /// <summary> /// 压缩图片 /// ...