2025年总结zabbix手动部署过程!

1.下载软件包。


wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent


2 准备数据库和用户


mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;


3 初绐化数据库的表


zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
修改Zabbix Server 连接MySQL
vim /etc/zabbix/zabbix_server.conf
DBPassword=123456


4 修改PHP配置


vim /etc/zabbix/apache.conf
php_value date.timezone Asia/Shanghai
systemctl restart zabbix-server zabbix-agent apache2
浏览器访问
http://10.0.0.102/zabbix

5.总结zabbix主动模式和被动模式简介及实现


被动模式(Passive Mode):
由 Zabbix Server 向 Agent 请求监控数据。
特点:服务端主动请求,适用于网络稳定的环境。
主动模式(Active Mode):
Zabbix Agent 主动向 Zabbix Server 推送监控数据。
特点:减少服务端负载,适用于客户端频繁离线的环境。

6 总结zabbix proxy主动及被动案例

7 .总结自定义监控,监控win, nginx, 并基于短信/微信报警。

8.完成1键安装zabbix agent脚本,可以用于ubuntu系统。

#!/bin/bash
ZABBIX_SERVER=zabbix.yu.org
ZABBIX_MAJOR_VER=6.0
ZABBIX_VER=${ZABBIX_MAJOR_VER}-4URL="mirror.tuna.tsinghua.edu.cn/zabbix"
ZABBIX_HOSTNAME=web-`hostname -I`
. /etc/os-releasecolor () {RES_COL=60MOVE_TO_COL="echo -en \\033[${RES_COL}G"SETCOLOR_SUCCESS="echo -en \\033[1;32m"SETCOLOR_FAILURE="echo -en \\033[1;31m"SETCOLOR_WARNING="echo -en \\033[1;33m"SETCOLOR_NORMAL="echo -en \E[0m"echo -n "$1" && $MOVE_TO_COLecho -n "["if [ $2 = "success" -o $2 = "0" ] ;then${SETCOLOR_SUCCESS}echo -n $"  OK  "    elif [ $2 = "failure" -o $2 = "1"  ] ;then ${SETCOLOR_FAILURE}echo -n $"FAILED"else${SETCOLOR_WARNING}echo -n $"WARNING"fi${SETCOLOR_NORMAL}echo -n "]"echo 
}install_zabbix_agent () {if [ $ID = "centos" -o $ID = "rocky" ];thenVERSION_ID=`echo $VERSION_ID|awk -F. '{print $1}'` wget https://$URL/zabbix/${ZABBIX_MAJOR_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}.el${VERSION_ID}.noarch.rpmrpm -Uvh zabbix-release-${ZABBIX_VER}.el${VERSION_ID}.noarch.rpmif [ $? -eq 0 ];thencolor "YUM仓库准备完成" 0elsecolor "YUM仓库配置失败,退出" 1exitfised -i "s#repo.zabbix.com#${URL}#" /etc/yum.repos.d/zabbix.repoyum -y install zabbix-agent || { color "YUM安装失败,退出" 1; exit; } else wget https://$URL/zabbix/${ZABBIX_MAJOR_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}+ubuntu${VERSION_ID}_all.debif [ $? -eq 0 ];thencolor "APT仓库准备完成" 0elsecolor "APT仓库配置失败,退出" 1exitfidpkg -i zabbix-release_${ZABBIX_VER}+ubuntu${VERSION_ID}_all.debsed -i "s#repo.zabbix.com#${URL}#"   /etc/apt/sources.list.d/zabbix.listapt updateapt -y install zabbix-agentfi
}config_zabbix_agent (){ sed -i  "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER"  /etc/zabbix/zabbix_agentd.conf#sed -i -e "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER"  -e "/^Hostname=Zabbix server/c Hostname=${ZABBIX_HOSTNAME}"  /etc/zabbix/zabbix_agentd.conf
}start_zabbix_agent () {systemctl enable zabbix-agent.servicesystemctl restart zabbix-agent.servicesystemctl is-active zabbix-agent.serviceif [ $?  -eq 0 ];then  echo "-------------------------------------------------------------------"color "Zabbix Agent 安装完成!" 0elsecolor "Zabbix Agent 安装失败" 1exitfi
}install_zabbix_agentconfig_zabbix_agentstart_zabbix_agent

