当前位置: 首页 > news >正文

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端

管理的服务器大部分都是CentOS操作系统,版本主要是CentOS 7。因为监控服务器需要,要在前两天搭建的Zabbix 7.0系统上把这些CentOS 7系统都监控起来。因为服务器数量众多,而且有些服务器还无法直接访问外网,为了提高zabbix-agent2客户端的部署和配置效率,就采用将zabbix 7.0客户端的软件包私有化,并且写一个自动化部署的脚本来提高部署和配置效率。

1 私有化zabbix-agent2客户端软件仓库

(1) 找一台测试机离线下载zabbix-agent2相关软件包

具体可以参考zabbix官网软件下载界面,我们是被监控端是CentOS 7版本系统,Zabbix Server是7.0 LTS,所以依次选择 Zabbix Packages -> ZABBIX VERSION 7.0 LTS -> OS DISTRIBUTION CentOS -> OS VERSION 7 -> ZABBIX COMPONENT Agent 2, 在下方生成的文档中的安装zabbix-agent2包的命令,复制到被监控端服务器上执行,不过在执行前先把yum的缓存设置成保留,执行以下命令:

sed -i '/^keepcache=0/s/=0/=1/' /etc/yum.conf

(2) 执行安装测试操作

复制刚刚(1)步骤中看到的安装zabbix-agent2客户端命令,如下:

# 配置zabbix官方repository
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-latest.el7.noarch.rpm
yum clean all# 安装zabbix-agent2客户端
yum install zabbix-agent2 zabbix-agent2-plugin-*# 修改zabbix-agent2服务的配置文件 (可以跳过,这里只需要获取zabbix-agent2相关安装包)
# 具体配置文件在/etc/zabbix/zabbix_agent2.conf, 需要修改的项有: 
Server=xxx
ServerActive=xxx
HostName=xxx
HostMetadata=xxxx# 启动和配置zabbix-agent2服务开机自启动 (可以跳过,这里只需要获取zabbix-agent2相关安装包)
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2

(3) 制作私有yum软件仓库及repo配置文件

将(2)中安装过程中保留在本地的zabbix-agent2相关包拷贝到web服务的目录中,创建私有软件仓库元数据。

