Zabbix 如何动态执行监控采集脚本

2023-11-04

在使用Zabbix自定义脚本采集监控数据的时候,通常会遇到以下一些问题:

  • 服务器扩容之后,监控脚本如何部署到新的服务器上?
  • 监控脚本需要修改时,如何自动修改所有相同的监控脚本?
  • 如何备份监控采集脚本避免因服务器异常后丢失?
  • 新部署自定义监控,如何避免系统管理员过多操作?
  • 如何避免大量研发就能解决上述的问题?

实现原理:使用文件服务器统一存放和管理监控脚本,在zabbix agent预埋通用脚本,根据zabbix server传输的Key和参数,从文件服务器拉取脚本执行后返回数据。

架构设计:
在这里插入图片描述
具体实现:

1.搭建文件服务器,以nginx作为文件服务器为例

修改nginx的配置并重启

erver {
        listen       8080;
        server_name  zabbix;
        root /usr/local/static/;
        location / {
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;
            charset utf-8;
        }
    }

2.编写文件拉取和执行的脚本

url="http://192.168.24.108:8080/" #定义文件服务器的URL
parentDir="/usr/local/zabbix/bin/zabbix_script" 
file_directory=$parentDir/$1  #定义本地存放执行脚本的目录
file_name=$2   #脚本名称
file_path=$1/$2  #拼接文件服务器的脚本路径
if [ ! -d $file_directory ];then   #判断文件目录是否存在
    mkdir -p $file_directory
fi

if [ ! -f $parentDir/$file_path ];then  #判断脚本是否已经存在
    wget -P $file_directory $url$file_path 2>>log
fi

timestamp=$(date +%s)
filetimestamp=$(stat -c %Y $parentDir/$file_path)
if [ $[$timestamp - $filetimestamp] -gt 3600 ];then #判断当前时间与脚本修改时间的大小,3600秒更新一次
     wget $url$file_path -O $parentDir/$file_path 2>>log  #覆盖脚本
     touch -c $parentDir/$file_path   #修改脚本的修改时间
fi
python $parentDir/$file_path $3  #执行脚本

3.增加zabbix的配置文件

UserParameter=requests_file[*],sh /usr/local/zabbix/bin/zabbix_script/requests_file.sh $1 $2 $3

4.重启zabbix agent

5.编写测试脚本,并上传到文件服务器指定目录

#监控服务器连接数
#!/usr/bin/python
import pwd
import os,sys
import re
import glob
state = sys.argv[1]

cmd = "netstat -an | grep " + state + " | wc -l"
os.system(cmd)

6.配置zabbix页面的监控项:
在这里插入图片描述
7.观察数据是否正常 :
在这里插入图片描述
8.新的监控脚本放在文件服务器之后,可直接配置页面的监控项进行数据采集
在这里插入图片描述
本文着重提供了一个zabbix自定义监控脚本集中管理的解决思路,可根据这个思路自由拓展更简洁、高效的zabbix使用方法,进一步让运维变得简单。

参考链接 :

