扩展 Zabbix 功能与维护 Zabbix 配置
一、使用自定义脚本和 Zabbix API 扩展 Zabbix 功能
-
SSH 直接连接主机
- 可以通过以下命令直接使用主机名进行 SSH 连接,而无需使用 IP 地址:
ssh lar-book-agent_passive
- 还可以使用以下命令从文件中查找主机:
cat /etc/hosts | grep agent
-
更新 /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 地图中启用和禁用主机
-
准备工作
- 需要 Zabbix 服务器、一定的 Python 知识和 Zabbix API 知识。
-
操作步骤
- 创建目录 :登录到 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
进行相应操作。
-
工作原理
- 脚本使用 Python 编写,利用 Zabbix API。通过该脚本,Zabbix 用户可以从 Zabbix 前端启用和禁用主机。
-
由于
Monitoring | Maps选项对 Zabbix 用户可用,脚本使用 API 用户执行,因为 Zabbix API 用户具有更多权限,可以从 Zabbix 数据库获取主机信息并创建维护期。
-
Zabbix 7 的新特性
- 在 Zabbix 7 中,可以从前端向脚本提供输入。
-
操作步骤如下:
-
转到
Alerts | Scripts,编辑Host/Enable和Host/Disable脚本。 -
在
Commands字段中,将{HOST.HOST}替换为{MANUALINPUT},使脚本接受动态输入。 -
打开高级配置,填写
Input prompt、Default input string和Input validation rule字段。
-
转到
三、维护 Zabbix 配置
-
技术要求
- 需要一个运行中的 Zabbix 7 服务器来设置维护期和进行性能调优。
-
升级部分需要以下服务器之一:
- Rocky Linux 8 服务器,运行 Zabbix 服务器 6、PHP 版本低于 8.2 和 MariaDB 版本低于 11.4。
- Ubuntu 22.04 服务器,运行 Zabbix 服务器 6、PHP 版本低于 8.3 和 MariaDB 版本低于 11.4。
-
设置 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时,将停止收集数据,触发器也不会触发或解决。
-
备份 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;
-
调整配置参数
:根据服务器的性能和监控数据,调整 Zabbix 的配置参数,如
StartPollers、StartTrappers等,以优化性能。
vim /usr/local/etc/zabbix_server.conf
修改以下参数:
StartPollers = 10
StartTrappers = 5
- 定期备份和恢复测试 :定期进行备份,并进行恢复测试,确保在出现问题时可以快速恢复数据。
总结
通过以上介绍的扩展 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 性能 | 监控系统资源、优化数据库、调整配置参数、定期备份和恢复测试 |
超级会员免费看

928

被折叠的 条评论
为什么被折叠?



