免费且开源的企业级监控解决方案:Zabbix
一、Zabbix 简介
Zabbix 是一款功能强大的企业级开源监控解决方案。它可以监控各种 IT 基础设施组件,包括网络设备、服务器、虚拟机、云服务、应用程序和数据库等。Zabbix 提供实时的监控、告警、报表和可视化功能,帮助用户及时发现和解决 IT 系统中的问题,保障系统的稳定性和可用性。
Zabbix 的主要特点包括:
- 灵活的数据采集: 支持多种数据采集方式,包括 Zabbix Agent、SNMP、IPMI、JMX、HTTP 等。用户可以根据不同的监控对象选择合适的采集方式。
- 强大的告警机制: 可以根据预设的阈值和条件触发告警,并通过邮件、短信、Webhook 等多种方式通知用户。告警可以进行升级、抑制和自定义。
- 丰富的可视化: 提供各种图表、仪表盘和网络拓扑图,帮助用户直观地了解监控数据的变化趋势和系统状态。用户可以自定义仪表盘以满足不同的需求。
- 可扩展性: 支持分布式监控,可以通过 Zabbix Proxy 扩展监控规模,适用于各种规模的 IT 环境。
- 模板化管理: 提供丰富的监控模板,可以快速部署对常见服务的监控。用户也可以自定义模板以方便管理。
- 安全可靠: 支持对 Zabbix 组件之间的通信进行加密,保障监控数据的安全性。同时提供高可用性方案,确保 Zabbix 系统的稳定运行。
- 完全开源: Zabbix 是完全开源的,用户可以免费使用和修改。
二、在 Debian 下安装 Zabbix
以下是在 Debian 系统下安装 Zabbix Server、Zabbix Frontend 和 Zabbix Agent 的步骤,以使用 MySQL 数据库和 Nginx Web 服务器为例。请根据您的具体需求选择相应的组件和数据库。
1. 添加 Zabbix 官方仓库:
首先,您需要添加 Zabbix 官方的 APT 仓库。请根据您使用的 Debian 版本执行相应的命令。以 Debian 12 (Bookworm) 为例:
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
sudo apt update
注意: 请将 7.0
和 debian12
替换为您实际使用的 Zabbix 版本和 Debian 版本。您可以在 Zabbix 下载页面 找到对应的仓库信息。
2. 安装 Zabbix Server、Frontend、Agent 和相关组件:
执行以下命令安装 Zabbix Server、Frontend、Agent、MySQL 数据库支持和 Nginx Web 服务器:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
3. 创建数据库和用户:
登录 MySQL 服务器并创建 Zabbix 数据库和用户,并授予相应的权限。请将 password
替换为您设置的密码:
mysql -uroot -p
在 MySQL 命令行中执行:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
EXIT;
4. 导入初始数据库架构和数据:
导入 Zabbix 的初始数据库架构和数据。系统会提示您输入之前创建的 Zabbix 用户的密码:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
导入完成后,禁用 log_bin_trust_function_creators
选项:
mysql -uroot -p
SET GLOBAL log_bin_trust_function_creators = 0;
EXIT;
5. 配置 Zabbix Server 连接数据库:
编辑 Zabbix Server 的配置文件 /etc/zabbix/zabbix_server.conf
,找到以下参数并进行修改,将 DBPassword
设置为您在 MySQL 中为 Zabbix 用户设置的密码:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
6. 配置 Zabbix Frontend 的 PHP:
编辑 Nginx 的 Zabbix 配置文件 /etc/zabbix/nginx.conf
,取消注释并设置 listen
和 server_name
指令。例如:
listen 8080;
server_name your_zabbix_domain_or_ip;
您可以根据您的网络环境修改监听端口和服务器名称。
7. 启动 Zabbix Server、Agent 和 Nginx:
启动 Zabbix Server、Agent 和 Nginx 服务,并设置开机自启:
sudo systemctl restart zabbix-server zabbix-agent nginx php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
注意: php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
用于匹配您系统上安装的 PHP-FPM 版本。
8. 访问 Zabbix Web 界面:
在您的 Web 浏览器中访问您在 Nginx 配置文件中设置的 server_name
或服务器 IP 地址,加上您设置的监听端口(如果不是默认的 80 端口)。例如:http://your_zabbix_domain_or_ip:8080
。
您将看到 Zabbix 的安装向导。按照向导的指示完成前端的配置,包括设置管理员账号和密码等。默认的管理员账号是 Admin
,密码是 zabbix
。
三、配置 Zabbix
成功安装 Zabbix 后,可以通过 Web 界面进行配置。以下是一些常见的配置任务:
- 添加主机: 在 "Configuration" -> "Hosts" 中添加您要监控的服务器、网络设备等。需要指定主机名、可见名称、主机组、IP 地址或 DNS 名称以及使用的 Agent 接口等信息。
- 添加监控项: 在 "Configuration" -> "Hosts" 中选择一个主机,然后点击 "Items" 创建监控项。监控项定义了您要收集的数据,例如 CPU 使用率、内存使用率、磁盘空间、网络接口流量等。您可以选择不同的监控项类型和配置参数。
- 添加触发器: 在 "Configuration" -> "Hosts" 中选择一个主机,然后点击 "Triggers" 创建触发器。触发器定义了告警的条件。当监控项的值满足触发器的条件时,Zabbix 会生成告警。
- 添加图形: 在 "Monitoring" -> "Hosts" 中选择一个主机,然后点击 "Graphs" 创建图形。图形可以将监控项的数据以图表的形式展示出来,方便您分析数据的变化趋势。
- 创建仪表盘: 在 "Monitoring" -> "Dashboards" 中创建自定义仪表盘,将您关心的监控数据以各种小组件的形式展示在一个页面上。
- 配置告警通知: 在 "Administration" -> "Media types" 中配置告警通知的方式,例如邮件、短信、Webhook 等。然后在 "Administration" -> "Users" 中为用户配置接收告警的媒介。最后,在 "Configuration" -> "Actions" 中创建告警动作,定义在哪些情况下发送告警通知给哪些用户。
- 使用模板: Zabbix 提供了丰富的模板,可以快速部署对常见服务的监控。您可以在 "Configuration" -> "Templates" 中导入和链接模板到您的主机。
四、 Zabbix使用手册
Zabbix 使用手册,点链接可以访问官方使用手册,非常详细。
相关文章:
免费且开源的企业级监控解决方案:Zabbix
一、Zabbix 简介 Zabbix 是一款功能强大的企业级开源监控解决方案。它可以监控各种 IT 基础设施组件,包括网络设备、服务器、虚拟机、云服务、应用程序和数据库等。Zabbix 提供实时的监控、告警、报表和可视化功能,帮助用户及时发现和解决 IT 系统中的问…...
高并发系统的通用设计方法是什么?
背景 高并发系统的通用设计方法是解决系统在面对大量用户访问时的性能瓶颈问题。当系统遇到性能瓶颈时,通常是因为某个单点资源(如数据库、后端云服务器、网络带宽等)达到了极限。 为了提升整个系统的容量,需要找到这个瓶颈资源…...
ubuntu系统下部署使用git教程
在ubuntu系统下部署并使用git教程 1.下载并安装 sudo apt update sudo apt install git2.检验安装是否成功 git --version若输出git版本号即为成功。 3.配置参数 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…...
redis client.ttl(key)
对应 Redis 的 TTL 命令: bash 复制 下载 TTL key 使用示例 1. 基本用法 java 复制 下载 try (Jedis jedis jedisPool.getResource()) {long ttl jedis.ttl("user:1001:session");if (ttl > 0) {System.out.println("键将在 " t…...
基于ACL方式手动建立站点间 IPSec 隧道
换句话说 不使用 IKE 自动协商,而是静态配置密钥和 SPI(安全参数索引)来配置隧道规则 环境基础 还是使用eNSP软件进行模拟,等后面再更新实际通信中的环境 没有框架,就没有基本思路 还是使用前面文章GRE VPN的拓扑&…...
电池大脑的基准测试及AI拓展
从为我们的智能手机供电到驱动电动汽车,我们的日常生活都离不开锂离子电池(LIB)。但是,理解其复杂的内部运作并预测其性能需要精密的工具。由此引入了多孔电极理论(PET)模型,我们可以将其视为模…...
数据通信学习笔记之OSPF的基础术语
Router ID RouterID 用于在自治系统中唯一标识一省运行 OSPF 的路由器,它是一个 32 位的无符号整数 配置完成后,如果需要修改 Router ID 的话,需要重启进程才能上生效 <Huawei>reset ospf 1 process // 重启 ospf 进程 1 Route…...
Android Cordova 开发 - Cordova 快速入门(Cordova 环境配置、Cordova 第一个应用程序)
一、Cordova 1、Cordova 概述 Cordova 是使用 HTML,CSS 和 JavaScript 构建混合移动应用程序的平台 2、Cordova 特征 (1)命令行界面(Cordova CLI) 这是可用于启动项目,构建不同平台的进程,…...
AndroidAutomotive模块介绍(四)VehicleHal介绍
前言 前面的文章中,描述了 Android Automotive 的框架中应用、Framework 层服务等知识,本篇文章将会继续按照 Android Automotive 框架介绍 Vehicle Hal 层服务的内容。 上一篇:AndroidAutomotive模块介绍(三)CarSer…...
Pingora vs. Nginx vs. 其他主流代理服务器性能对比
Pingora vs. Nginx vs. 其他主流代理服务器性能对比 核心对比概览 特性Pingora (Cloudflare)NginxEnvoyHAProxyCaddyTraefik开发公司CloudflareNginx, Inc/F5Lyft/CNCFHAProxy TechApache 2.0社区Containous核心语言RustCCCGoGo并发模型异步/多线程事件驱动事件驱动事件驱动协…...
4月23日作业
需求: 1,R5为ISP,其上只能配置IP地址; R5与其他所有直连设备间均使用公有IP;环回地址为100.1.1.1/32 2,R4设备为企业出口路由器 3,整个OSPF环境IP基于172.16.0.0/16划分; 4&…...
5.学习笔记-SpringMVC(P53-P60)
1.响应 (1)响应页面 (2)响应数据(异步提交):文本数据、json数据 2.REST风格 (1)REST:表现形式状态转换。 (2)传统风格资源描述形式 3.Restful入门案例 5.基于RESTful页面数据…...
安卓14默认赋予应用权限
安卓14上赋予应用默认权限的方式跟之前的不太一样了 需要修改两个地方,一个是frameworks\base\services\core\java\com\android\server\pm\permission\Permission.java public boolean isNormal() {//eturn (mPermissionInfo.protectionLevel & PermissionInfo…...
数据的加载与保存
加载数据的方法 选项参数:可以通过选项参数传入URL地址、用户名、密码和数据表名称等。 路径参数:可以传入加载数据的路径。 MySQL语句:可以直接导入MySQL语句来加载数据。 保存数据的方法通用方法:使用df.write方法保存数据。…...
网络编程——通信三要素
一、概述 (一)网络编程 可以让设备中的程序与网络上的其他设备中的程序进行数据交互,实现网络通信 Java.net包下提供了网络编程的解决方案。 (二)通信的基本架构 1. CS架构(Client客户端/Server服务端…...
es-存储与搜索优化
字段选型优化 链接:es-字段类型详解与优化建议 存储优化 es的底层使用Lucene,Lucene的存储的核心文件包括: 原始数据存储(Store)、倒排索引(Inverted Index)、列式存储(DocValues)…...
Hadoop 集群扩容新增节点操作文档
Hadoop 集群扩容新增节点操作文档 一、前期准备 1. 环境检查(所有新节点) 确保 JDK 安装: java -version确保 Hadoop 安装: hadoop version添加主机名映射(所有节点): cat >> /etc/h…...
高光谱相机在工业检测中的应用:LED屏检、PCB板缺陷检测
随着工业检测精度要求的不断提升,传统机器视觉技术逐渐暴露出对非可见光物质特性识别不足、复杂缺陷检出率低等局限性。高光谱相机凭借其独特的光谱分析能力,为工业检测提供了革命性的解决方案。以下结合中达瑞和VIX系列推扫式高光谱相机的技术特点与实际…...
07-IDEA企业开发工具-开发入门程序
1. IDEA创建Java项目的代码结构 项目结构: IDEA中的Java项目包含四种主要结构:工程(Project)、模块(Module)、包(Package)、类(Class)。 工程(Project): 代表整个项目,通常是一个磁盘目录或文件夹。模块(Module): 工程下的子单元,用于划分项…...
即插即用模块(3) -LSK 特征提取
paper:LSKNet: A Foundation Lightweight Backbone for Remote Sensing Code:https://github.com/zcablii/LSKNet 大型选择性内核块 (LSK Block) 功能 通过动态调整感受野,自适应提取遥感图像中目标的上下文信息,增强目标与环境关…...
彩虹表攻击与Nest密码存储
文章目录 前言🧨 什么是彩虹表攻击?📷 图中解析左侧是彩虹表:右侧是用户数据库中的数据: 🔐 如何防御彩虹表攻击?✅ 1. **使用 Salt 加密(推荐)**✅ 2. **使用强哈希函数…...
vue keep-alive标签的运用
keep-alive,想必大家都不会很陌生,在一些选项卡中会使用到。其实,它的作用大概就是把组件的数据给缓存起来。 比如果我有一个选项卡,标签一,标签二,标签三。现在,我需要实现,当我在标…...
python编写一段爱心代码
代码编写 1. 导入模块和常量定义 python import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 480 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGH…...
Python流程控制
目录 一,条件判断:if语句 1.基本语法与示例 2.多重条件判断(elif) 3.常见错误与避坑指南 1.缩进错误 2.遗漏冒号 二,循环结构:while与for 1.while循环 2.Python的注释 3.字符串的格式化输出 4.fo…...
机器人雅克比Jacobian矩阵程序
% 定义机器人的连杆参数 L1 Link(d, 0, a, 0, alpha, pi/2); L2 Link(d, 0, a, 1, alpha, 0); L3 Link(d, 0, a, 1, alpha, 0);% 创建机器人对象 robot SerialLink([L1, L2, L3], name, MyRobot);% 设置机器人的关节角度(弧度) q [0, pi/4, pi/6];%…...
Qt Creator中自定义应用程序的可执行文件图标
要在Qt Creator中为你的应用程序设置自定义可执行文件图标,你需要按照以下步骤操作: Windows平台设置方法 准备图标文件: 创建一个.ico格式的图标文件(推荐使用256x256像素,包含多种尺寸) 可以使用在线工…...
应该怎样理解“被劫持“
通常, 在 iOS 开发相关的语境中,「被劫持」的精确定义 一句话:任何「未经应用或服务器授权,第三方改变了客户端—服务器之间解析结果、传输路径或数据内容」的情形,都视为网络被劫持。 具体可拆成 六大类,每类都对应可…...
RocketMQ面试题:进阶部分
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从
主机准备 结合前面的章节,这里需要5台机器,可以先创建一台虚拟机作为基础虚拟机。优先把5台机器的公共部分优先在一台机器上配置好 1、配置好静态IP地址 2、主机名宇IP地址解析 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…...
12、高阶组件:魔法增幅器——React 19 HOC模式
一、魔法增幅器的本质 "高阶组件是魔法师用咒语叠加的炼金术,"霍格沃茨魔咒研究院院长凝视着发光的增幅器,"通过函数式能量场的嵌套,让基础组件获得预言家日报式的逻辑继承!" ——以神秘事务司的「维度叠加理…...
Linux避免文件误删详解(Linux Avoids File Deletion Errors with Detailed Explanation)
Linux避免文件误删详解 背景 大家都知道,rm指令在Linux中非常牛,rm -rf更是牛中的霸主。什么删系统跑路、删库跑路就是这个指令造成的。可以看出指令虽然牛,但是危险性极高。那么怎么避免某些时候的这种误操作造成的影响呢,阿祥…...
模板方法模式:定义算法骨架的设计模式
模板方法模式:定义算法骨架的设计模式 一、模式核心:模板方法定义算法骨架,具体步骤延迟到子类实现 在软件开发中,经常会遇到这样的情况:某个算法的步骤是固定的,但具体步骤的实现可能因不同情况而有所不…...
QT之Q_PROPERTY介绍以及在QWidget中的用法
目录 一、 Q_PROPERTY介绍 1、 Q_PROPERTY是什么 2、Q_PROPERTY 的语法 3、Q_PROPERTY 的作用 二、在QWidget中的用法 1、示例1:自带属性 2、 示例2:自建属性第一种 3、 示例3:自建属性第二种 4、动态属性 三、注意事项 四、总结 一…...
MySQL 8 自动安装脚本(CentOS-7 系统)
文章目录 一、MySQL 8 自动安装脚本脚本说明📌 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 📌 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 📌 适用场景 二、执行sh脚本1. 给予脚本执行…...
软件测试基础知识(2) -- 软件评测师(十三)
3 基于风险的测试 风险是当前未发生而未来有肯会发生并造成一定负面影响的事件。 3.1 基于风险的测试概述 (1)测试计划内容的核心: 1)测什么:从风险出发,需要明确地列举出要测试哪些具体的功能和非功能的质…...
axios 在请求拦截器中设置Content-Type无效问题
Axios 会根据请求数据自动设置 Content-Type: 当请求体为空时,Axios 会移除 Content-Type 头部 当请求体为对象时,默认设置为 application/json 当请求体为 URLSearchParams 时,默认设置为 application/x-www-form-urlencoded …...
MFC案例:使用键盘按键放大、缩小窗口图像的实验
当在对话框窗口居中显示一幅图像时,图像的尺寸可能大于或小于窗口的尺寸,这时我们希望通过使用按键“”进行图像放大显示,使用按键“-”进行缩小显示(当然也可以使用其它按键)。下面开始使用MFC进行这个实验࿰…...
本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比
本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比 一、本地部署(NAS/服务器) 适用场景: 需要完全控制硬件和数据(如隐私敏感场景)。小规模应用或测试环境。网…...
如何解决极狐GitLab 合并冲突?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 合并冲突 (BASIC ALL) 合并冲突发生在合并请求的两个分支(源分支和目标分支)对相同代码行进行了不同…...
DeepSeek在物联网设备中的应用:通过轻量化模型实现本地化数据分析
文章目录 一、引言二、DeepSeek轻量化模型的技术原理1. 模型量化2. 模型剪枝3. 动态精度调整 三、本地化数据分析的实现路径1. 硬件环境配置2. 模型加载与推理3. 数据预处理与后处理 四、行业应用案例1. 医疗智能穿戴设备2. 工业设备预测性维护3. 智能家居能耗优化 五、性能优化…...
opencv--图像
像素(像素点) 定义: Pixel 是 Picture Element(图像元素)的缩写,是数字图像中最小的独立单位。每个像素代表图像中的一个点的颜色和亮度信息。 关键特性: 颜色:通过不同的色彩模型(如RGB、CMYK…...
【KWDB 创作者计划】_嵌入式硬件篇---数字电子器件
文章目录 前言一、系列前缀(如 "74" 或 "54")74(商用级)54(工业级)二、逻辑家族(如 "LS"、"HC"、"HCT" 等)TTL(晶体管-晶体管逻辑)家族CMOS(互补金属氧化物半导体)家族BiCMOS(双极 CMOS)家族三、功能编号(如…...
前端加密介绍与实战
前端数据加密 文章目录 前端数据加密前端数据加密介绍为什么需要前端数据加密?前端数据加密的常见方式前端数据加密的实现场景:加密用户密码并发送到后端步骤 1:安装加密库步骤 2:实现加密逻辑步骤 3:后端解密 实战总结…...
DAG(有向无环图)计算模型面试内容整理-拓扑排序(Topological Sort)和节点依赖与并行度
拓扑排序(Topological Sort) 拓扑排序(Topological Sort): 拓扑排序是针对有向无环图(DAG)的一种线性排序方法。这种排序方法的特点是,对于DAG中的每一条有向边 (A → B),在拓扑排序中节点A总是排在节点B之前。...
AI语音助手自定义角色百度大模型 【全新AI开发套件掌上AI+4w字教程+零基础上手】
1、简介 此项目主要使用ESP32-S3实现一个自定义角色的AI语音聊天助手(比如医生角色),可以通过该项目熟悉ESP32-S3 arduino的开发,百度语音识别,百度语音合成API调用,百度APPBuilder API的调用实现自定义角…...
【Java面试笔记:基础】13.谈谈接口和抽象类有什么区别?
在 Java 中,接口(Interface) 和 抽象类(Abstract Class) 都是实现多态和代码抽象的机制,但它们在设计目的、语法特性及使用场景上有显著差异。 1. 接口和抽象类的区别 接口(Interface) 定义:接口是对行为的抽象,是抽象方法的集合,用于定义 API 规范。 特点: 不能…...
内存管理(Linux程序设计)
内存管理 目录 内存管理 一.简单的内存分配 代码功能概述 代码流程图 变量声明 动态内存分配 内存分配错误检查 向内存写入字符串 设置退出状态并退出程序 二.请求全部的物理内存 代码功能概述 变量声明 三..可用内存 四.滥用内存 1.代码功能(预期 …...
Prompt 结构化提示工程
Prompt 结构化提示工程 目前ai开发工具都大同小异,随着deepseek的流行,ai工具的能力都差不太多,功能基本都覆盖到了。而prompt能力反而是需要更加关注的(说白了就是能不能把需求清晰的输出成文档)。因此大家可能需要加…...
Postman设置了Cookies但是请求不携带Cookie
1 问题说明 使用Postman工具往往要向本地服务器发送请求携带Cookie便于测试接口,但是在Send下面的Cookies选项中设置域名127.0.0.1,并添加Cookie,发现发送的请求怎么都不会携带Cookie: 通过Fiddler抓包发现并没有Cookie࿱…...
微服务Nacos组件的介绍、安装、使用
微服务Nacos组件的介绍、安装、使用 在微服务架构日渐普及的今天,服务注册与配置管理成了系统架构中的关键环节。阿里巴巴开源的 Nacos(Naming and Configuration Service)正是解决这一问题的利器。本文将为你全面介绍 Nacos 的概念、安装方…...