Zabbix 如何动态执行监控采集脚本 : https://mp.weixin.qq.com/s/ikuCSYhlFdtiAmt7epskWw

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zabbix 如何动态执行监控采集脚本 的相关文章

  • Get value from agent failed:ZBX_TCP_READ() timed out(亲测)

    报错信息 Get value from agent failed ZBX TCP READ timed out 解决办法 1 查看服务和端口是否还在 2 查看zabbix agentd conf端配置文件 serverIP是否正确 3 查看
  • zabbix-agent自定义监控项

    用户定义参数可以用来帮助用户实现通过Zabbix agent执行非Zabbix原生的 agent check 一条用户自定义参数配置应当使用以下语法 UserParameter
  • Linux实时监控日志文件的swatchdog

    1 前言 本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化 swatchdog Simple WATCH DOG 是一个简单的Perl脚本 用于监视类Unix系统 比如Linux 上的活动日志文件 它根据可以
  • zabbix监控TCP连接状态

    一 zabbix监控TCP连接状态 1 取到TCP连接状态的值 root web01 netstat antp awk NR gt 2 print 6 grep TIME WAIT wc l 可以取到TIME WAIT的个数 依次类推 可以
  • 自动化Ansible常见命令

    举个例子备份Cisco交换机配置 查看CPU 占用率的统计信息 display cpu usage 查看内存的使用状态 display memory usage 查看电源的工作状态 display power 查看接口是否工作在正常状态 d
  • Zabbix---5 监控linux服务器目录大小

    例如监控 root data 目录 一 添加自己脚本 root localhost sbin pwd usr local sbin root localhost sbin cat dir size sh bin bash du m root
  • Zabbix 如何动态执行监控采集脚本

    在使用Zabbix自定义脚本采集监控数据的时候 通常会遇到以下一些问题 服务器扩容之后 监控脚本如何部署到新的服务器上 监控脚本需要修改时 如何自动修改所有相同的监控脚本 如何备份监控采集脚本避免因服务器异常后丢失 新部署自定义监控 如何避
  • shell编写yum安装监控zabbix脚本

    bin bash zabbix 5 0 安装zabbix源 修改为aliyun源 cd etc yum repos d rpm Uvh https repo zabbix com zabbix 5 0 rhel 7 x86 64 zabbi
  • 使用ELK收集网络设备日志的案例

    简介 随着机房内的服务器和网络设备增加 日志管理和查询就成了让系统管理员头疼的事 系统管理员遇到的常见问题如下 1 日常维护过程中不可能登录到每一台服务器和设备上去查看日志 2 网络设备上的存储空间有限 不可能存储日期太长的日志 而系统出现
  • zabbix-server无法启动

    故障现象 监控界面无数据 1 netstat lntup 先查看zabbix server进程是否正常 2 tail f var log zabbix zabbix server log 查看后台日志 表示一个子进程死掉 是一个zabbix
  • Zabbix监控MongoDB、Nignx、Redis、Php-fpm、SNMP(如打印机)

    Zabbix v3 4 MongoDB v3 4 MongoDB模板 感谢大神 MongoDB for Zabbix https share zabbix com databases mongodb mongodb for zabbix 3
  • Zabbix---2 监控主机CPU使用率

    一 监控CPU空闲率 在添加主机时 由于已经链接了Template OS Linux by Zabbix agent模板 该模板还链接了Template Module Linux CPU by Zabbix agent等若干个其他模板 Te
  • zabbix 调用api 批量删除主机

    脚本名称 zabbix api py 脚本内容如下 usr bin env python coding utf 8 import json import sys import urllib2 import argparse from url
  • 企业监控服务器Cacti、nagios服务器

    Cacti监控服务器入门详解 作为一名Linux SA 日常最重要的就是保证网站正常稳定的运行 我们需要实时监控网站 服务器的运行状态 这时需要借助开源软件 cacti nagios zabbix等 监控来实现 Cacti是用php语言实现
  • Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控 邮件告警 企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档 官方提供了 Vmware 虚拟机监控模板 并对模板进行了解释说明 但未对相应名词做解释 如果不了解 Vmware 组件 可
  • Zabbix 4.0升级5.0 &&ES 6.1升级7.0

    Zabbix 4 0升级5 0 一 升级方案 1影响范围 升级期间 不会影响到现有的系统 系统将保持正常的运行 升级完成后 将进行一段时间的可用性测试 待系统稳定后将替换生产上的监控 2升级方法 本次升级采用蓝绿部署的方式 先在测试环境重新
  • CentOS 7安装zabbix-agent 5.0报错:依赖检测失败:libpcre.so.0()(64bit)/获取GPG密钥失败解决

    报错信息 root localhost wget https mirrors tuna tsinghua edu cn zabbix zabbix 5 0 rhel 6 x86 64 zabbix agent 5 0 0 1 el6 x86
  • zabbix自动发现,端口 url检测

    一 自动发现 1 开启自动发现 配置自动发现 修改自动发现的网段 启用自动发现 2 配置自动发现的动作 配置自动发现的动作 添加动作的IP地址 添加自动发现的操作 启用动作 3 检验 二 自动注册 1 修改agent配置 所有agent机器
  • Lack of free swap space on 192.168.3.1

    zabbix健康报错 Lack of free swap space on 192 168 3 1 解决办法 先查看磁盘swap磁盘容量 是因为Zabbix监控没有考虑虚拟主机的交换空间情况 解决办法修改配置 选择 Lack of free
  • zabbix 通过import批量导入新增主机和批量删除旧的主机

    通过import批量导入新增主机 本文采用zabbix的hosts页面的import 批量导入 zabbix3 2版本批量导入模板 bin bash filename zbx xml echo

