23、扩展 Zabbix 功能与维护 Zabbix 配置

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

扩展 Zabbix 功能与维护 Zabbix 配置

一、使用自定义脚本和 Zabbix API 扩展 Zabbix 功能
  1. SSH 直接连接主机
    • 可以通过以下命令直接使用主机名进行 SSH 连接,而无需使用 IP 地址:
ssh lar-book-agent_passive
- 还可以使用以下命令从文件中查找主机:
cat /etc/hosts | grep agent
  1. 更新 /etc/hosts 文件
    • 为了确保脚本始终保持最新,可以添加一个 cronjob。首先执行以下命令编辑 cron 表:
crontab -e
- 然后添加以下行,确保填写正确的脚本位置:
*/15 * * * * $(which python3) /home/host_pull_zabbix.py >> ~/cron.log 2>&1

这样,使用新的 Python 脚本和 Zabbix,我们将始终拥有最新的 /etc/hosts 文件。
3. 工作原理
- 脚本通过 API 调用请求数据,使用 API 令牌进行身份验证。收到数据后,添加默认值并将所有主机名和 IP 地址写入 /etc/hosts 文件。
- 由于 Linux 主机使用 /etc/hosts 文件进行主机名到 IP 地址的转换,因此我们可以使用 Zabbix 中服务器的真实名称进行 SSH 连接,这使得使用跳板机更加方便。

二、在 Zabbix 地图中启用和禁用主机
  1. 准备工作
    • 需要 Zabbix 服务器、一定的 Python 知识和 Zabbix API 知识。
  2. 操作步骤
    • 创建目录 :登录到 Zabbix 服务器 CLI,创建一个新目录:
mkdir /etc/zabbix/frontendscripts
cd /etc/zabbix/frontendscripts
- **下载脚本**:从 Opensource ICT Solutions GitHub 下载公共脚本:
wget https://github.com/OpensourceICTSolutions/zabbix-toggle-hosts-from-frontend/archive/v2.0.tar.gz
- **解压文件**:
tar -xvzf v2.0.tar.gz
rm v2.0.tar.gz
- **移动脚本**:
mv zabbix-toggle-hosts-from-frontend-2.0/enable_disable-host.py ./
- **安装 Python 和依赖项**:
    - 对于 RHEL 系统:
dnf install python3 python3-pip
    - 对于 Ubuntu 系统:
apt-get install python3 python3-pip
- **安装 requests 模块**:
pip3 install requests
- **编辑脚本**:
vim enable_disable-host.py

在文件中,更改 url token 变量。将 url 变量更改为匹配自己的 Zabbix 前端 IP 或 DNS 名称,将 PUT_YOUR_TOKEN_HERE 替换为 Zabbix API 令牌。
- 添加前端脚本
- 导航到 Zabbix 前端的 Alerts | Scripts ,点击右上角的蓝色 Create script 按钮。
- 添加启用和禁用主机的脚本。
- 在地图中操作
- 导航到 Monitoring | Maps ,点击地图上的主机,会出现下拉菜单。
- 点击 Disable Enable 进行相应操作。

  1. 工作原理

    • 脚本使用 Python 编写,利用 Zabbix API。通过该脚本,Zabbix 用户可以从 Zabbix 前端启用和禁用主机。
    • 由于 Monitoring | Maps 选项对 Zabbix 用户可用,脚本使用 API 用户执行,因为 Zabbix API 用户具有更多权限,可以从 Zabbix 数据库获取主机信息并创建维护期。
  2. Zabbix 7 的新特性

    • 在 Zabbix 7 中,可以从前端向脚本提供输入。
    • 操作步骤如下:
      • 转到 Alerts | Scripts ,编辑 Host/Enable Host/Disable 脚本。
      • Commands 字段中,将 {HOST.HOST} 替换为 {MANUALINPUT} ,使脚本接受动态输入。
      • 打开高级配置,填写 Input prompt Default input string Input validation rule 字段。