6.完成1键脚本,可以基于zabbix api添加zabbix agent到zabbix web。


#!/bin/bash# 配置 Zabbix API 连接信息
ZABBIX_URL="http://zabbix.example.com/zabbix/api_jsonrpc.php"  
ZABBIX_USER="Admin"  
ZABBIX_PASSWORD="zabbix"  # 配置主机信息
HOSTNAME="zabbix-agent-host"  
HOST_IP="192.168.0.100"  
GROUP_NAME="Linux servers"  
TEMPLATE_NAME="Template OS Linux by Zabbix agent"  # 检查依赖
if ! command -v jq &>/dev/null; thenecho "[ERROR] jq 未安装,请安装后重试。"exit 1
fi# 登录获取 Token
get_auth_token() {local payloadpayload=$(cat <<EOF
{"jsonrpc": "2.0","method": "user.login","params": {"user": "$ZABBIX_USER","password": "$ZABBIX_PASSWORD"},"id": 1
}
EOF
)curl -s -X POST -H "Content-Type: application/json-rpc" -d "$payload" "$ZABBIX_URL" | jq -r '.result'
}# 获取主机组 ID,如果不存在则创建
get_group_id() {local group_name=$1local auth_token=$2local payloadpayload=$(cat <<EOF
{"jsonrpc": "2.0","method": "hostgroup.get","params": {"filter": {"name": "$group_name"}},"auth": "$auth_token","id": 1
}
EOF
)local group_idgroup_id=$(curl -s -X POST -H "Content-Type: application/json-rpc" -d "$payload" "$ZABBIX_URL" | jq -r '.result[0].groupid')if [ "$group_id" = "null" ]; thenpayload=$(cat <<EOF
{"jsonrpc": "2.0","method": "hostgroup.create","params": {"name": "$group_name"},"auth": "$auth_token","id": 1
}
EOF
)group_id=$(curl -s -X POST -H "Content-Type: application/json-rpc" -d "$payload" "$ZABBIX_URL" | jq -r '.result.groupids[0]')fiecho "$group_id"
}# 获取模板 ID
get_template_id() {local template_name=$1local auth_token=$2local payloadpayload=$(cat <<EOF
{"jsonrpc": "2.0","method": "template.get","params": {"filter": {"host": "$template_name"}},"auth": "$auth_token","id": 1
}
EOF
)curl -s -X POST -H "Content-Type: application/json-rpc" -d "$payload" "$ZABBIX_URL" | jq -r '.result[0].templateid'
}# 添加主机
create_host() {local hostname=$1local host_ip=$2local group_id=$3local template_id=$4local auth_token=$5local payloadpayload=$(cat <<EOF
{"jsonrpc": "2.0","method": "host.create","params": {"host": "$hostname","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "$host_ip","dns": "","port": "10050"}],"groups": [{"groupid": "$group_id"}],"templates": [{"templateid": "$template_id"}]},"auth": "$auth_token","id": 1
}
EOF
)curl -s -X POST -H "Content-Type: application/json-rpc" -d "$payload" "$ZABBIX_URL" | jq -r '.result.hostids[0]'
}# 主程序
main() {echo "[INFO] 获取 Token..."AUTH_TOKEN=$(get_auth_token)if [ -z "$AUTH_TOKEN" ]; thenecho "[ERROR] 获取 Token 失败,请检查用户或密码。"exit 1fiecho "[INFO] Token 获取成功。"echo "[INFO] 获取主机组 ID..."GROUP_ID=$(get_group_id "$GROUP_NAME" "$AUTH_TOKEN")if [ -z "$GROUP_ID" ]; thenecho "[ERROR] 获取主机组 ID 失败。"exit 1fiecho "[INFO] 主机组 ID: $GROUP_ID"echo "[INFO] 获取模板 ID..."TEMPLATE_ID=$(get_template_id "$TEMPLATE_NAME" "$AUTH_TOKEN")if [ -z "$TEMPLATE_ID" ]; thenecho "[ERROR] 模板 '$TEMPLATE_NAME' 不存在。"exit 1fiecho "[INFO] 模板 ID: $TEMPLATE_ID"echo "[INFO] 创建主机..."HOST_ID=$(create_host "$HOSTNAME" "$HOST_IP" "$GROUP_ID" "$TEMPLATE_ID" "$AUTH_TOKEN")if [ -z "$HOST_ID" ]; thenecho "[ERROR] 主机创建失败。"exit 1fiecho "[INFO] 主机创建成功,ID: $HOST_ID"
}main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.3.2 用仿真图实现点灯效果

文章目录 文章介绍Keil生成.hex代码Proteus仿真图中导入.hex代码文件开始仿真 文章介绍 点灯之前需要准备好仿真图keil代码 仿真图参考前文&#xff1a;3.3.2 Proteus第一个仿真图 keil安装参考前文&#xff1a;3.1.2 Keil4安装教程 keil新建第一个项目参考前文&#xff1a;3.1…

TypeError: Cannot read properties of undefined (reading ‘xxx‘)

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

Spring 无法解决循环依赖的 5 种场景

一、构造器注入引发的循环依赖 1. 问题复现 Component public class ServiceA {private final ServiceB serviceB;Autowiredpublic ServiceA(ServiceB serviceB) { // 构造器注入this.serviceB serviceB;} }Component public class ServiceB {private final ServiceA servic…

Vue项目通过内嵌iframe访问另一个vue页面,获取token适配后端鉴权(以内嵌若依项目举例)

1. 改造子Vue项目进行适配(ruoyi举例) (1) 在路由文件添加需要被外链的vue页面配置 // 若依项目的话是 router/index.js文件 {path: /contrast,component: () > import(/views/contrast/index),hidden: true },(2) 开放白名单 // 若依项目的话是 permission.js 文件 cons…

案例1_2:点亮8个灯【改进版】

文章目录 文章介绍改进的原理图改进的代码效果图 文章介绍 改进的原理图 使用标号简化连线 改进的代码 #include <reg51.h> // 包含头文件void main() {// 让 LED1-LED4 低电平&#xff08;点亮&#xff09;// P0 1111 0000;P0 0xF0;while (1); // 让程序一直运行…

Bazel搭建CUDA工程入门

环境版本&#xff1a; 工程目录&#xff1a; 测试输出&#xff1a; WORKSPACE 参考仓库&#xff1a;CUDA rules for Bazel 及 examples load("bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")http_archive(name "rules_cuda…

深入理解 C 语言函数的定义

在 C 语言的编程世界里&#xff0c;函数是构建复杂程序的基石。理解函数的定义与运用&#xff0c;对于编写高效、可维护的代码至关重要。​ 函数定义的基本概念​ 函数是一组执行特定任务的代码块。它将一个复杂的问题分解为一个个小的、可管理的部分&#xff0c;提高了代码的…

从毕达哥拉斯定理到向量距离和夹角的计算

1 毕达哥拉斯定理和余弦定理 1.1 毕达哥拉斯定理&#xff08;勾股定理&#xff09; 对于 毕达哥拉斯定理&#xff08;勾股定理&#xff09; 大家应该都比较熟悉&#xff0c;在一个直角三角形中&#xff0c;两条 直角边的平方之和 等于 斜边的平方 例如一个直角三角形两个直角…

结合rpart包的决策树介绍

决策树与CART算法 决策树是一种基于树状结构的监督学习算法。它通过从根节点开始递归地对特征进行划分&#xff0c;构建出一棵树来进行决策。决策树的构建过程需要解决的重要问题有三个&#xff1a;如何选择自变量、如何选择分割点、确定停止划分的条件。解决这些问题是希望随…

Manus AI : Agent 元年开启.pdf

Manus AI : Agent 元年开启.pdf 是由华泰证券出品的一份调研报告&#xff0c;共计23页。报告详细介绍了Manus AI 及 Agent&#xff0c;主要包括Manus AI 的功能、优势、技术能力&#xff0c;Agent 的概念、架构、应用场景&#xff0c;以及 AI Agent 的类型和相关案例&#xff0…

Centos的ElasticSearch安装教程

由于我们是用于校园学习&#xff0c;所以最好是关闭防火墙 systemctl stop firewalld systemctl disable firewalld 个人喜欢安装在opt临时目录&#xff0c;大家可以随意 在opt目录下创建一个es-standonely-docker目录 mkdir es-standonely-docker 进入目录编辑yml文件 se…

Geo3D建筑材质切换+屋顶纹理

一、简介 基于Threejs开发封装建筑渲染管线&#xff0c;利用简单二维建筑矢量面轮廓程序化生成3D建筑&#xff0c;支持材质一键切换&#xff0c;支持多样化建筑墙面材质和屋顶材质&#xff0c;支持建筑透明&#xff0c;支持地形高程适配&#xff0c;支持按空间范围裁剪挖洞等。…

【移动WEB开发】流式布局

目录 1. 移动端基础 1.1 浏览器现状 1.2 手机屏幕现状 1.3 常见移动端屏幕尺寸 1.4 移动端调试方法 2. 视口 3. 二倍图 3.1 物理像素&物理像素比 3.2 多倍图 3.3 背景缩放 3.4 多倍图切图cutterman 4. 移动端开发选择 4.1 主流方案 4.2 单独制作 4.3 响应式…

江科大51单片机笔记【9】DS1302时钟可调时钟(下)

在写代码前&#xff0c;记得把上一节的跳线帽给插回去&#xff0c;不然LCD无法显示 一.DS1302时钟 1.编写DS1302.c文件 &#xff08;1&#xff09;重新对端口定义名字 sbit DS1302_SCLKP3^6; sbit DS1302_IOP3^4; sbit DS1302_CEP3^5;&#xff08;2&#xff09;初始化 因为…

发行思考:全球热销榜的频繁变动

几点杂感&#xff1a; 1、单机游戏销量与在线人数的衰退是剧烈的&#xff0c;有明显的周期性&#xff0c;而在线游戏则稳定很多。 如去年的某明星游戏&#xff0c;最高200多万在线&#xff0c;如今在线人数是48名&#xff0c;3万多。 而近期热门的是MH&#xff0c;在线人数8…

PDF处理控件Aspose.PDF,如何实现企业级PDF处理

PDF处理为何成为开发者的“隐形雷区”&#xff1f; “手动调整200页PDF目录耗时3天&#xff0c;扫描件文字识别错误导致数据混乱&#xff0c;跨平台渲染格式崩坏引发客户投诉……” 作为开发者&#xff0c;你是否也在为PDF处理的复杂细节消耗大量精力&#xff1f;Aspose.PDF凭…

ubuntu22.04机器人开发环境配置

1. ros2环境配置&#xff08;humble&#xff09; #配置源 # https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install curl -y# …

期权帮|中证1000股指期权交割结算价怎么算?

期权帮锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 中证1000股指期权交割结算价怎么算&#xff1f; 一、按照最后交易日结算价&#xff1a; &#xff08;1&#xff09;计算方法&#xff1a;最后交易日标的指数&#xff08…

解锁STM32外设:开启嵌入式开发新世界

✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 探索 STM32 强大的外设家族 初窥门径&#xff1a;STM32 外设开发基础 开发方式与工具 外设配置基础步骤 深入剖析&#xff1a;常见外设应用实例…

ReferenceError: xxx is not defined

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