随机推荐

  • Windows 10 如何添加开机启动项

    1 按下win R调出运行窗口 并输入 shell startup 即可进入开机启动文件夹 2 开机启动文件夹如图所示 此时文件夹中内容为空 3 如果想要添加启动项 可以将软件快捷方式移入开机启动文件夹中 4 我们可以在任务管理器中查看是否
  • Ubuntu 设置开机直接进入桌面

    使用autologin user 在 usr share lightdm lightdm conf d 60 lightdm gtk greeter conf 文件中添加一行指定您的用户名 例如 SeatDefaults greeter s
  • DTW 笔记: Dynamic Time Warping 动态时间规整 (&DTW的python实现) 【DDTW,WDTW】

    0 总述 DTW可以计算两个时间序列的相似度 尤其适用于不同长度 不同节奏的时间序列 比如不同的人读同一个词的音频序列 DTW将自动扭曲 warping 时间序列 即在时间轴上进行局部的缩放 使得两个序列的形态尽可能的一致 得到最大可能的相
  • rxjs angular_Angular和RxJS:添加REST API后端

    rxjs angular 本文是SitePoint Angular 2 教程的第3部分 该教程介绍如何使用Angular CLI创建CRUD应用程序 在本文中 我们将更新我们的应用程序以与REST API后端进行通信 更喜欢使用分步视频课程
  • Java 线程的生命周期(对应七大状态)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 线程的生命周期 线程状态的转换 通过代码输出线程的状态 代码如下 public class ThreadState public sta
  • win10c语言安装未响应,电脑卡死程序未响应的解决方法步骤详解

    我们使用电脑的时候不可避免的会出现应用程序无响应 电脑和死机了差不多 应用程序不可以正常工作 那么电脑卡死出现应用程序未响应不可以正常工作该怎么办呢 下面学习啦小编就为大家介绍一下程序未响应具体的解决方法吧 欢迎大家参考和学习 电脑卡死程序
  • leetcode【62】----不同路径【Python】【动态规划】

    题目描述 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 问总共有多少条不同的路径 代码实现 动态规划解法 自顶向
  • 常见的【内存泄漏】姿势

    关注公众号 高性能架构探索 第一时间获取干货 回复 pdf 免费获取计算机经典书籍 本文节选自文章 内存泄漏 原因 避免以及定位 本文总结常见内存泄漏的几种方式 留意到这几点 可以避免95 以上的内存泄漏 未释放 这种是很常见的 比如下面的
  • UE5 AddYawInput踩坑

    在UE5内使用AddYawInput蓝图节点 发现我输入的值和旋转的值完全不匹配 总是扩大了2 5倍 无奈去看源码 发现并不是你输入多少值就旋转多少值 如果项目设置里EnableLegacyInputScales为真 那么还会乘以一个Yaw
  • centos安装 TA-Lib

    奇葩问题 问题一 gcc 编译器未安装 问题二 command gcc failed with exit status 1 问题三 Traceback most recent call last File run1 py line 3 in
  • 【代码随想录】数组——二分查找相关题目

    int middle left right left 2 防止溢出 等同于 left right 2 35 搜索插入位置 如果目标值不存在于数组中 返回它将会被按顺序插入的位置 这个要求自己没法实现 自己实现的会溢出 当考虑left不行时
  • 如何深度理解整体架构设计?

    一 什么是架构和架构本质 在软件行业 对于什么是架构 都有很多的争论 每个人都有自己的理解 此君说的架构和彼君理解的架构未必是一回事 因此我们在讨论架构之前 我们先讨论架构的概念定义 概念是人认识这个世界的基础 并用来沟通的手段 如果对架构
  • STM32CubeMX简单配置流程

    文章目录 前言 1 创建工程 2 创建STM32F103C8Tx系列工程 3 首先配置系统下载口 STLINK 4 配置外部时钟 5 配置相应功能 6 系统时钟配置 7 工程设置1 8 工程设置2 前言 借此平台记录一些以前保存的资料 防止
  • flask+云服务器 公网IP无法访问的问题

    最近做一些工作涉及到了flask的使用 写了一个简单的程序后 自己的云服务器公网IP一直无法访问 解决这个问题费了我好长时间 我自己用的是阿里云服务器 系统是centos 我在网上找到了几种说法 有人说是端口的问题 网上最多的说法是自己访问
  • C/C++安全编程规范

    一 安全编程概述 1 安全编程的目的 安全编程是一种软件开发方法 目的是通过采取具体措施来减少程序中存在的安全漏洞和黑客攻击的可能性 确保软件在运行过程中不会遭受攻击或泄露敏感信息 2 在进行安全编程时 需要遵循的安全最佳实践和规范 2 1
  • Rocketmq-- RocketMQ4.X基础介绍

    一 阿里开源消息队列 RocketMQ4 x介绍和新概念讲解 Apache RocketMQ作为阿里开源的一款高性能 高吞吐量的分布式消息中间件 1 1 特点 支持Broker和Consumer端消息过滤 支持发布订阅模型 和点对点 支持拉
  • Excel Row函数和Rows函数的使用方法,含Row(A:A)与Row(1:1)实例

    在 Excel 中 Row函数用于返回单元格的行号 Rows函数用于返回数组或引用单元格的行数 如果Row函数省略参数 默认返回公式所在单元格的行号 Rows函数不能省略参数 Rows函数常与Indirect函数 Index函数 If函数
  • 20230314-近视的小张

    1 题目名称 近视的小张 时间限制 1000ms内存限制 256M 题目描述 小张和他的 M 个朋友来到了一个十分神奇的地方 在这里有 N 个 柱子 对于每个 1 lt i lt N 第 i 个柱子都有两个属性 H i P i H i 表示
  • tasklet与workqueue的区别及底层实现区别

    softirq和tasklet都属于软中断 tasklet是softirq的特殊实现 workqueue是普通的工作队列 1 softirq 软中断支持SMP 同一个softirq可以在不同的CPU上同时运行 softirq必须是可重入的
  • Zabbix 如何动态执行监控采集脚本

    在使用Zabbix自定义脚本采集监控数据的时候 通常会遇到以下一些问题 服务器扩容之后 监控脚本如何部署到新的服务器上 监控脚本需要修改时 如何自动修改所有相同的监控脚本 如何备份监控采集脚本避免因服务器异常后丢失 新部署自定义监控 如何避