三、维护 Zabbix 配置
  1. 技术要求
    • 需要一个运行中的 Zabbix 7 服务器来设置维护期和进行性能调优。
    • 升级部分需要以下服务器之一:
      • Rocky Linux 8 服务器,运行 Zabbix 服务器 6、PHP 版本低于 8.2 和 MariaDB 版本低于 11.4。
      • Ubuntu 22.04 服务器,运行 Zabbix 服务器 6、PHP 版本低于 8.3 和 MariaDB 版本低于 11.4。
  2. 设置 Zabbix 维护期
    • 准备工作 :需要 Zabbix 服务器,服务器至少需要有一些主机和主机组,并且需要了解如何导航 Zabbix 前端。
    • 操作步骤
      • 登录到前端,导航到 Data collection | Maintenance
      • 点击右上角的蓝色 Create maintenance period 按钮。
      • 在弹出窗口中定义维护期参数。
      • Periods 部分,点击下划线 Add 文本创建新的维护期。
      • 填写维护期信息,点击蓝色 Add 按钮。
      • 点击 Host groups 字段旁边的 Select 按钮,选择 Linux servers 主机组。
      • 可以添加描述,最后点击底部的蓝色 Add 按钮完成维护期的创建。
    • 工作原理
      • 维护期(带数据收集)通过抑制 Zabbix 操作来确保在主机进行维护时用户不会收到警报。
      • With data collection No data collection 两种选项。选择 With data collection 时,将继续收集数据但不会发送警报;选择 No data collection 时,将停止收集数据,触发器也不会触发或解决。
  3. 备份 Zabbix 配置
    • 准备工作 :需要 Zabbix 服务器,并准备好服务器的 CLI。
    • 操作步骤
      • 创建备份目录
mkdir /opt/zbx-backup/
mkdir /opt/zbx-backup/database/
mkdir /opt/zbx-backup/zbx-config/
mkdir /opt/zbx-backup/nginx/
mkdir /opt/zbx-backup/lib/
mkdir /opt/zbx-backup/shared/
mkdir /opt/zbx-backup/shared/zabbix/
mkdir /opt/zbx-backup/shared/doc/
    - **备份配置数据**:
cp -r /etc/zabbix/ /opt/zbx-backup/zbx-config/
cp -r /etc/nginx/ /opt/zbx-backup/nginx/

注意:如果使用 Apache,Web 配置位置可能不同。Red Hat 系统通常为 /etc/httpd ,Debian 系统为 /etc/apache2
- 备份 PHP 文件和二进制文件

cp -r /usr/share/zabbix/ /opt/zbx-backup/shared/zabbix/
cp -r /usr/share/doc/zabbix-* /opt/zbx-backup/shared/doc/
    - **备份 `/usr/lib` 中的 Zabbix 文件**:
cp -r /usr/lib/zabbix/ /opt/zbx-backup/lib/
    - **添加 cronjob 自动备份文件**:
crontab -e

添加以下行:

0 0 * * * tar -zcvf /opt/zbx-backup/zbx-config/zabbix.tar.gz /etc/zabbix/ >/dev/null 2>&1
0 0 * * * tar -zcvf /opt/zbx-backup/web-config/zabbix-web.tar.gz /etc/nginx/ >/dev/null 2>&1
0 0 * * * tar -zcvf /opt/zbx-backup/shared/zabbix/zabbix_usr_share.tar.gz /usr/share/zabbix/ >/dev/null 2>&1
0 0 * * * tar -zcvf /opt/zbx-backup/shared/doc/zabbix_usr_share_doc.tar.gz /usr/share/doc/ >/dev/null 2>&1
0 0 * * * tar -zcvf /opt/zbx-backup/lib /zabbix_usr_lib.tar.gz /usr/lib/zabbix/ >/dev/null 2>&1
    - **备份数据库**:
        - 对于 MySQL 数据库:
mysqldump --add-drop-table --add-locks --extended-insert --single-transaction --quick -u zabbixuser -p zabbixdb > /opt/zbx-backup/database/backup_zabbixDB_<DATE>.sql
        - 对于 PostgreSQL 数据库:
pg_dump zabbixdb > /opt/zbx-backup/database/backup_zabbixDB_<DATE>.bak
    - **添加 cronjob 备份数据库**:
        - 对于 MySQL:
crontab -e

添加以下行:

55 22 * * 0 mysqldump -u'zabbixuser' -p'password' zabbixdb > /opt/zbx-backup/database/backup_zabbixDB.sql
        - 对于 PostgreSQL,需要在用户主目录中创建一个文件:
vim ~/.pgpass

通过以上操作,可以扩展 Zabbix 的功能,并有效地维护 Zabbix 配置。在实际应用中,根据具体需求选择合适的方法进行操作。

扩展 Zabbix 功能与维护 Zabbix 配置(续)

4. 升级 Zabbix 后端

在升级 Zabbix 后端时,从旧的 PHP 版本升级到 PHP 8.2 或更高版本是一个重要的操作。以下是升级过程的详细步骤:
1. 准备工作
- 确保你有一个运行中的 Zabbix 服务器,并且了解 Zabbix 的基本操作。
- 准备好升级服务器,如 Rocky Linux 8 服务器运行 Zabbix 服务器 6、PHP 版本低于 8.2 和 MariaDB 版本低于 11.4;或者 Ubuntu 22.04 服务器运行 Zabbix 服务器 6、PHP 版本低于 8.3 和 MariaDB 版本低于 11.4。
2. 升级步骤
- 备份数据 :在进行任何升级操作之前,务必按照前面提到的备份 Zabbix 配置的步骤,对 Zabbix 的重要数据进行备份,包括配置文件、数据库等。
- 更新系统 :使用系统包管理器更新服务器的所有软件包到最新版本。
- 对于 Rocky Linux 8 系统:

dnf update
    - 对于 Ubuntu 22.04 系统:
apt-get update
apt-get upgrade
- **安装新的 PHP 版本**:根据你的系统,安装 PHP 8.2 或更高版本。
    - 对于 Rocky Linux 8 系统:
dnf install php82
    - 对于 Ubuntu 22.04 系统:
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php8.2
- **配置 PHP**:确保 PHP 的配置文件正确配置,以适应 Zabbix 的需求。通常需要配置 `php.ini` 文件,调整内存限制、执行时间等参数。
vim /etc/php/8.2/apache2/php.ini

修改以下参数:

memory_limit = 256M
max_execution_time = 300
post_max_size = 32M
upload_max_filesize = 32M
- **重启 Web 服务器**:安装和配置完成后,重启 Web 服务器使配置生效。
    - 对于 Rocky Linux 8 系统(假设使用 Apache):
systemctl restart httpd
    - 对于 Ubuntu 22.04 系统(假设使用 Apache):
systemctl restart apache2
- **检查 Zabbix 兼容性**:登录 Zabbix 前端,检查是否有兼容性问题。如果有错误提示,根据提示进行相应的调整。
5. 升级 Zabbix 数据库

将 Zabbix 数据库从旧的 MariaDB 版本升级到 MariaDB 10.11 也是维护 Zabbix 配置的重要环节。以下是升级步骤:
1. 准备工作
- 备份数据库:按照前面提到的备份数据库的步骤,对 Zabbix 数据库进行完整备份。
- 确保服务器有足够的磁盘空间来完成升级过程。
2. 升级步骤
- 停止 Zabbix 服务 :在升级数据库之前,停止 Zabbix 服务器和相关服务。

systemctl stop zabbix-server
systemctl stop zabbix-agent
- **更新 MariaDB 源**:根据你的系统,更新 MariaDB 的软件源到 10.11 版本。
    - 对于 Rocky Linux 8 系统:
