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

server/2024/11/29 1:24:14/

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

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

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

zabbixagent2_6">(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

zabbixagent2_61">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,做离线安装部署及自动化提升效率安装和配置的方式,仅供参考。以上代码可以根据自己的具体环境做修改调整,希望能带来帮助。


http://www.ppmy.cn/server/145775.html

相关文章

redislite:轻量级的嵌入式 Redis 解决方案

在现代应用程序中&#xff0c;数据存储和管理是至关重要的。Redis 是一个非常流行的内存数据结构存储&#xff0c;广泛用于缓存、会话存储和消息传递等场景。然而&#xff0c;在某些情况下&#xff0c;开发者并不希望在本地或服务器上维护一个独立的 Redis 实例。这时&#xff…

【cocos creator】下拉框

https://download.csdn.net/download/K86338236/90038176 const { ccclass, property } cc._decorator;type DropDownOptionData {optionString?: string,optionSf?: cc.SpriteFrame } type DropDownItemData {label: cc.Label,sprite: cc.Sprite,toggle: cc.Toggle }cccl…

JVM调优篇之JVM基础入门AND字节码文件解读

目录 Java程序编译class文件内容常量池附录-访问标识表附录-常量池类型列表 Java程序编译 Java文件通过编译成class文件后&#xff0c;通过JVM虚拟机解释字节码文件转为操作系统执行的二进制码运行。 规范 Java虚拟机有自己的一套规范&#xff0c;遵循这套规范&#xff0c;任…

行为型模式-命令模式

命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使你可以用不同的请求、队列或者日志来参数化对象。命令模式允许请求的发送者与接收者完全解耦。 关键组成部分 Command&#xff08;命令接口&#xff0…

Git | 通过Gihub+git组合来学习理解团队项目合作中分支的创建、合并、删除操作

分支操作 Gihubgit步骤 1: 创建新的 GitHub 仓库步骤 2: 克隆仓库到本地步骤 3:创建并切换到新分支&#xff1a;步骤 4:修改文件并提交更改&#xff1a;【包含**查看改动提交更改**】步骤 5:将本地分支推送到 GitHub&#xff1a;步骤 6:合并分支步骤 7:删除本地分支和远程分支步…

【探寻密码的奥秘】-001:解开密码的神秘面纱

目录 1、密码学概述1.1、概念1.2、目的1.3、应用场景 2、密码学的历史2.1、第一时期&#xff1a;古代密码时代2.2、第二时期&#xff1a;机械密码时代2.3、第三时期&#xff1a;信息密码时代2.4、第四时期&#xff1a;现代密码时代 3、密码学的基本概念3.1、一般通信系统3.2、保…

linux安全管理-会话安全

文章目录 1 设置命令行界面超时退出2 配置终端登录失败策略3 配置 SSH 登录失败策略 1 设置命令行界面超时退出 1、检查内容 检查操作系统是否设置命令行界面超时退出。 2、配置要求 操作系统设置命令行界面超时退出。 3、配置方法 配置命令行界面超时时间&#xff0c;编辑/et…

TCP/IP学习笔记

TCP\IP从实际应用的五层结构开始&#xff0c;自顶而下的去分析每一层。 TCP/IP五层架构概述 学术上面是TCP/IP四层架构&#xff0c;OSI/ISO是七层架构&#xff0c;实际中使用的是TCP/IP五层架构。 数据链路层 ICMP数据包分析 Wireshark抓包分析ICMP协议_wireshark抓ping包分析…