# 将(2)中测试机上的/var/cache/yum/x86_64/7/zabbix/packages/拷贝到web服务目录中,并生成仓库依赖包元数据信息
mkdir /data/soft/zabbix-agent2/zabbix-7-lts/centos7
cp /var/cache/yum/x86_64/7/zabbix/packages/*.rpm /data/soft/zabbix-agent2/
cd /data/soft/zabbix-agent2/zabbix-7-lts/centos7
createrepo .

准备好仓库的repo配置文件

cat > /data/soft/zabbix-agent2/zabbix-7-lts/zabbix.repo <<EOF
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://web-server-ip-dns-name/zabbix_agent2/zabbix-7-lts/centos7/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-B5333005
EOF

2 准备自动化安装和配置zabbix-agent2脚本

该脚本实现zabbix-agent2的自动化安装和配置,主要功能包括:

  • 获取并配置YUM仓库
  • 安装zabbix-agent2软件包
  • 修改服务配置文件
  • 重启服务并设置开机自启

脚本设计特点:

  • Zabbix Server地址可配置
  • HostMetadata支持自定义传参

通过这些功能和设计,脚本可适应不同部署环境,提高了实用性和可扩展性。

脚本的具体内容如下:

cat /data/soft/zabbix-agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh #!/bin/bash
####################################################################################################################################
# File Name: centos7-install-zabbix-agent2-7.0.6.sh
# Author: AnSter
# mail: anster@126.com
# Created Time: Tue 19 Nov 2024 02:29:50 PM CST
# Linux: CentOS 7
# Usage:
#  1. set both zabbix server ip and hostmeatadata
#    curl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh | bash -s -- 10.0.13.15 LeadIPMS
#  2. only set hostmetadata, use default zabbix server ip zabbix-server.cn
#    curl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh | bash -s -- LeadIPMS
#  3. all use default zabbix server ip "zabbix-server.cn" and hostmetadata "Linux IPMS"
#    curl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh
##################################################################################################################################### change zabbix_agent2 settings
z_server_ip="zabbix-server.cn"
hostmetadata="ProjA"echo $## if two arguments given, 1st is zabbix server ip, 2nd is hostmetadata configure
if [ $# -eq 2 ]; thenz_server_ip="${1}"hostmetadata="${2}"echo "both provide zabbix"
elif [ $# -eq 1 ]; then# if only one argument given, set hostmetadata configuration. hostmetadata="${2}"echo "use default zabbix server ip, and provide hostmetadata configure"
elseecho "use default zabbix server configuration."
fiecho "Zabbix Server ip: ${z_server_ip}, HostMetadata is ${hostmetadata}."# check if zabbix-agent2 is installed or not
rpm -q zabbix-agent2 > /dev/null 2>&1
if [ $? -eq 0 ]; thenecho "zabbix-agent2 package alreay installed, skip install."
fi# download and install zabbix-agent2 rpm package
if [ -e /etc/yum.repos.d/zabbix.repo ]; then rm -f /etc/yum.repos.d/zabbix.repo
fi
curl -o /etc/yum.repos.d/zabbix.repo http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/zabbix.repo
yum install -y zabbix-agent2 > /dev/null 2>&1
if [ $? -eq 0 ]; thenecho "install zabbix_agent2 package done".
elseecho "failed to install zabbix_agent2 package"
fiAGENT_CONF="/etc/zabbix/zabbix_agent2.conf"
sed -i "/^Server=127.0.0.1/s/127.0.0.1/${z_server_ip}/" ${AGENT_CONF}
sed -i "/^ServerActive=127.0.0.1/s/127.0.0.1/${z_server_ip}/" ${AGENT_CONF}
sed -i "/^Hostname=Zabbix server/s/Zabbix server/$(hostname)/" ${AGENT_CONF}
sed -i "/^# HostMetadata=/a HostMetadata=${hostmetadata}"  ${AGENT_CONF}# output import configure
grep '^Server.*=' ${AGENT_CONF}
grep '^Host.*=' ${AGENT_CONF}# restart zabbix-agent2 service
systemctl start zabbix-agent2
systemctl enable zabbix-agent2echo "finish install and confiugre zabbix_agent2"

3 测试使用

脚本也放到web服务上的,在被监控节点上安装和配置zabbix-agent2服务,只需要按以下操作即可,实现一条命令即可完成部署和配置工作,大大提升配置效率。

# 脚本支持以下三种调用方式#1. 同时提供自定义的zabbix server地址 zabbix-server.cn,和设置hostmetadata为ProjAcurl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh | bash -s -- zabbix-server.cn ProjA
#2. 只提供HostMetadata值,使用默认的zabbix server地址curl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh | bash -s -- ProjA
#3. 不提供任何参数,都是用默认值,zabbix server使用zabbix-server.cn,HostMetadata设置为ProjAcurl http://web-download-server.cn/zabbix_agent2/zabbix-7-lts/centos7-install-zabbix-agent2-7.0.6.sh

以上是针对CentOS 7系统上安装zabbix-agent2,做离线安装部署及自动化提升效率安装和配置的方式,仅供参考。以上代码可以根据自己的具体环境做修改调整,希望能带来帮助。

相关文章:

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端 管理的服务器大部分都是CentOS操作系统&#xff0c;版本主要是CentOS 7。因为监控服务器需要&#xff0c;要在前两天搭建的Zabbix 7.0系统上把这些CentOS 7系统都监控起来。因为服务器数量众多&#xff0c;而且有些服务器…...

【开源项目】ChinaAddressCrawler 中国行政区划数据(1980-2023年)采集及转换(Java版),含SQL格式及JSON格式

ChinaAddressCrawler 开源项目地址&#xff1a;https://gitee.com/li_yu_jiang/ChinaAddressCrawler 来源于国家民政部的数据只包括省级&#xff08;省/直辖市/自治区/特别行政区&#xff09;、地级&#xff08;地级市/地区/自治州/盟&#xff09;、县级&#xff08;县/市辖区…...

React中事件处理和合成事件:理解与使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

Local Changes不展示,DevEco Studio的git窗口中没有Local Changes

DevEco Studio的git窗口中&#xff0c;没有Local Changes&#xff0c;怎么设置可以调出&#xff1f; 进入File-->Settings-->Version Control&#xff0c;将Use non-modal commit interface前的勾选框取消勾选&#xff0c;点击OK即可在打开git窗口&#xff0c;就可以看到…...

大数据笔记

第一章、大数据概述 人类的行为及产生的事件的一种记录称之为数据。 1、大数据时代的特征&#xff0c;并结合生活实例谈谈带来的影响。 &#xff08;一&#xff09;特征 1、Volume 规模性&#xff1a;数据量大。 2、Velocity高速性&#xff1a;处理速度快。数据的生成和响…...

【Linux网络编程】TCP套接字

TCP与UDP的区别&#xff1a; udp是无连接的、面向数据报&#xff08;通信时以数据报为单位传输&#xff09;的传输层通信协议&#xff0c;其中每个数据报都是独立的&#xff0c;通信之前不需要建立连接&#xff0c;bind绑定套接字后直接可以进行通信。 tcp是面向连接的、基于字…...

在Manjaro Gnome桌面的基础上安装Budgie桌面环境

在Manjaro上安装Budgie桌面环境 Budgie是Solus团队开发的一种简单而优雅的桌面环境。 Budgie是由Solus项目主要开发的流行桌面环境&#xff0c;与GNOME堆栈紧密集成。它提供了简单而优雅的用户体验&#xff0c;并且可用于大多数发行版&#xff0c;如Arch、Debian、Manjaro等。…...

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置&#xff0c;可以通过快捷键 Ctrl Shift P 打开命令面板&#xff0c;然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令&#xff0c;这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…...

前后端中Json数据的简单处理

很多时候因为数据库中不想创建中间表去存一些数据&#xff0c;所以在一个实体表中用一个json字段去存储并处理这些数据。本人倾向在前端js部分直接处理json数据&#xff0c;后端只做存储&#xff0c;不做处理。 前端在获取表单的时候解析 toEdit(row) {this.editForm { ...ro…...

Java爬虫:深入解析商品详情的利器

在数字化时代&#xff0c;信息的获取与处理能力成为了企业竞争力的关键。特别是在电商领域&#xff0c;商品详情的获取与分析对于市场趋势的把握、竞争对手的分析以及消费者行为的研究至关重要。Java作为一种成熟且功能强大的编程语言&#xff0c;其在爬虫技术中的应用尤为广泛…...

新型大语言模型的预训练与后训练范式,阿里Qwen

前言&#xff1a;大型语言模型&#xff08;LLMs&#xff09;的发展历程可以说是非常长&#xff0c;从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初&#xff0c;LLM的训练过程只关注预训练&#xff0c;但后来逐步扩展到了包括预训练和后训练在内的完整…...

深入理解 Dubbo 如何动态感知服务下线

在现代分布式系统中&#xff0c;服务的上下线管理是非常重要的功能&#xff0c;尤其是服务动态扩展与缩减的需求日益频繁。在这种环境中&#xff0c;如何确保消费者能够实时感知到服务的状态变化&#xff0c;减少因服务失效导致的调用失败&#xff0c;直接影响系统的可用性和用…...

VSCode 下载 安装

VSCode【下载】【安装】【汉化】【配置C环境&#xff08;超快&#xff09;】&#xff08;Windows环境&#xff09;-CSDN博客 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/Downloadhttps://code.visualstudio.com/Download 注意&#xff0…...

局域网的网络安全

网络安全 局域网基本上都采用以广播为技术基础的以太网&#xff0c;任何两个节点之间的通信数据包&#xff0c;不仅为这两个节点的网卡所接收&#xff0c;也同时为处在同一以太网上的任何一个节点的网卡所截取。因此&#xff0c;黑客只要接入以太网上的任一节点进行侦听&#…...

VMware ubuntu创建共享文件夹与Windows互传文件

1.如图1所示&#xff0c;点击虚拟机&#xff0c;点击设置&#xff1b; 图1 2.如图2所示&#xff0c;点击选项&#xff0c;点击共享文件夹&#xff0c;如图3所示&#xff0c;点击总是启用&#xff0c;点击添加&#xff1b; 图2 图3 3.如图4所示&#xff0c;出现命名共享文件夹…...

TCP/IP网络编程-C++(上)

TCP/IP网络编程-C &#xff08;上&#xff09; 一、基于TCP的服务端/客户端1、server端代码2、client端代码3、socket() 函数3.1、函数原型3.2、参数解析3.2.1、协议族&#xff08;domain参数&#xff09;3.2.2、套接字类型&#xff08;type参数&#xff09;3.2.3、最终使用的协…...

React Hooks中use的细节

文档 useState useState如果是以函数作为参数&#xff0c;那要求是一个纯函数&#xff0c;不接受任何参数&#xff0c;同时需要一个任意类型的返回值作为初始值。 useState可以传入任何类型的参数作为初始值&#xff0c;当以一个函数作为参数进行传入的时候需要注意&#xff…...

通信网络安全分层及关键技术解决

要实现信息化&#xff0c;就必须重视信息网络安全。信息网络安全绝不仅是IT行业的问题&#xff0c;而是一个社会问题&#xff0c;是一个包括多学科的系统安全工程问题&#xff0c;并直接关系到国家安全。因此&#xff0c;知名安全专家沈昌祥院士呼吁&#xff0c;要像重视两弹一…...

C++ 面向对象包含哪些设计原则

设计模式是由设计原则迭代出来的 开闭原则&#xff1a;一个类应该对扩展开放&#xff0c;对修改关闭 稳定的部分稳定住&#xff0c;变化的部分扩展 扩展可以通过继承和组合 相关原则&#xff1a;单一职责原则、里氏替换原则、接口隔离原则 单一职责原则&#xff1a;一个类应该…...

微信小程序首页搜索框的实现教程

微信小程序首页搜索框的实现教程 前言 在现代移动应用中,搜索功能是用户获取信息的主要方式之一。对于购物小程序而言,提供一个美观且高效的搜索框,可以显著提升用户体验,帮助用户快速找到他们想要的商品。本文将详细介绍如何在微信小程序中实现一个样式优美的搜索框,包…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...