dnf module disable mariadb
dnf install https://downloads.mariadb.com/MariaDB/mariadb-10.11/yum/rhel/8/x86_64/mariadb-release-10.11-1.el8.noarch.rpm
    - 对于 Ubuntu 22.04 系统:
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.11
- **安装 MariaDB 10.11**:更新源后,安装 MariaDB 10.11 版本。
dnf install mariadb-server

或者

apt-get install mariadb-server
- **启动 MariaDB 服务**:安装完成后,启动 MariaDB 服务。
systemctl start mariadb
- **升级数据库**:使用 MariaDB 的升级工具对 Zabbix 数据库进行升级。
mysql_upgrade -u root -p
- **重启 Zabbix 服务**:数据库升级完成后,重启 Zabbix 服务器和相关服务。
systemctl start zabbix-server
systemctl start zabbix-agent
6. 升级 Zabbix 整体设置

升级 Zabbix 整体设置可以确保系统的性能和功能得到提升。以下是升级的步骤:
1. 准备工作
- 备份所有重要数据,包括配置文件、数据库等。
- 确保服务器满足升级的系统要求。
2. 升级步骤
- 停止 Zabbix 服务 :在升级之前,停止 Zabbix 服务器和相关服务。

systemctl stop zabbix-server
systemctl stop zabbix-agent
- **下载新的 Zabbix 版本**:从 Zabbix 官方网站下载最新版本的 Zabbix。
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.14.tar.gz
- **解压文件**:
tar -xvzf zabbix-6.0.14.tar.gz
cd zabbix-6.0.14
- **配置和编译**:根据你的系统和需求,配置和编译 Zabbix。
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make install
- **更新配置文件**:将新的配置文件复制到相应的目录,并根据需要进行调整。
cp misc/init.d/fedora/core/zabbix-server /etc/init.d/zabbix-server
cp misc/init.d/fedora/core/zabbix-agent /etc/init.d/zabbix-agent
- **启动 Zabbix 服务**:配置完成后,启动 Zabbix 服务器和相关服务。
systemctl start zabbix-server
systemctl start zabbix-agent
7. 维护 Zabbix 性能

为了确保 Zabbix 系统的性能稳定,需要进行定期的性能维护。以下是一些维护性能的方法:
1. 监控系统资源 :使用 Zabbix 自身的监控功能,监控服务器的 CPU、内存、磁盘 I/O 等资源使用情况。可以创建自定义的监控项和触发器,当资源使用超过一定阈值时发出警报。
2. 优化数据库 :定期对 Zabbix 数据库进行优化,如清理过期数据、重建索引等。
- 清理过期数据:可以使用 Zabbix 提供的工具或 SQL 语句,清理历史数据和趋势数据。

DELETE FROM history WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
DELETE FROM trends WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 90 DAY));
- 重建索引:使用数据库的工具重建索引,提高查询性能。
REPAIR TABLE history QUICK;
REPAIR TABLE trends QUICK;
  1. 调整配置参数 :根据服务器的性能和监控数据,调整 Zabbix 的配置参数,如 StartPollers StartTrappers 等,以优化性能。
vim /usr/local/etc/zabbix_server.conf

修改以下参数:

StartPollers = 10
StartTrappers = 5
  1. 定期备份和恢复测试 :定期进行备份,并进行恢复测试,确保在出现问题时可以快速恢复数据。

总结

通过以上介绍的扩展 Zabbix 功能和维护 Zabbix 配置的方法,我们可以更好地管理和使用 Zabbix 监控系统。从使用自定义脚本和 Zabbix API 扩展功能,到在地图中启用和禁用主机;从设置维护期和备份数据,到升级后端、数据库和整体设置;再到维护系统性能,每个步骤都对 Zabbix 的稳定运行和高效使用起着重要作用。在实际操作中,需要根据具体的环境和需求,选择合适的方法和步骤,确保 Zabbix 系统始终处于最佳状态。

流程图

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(开始):::process --> B(扩展 Zabbix 功能):::process
    B --> B1(SSH 直接连接主机):::process
    B --> B2(更新 /etc/hosts 文件):::process
    B --> B3(在 Zabbix 地图中启用和禁用主机):::process
    A --> C(维护 Zabbix 配置):::process
    C --> C1(设置 Zabbix 维护期):::process
    C --> C2(备份 Zabbix 配置):::process
    C --> C3(升级 Zabbix 后端):::process
    C --> C4(升级 Zabbix 数据库):::process
    C --> C5(升级 Zabbix 整体设置):::process
    C --> C6(维护 Zabbix 性能):::process
    B3 --> B31(准备工作):::process
    B3 --> B32(操作步骤):::process
    B3 --> B33(工作原理):::process
    B3 --> B34(Zabbix 7 的新特性):::process
    C2 --> C21(创建备份目录):::process
    C2 --> C22(备份配置数据):::process
    C2 --> C23(备份 PHP 文件和二进制文件):::process
    C2 --> C24(备份 /usr/lib 中的 Zabbix 文件):::process
    C2 --> C25(添加 cronjob 自动备份文件):::process
    C2 --> C26(备份数据库):::process
    C2 --> C27(添加 cronjob 备份数据库):::process

表格

操作类型 操作步骤
扩展 Zabbix 功能 SSH 直接连接主机、更新 /etc/hosts 文件、在 Zabbix 地图中启用和禁用主机
维护 Zabbix 配置 设置 Zabbix 维护期、备份 Zabbix 配置、升级 Zabbix 后端、升级 Zabbix 数据库、升级 Zabbix 整体设置、维护 Zabbix 性能
升级 Zabbix 后端 准备工作、更新系统、安装新的 PHP 版本、配置 PHP、重启 Web 服务器、检查 Zabbix 兼容性
升级 Zabbix 数据库 准备工作、停止 Zabbix 服务、更新 MariaDB 源、安装 MariaDB 10.11、启动 MariaDB 服务、升级数据库、重启 Zabbix 服务
升级 Zabbix 整体设置 准备工作、停止 Zabbix 服务、下载新的 Zabbix 版本、解压文件、配置和编译、更新配置文件、启动 Zabbix 服务
维护 Zabbix 性能 监控系统资源、优化数据库、调整配置参数、定期备份和恢复测试
内容概要:本文围绕“基于改进秃鹰算法的微电网群经济优化调度”展开研究,提出了一种改进的秃鹰搜索算法(BES),旨在解决微电网群在复杂运行环境下的多目标、强约束、非线性及高维经济调度问题。通过引入特定优化策略,增强了基础算法的全局搜索能力和收敛效率,克服了传统智能算法易陷入局部最优的缺陷。研究构建了一个包含分布式电源、储能系统多元负荷的微电网群调度模型,以最小化系统综合运行成本为核心目标,综合考虑功率平衡、设备出力能力、储能运行特性等多重约束条件。通过仿真实验验证了所提算法在调度精度、稳定性和计算效率方面相较于传统方法具有明显优势,并进一步展示了其在降低能源开支、提升可再生能源消纳水平方面的实际应用价值。; 适合人群:具备一定电力系统基础知识或优化算法背景,从事新能源调度、智能优化算法研究应用等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网群、综合能源系统等场景下的经济调度优化;②为秃鹰算法及其他群体智能算法的改进、复现性能对比提供参考范例;③服务于科研仿真、算法验证及工程化应用需求。; 阅读建议:建议读者结合文中提供的Matlab代码实现进行实践操作,重点关注算法改进机制调度模型的构建逻辑,同时可借助网盘资源获取完整资料,以加深对算法性能表现应用场景的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值