1. 首页 > 软件安装教程 > 正文

Zabbix安装配置-Zabbix监控系统安装配置_升级迁移详细过程

1. Zabbix概述与环境规划

Zabbix是一个开源的企业级监控系统,用于监控服务器、网络设备和应用程序的性能和可用性。Zabbix支持多种监控方式,包括Agent、SNMP、ICMP等。更多学习教程www.fgedu.net.cn

1.1 Zabbix版本说明

Zabbix目前主要版本为6.x系列,本教程以Zabbix 6.4.0为例进行详细讲解。Zabbix 6.x版本相比之前版本在性能、稳定性和功能方面都有显著提升,支持更多的监控特性。

# 查看Zabbix版本
$ zabbix_server –version
zabbix_server (Zabbix) 6.4.0
Revision 2435243c01 10 May 2023, compilation time: May 10 2023 12:34:56

# 查看系统版本
$ cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 查看内核版本
$ uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

1.2 环境规划

本次安装环境规划如下:

Zabbix服务器:
zabbix01.fgedu.net.cn (192.168.1.91) – Zabbix主服务器
zabbix02.fgedu.net.cn (192.168.1.92) – Zabbix备用服务器

Zabbix版本:6.4.0
数据库:PostgreSQL 14.0
Web服务器:Nginx 1.20.0
安装方式:RPM包安装
数据存储:本地文件系统 + NFS共享存储

2. 硬件环境要求

Zabbix作为企业级监控系统,对硬件资源要求根据监控目标数量和数据保留时间而定。学习交流加群风哥微信: itpux-com

2.1 物理主机环境要求

# Zabbix服务器要求
– CPU:至少8核
– 内存:至少32GB
– 磁盘:系统盘120GB SSD + 数据盘1TB SSD

# 检查Zabbix服务器资源
# free -h
total used free shared buff/cache available
Mem: 32G 8.4G 22G 512M 3.6G 23G
Swap: 8G 0B 8G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 120G 20G 100G 17% /
/dev/sdb1 1TB 50G 950G 5% /data

生产环境建议:Zabbix服务器至少2个,实现高可用。建议使用SSD存储以提高I/O性能。网络带宽建议10Gbps以上,以支持大量监控数据传输。

2.2 vSphere虚拟主机环境要求

虚拟机配置:
– Zabbix服务器:
– vCPU:8核
– 内存:32GB
– 磁盘:系统盘120GB SSD + 数据盘1TB SSD
– 网络:VMXNET3网卡,10Gbps网络

资源池配置:
– CPU预留:4GHz
– 内存预留:16GB
– 内存限制:32GB
– CPU份额:正常
– 内存份额:正常

2.3 云平台主机环境要求

云主机规格(阿里云/腾讯云/华为云):
– Zabbix服务器:
– 实例规格:ecs.g6.4xlarge或同等规格
– vCPU:16核
– 内存:64GB
– 系统盘:SSD云盘 120GB
– 数据盘:SSD云盘 1TB
– 网络带宽:10Gbps以上

存储配置:
– OSS对象存储:用于存储监控数据备份
– NAS文件存储:用于共享监控数据
– 云盘快照:定期备份监控数据

3. 操作系统环境准备

在安装Zabbix之前,需要对操作系统进行必要的配置和优化。

3.1 操作系统版本检查

# 检查操作系统版本
# cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 检查内核版本
# uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

# 检查SELinux状态
# getenforce
Enforcing

# 检查防火墙状态
# systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running)

3.2 依赖服务安装

# 安装依赖包
# dnf install -y wget curl tar gzip epel-release

# 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld

# 关闭SELinux
# setenforce 0
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config

# 安装PostgreSQL
# dnf install -y postgresql-server postgresql-contrib
# postgresql-setup –initdb
# systemctl start postgresql
# systemctl enable postgresql

# 安装Nginx
# dnf install -y nginx
# systemctl start nginx
# systemctl enable nginx

3.3 数据库配置

# 创建Zabbix数据库和用户
# su – postgres
$ psql
CREATE USER zabbix WITH PASSWORD ‘password’;
CREATE DATABASE zabbix OWNER zabbix;
zabbix
CREATE EXTENSION pg_trgm;
CREATE EXTENSION btree_gist;
\q
$ exit

# 验证数据库连接
# psql -U zabbix -d zabbix -h localhost
Password for user zabbix:
psql (14.0)
Type “help” for help.

zabbix=> \q

4. Zabbix安装配置

完成环境准备后,开始安装Zabbix。

4.1 安装Zabbix服务器

# 添加Zabbix仓库
# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
# dnf clean all

# 安装Zabbix服务器和前端
# dnf install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

# 导入数据库模式
# zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | psql -U zabbix -d zabbix

# 配置Zabbix服务器
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

# 配置Nginx
# vi /etc/nginx/conf.d/zabbix.conf
listen 80;
server_name zabbix.fgedu.net.cn;

# 配置PHP
# vi /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

# 启动服务
# systemctl restart zabbix-server zabbix-agent nginx php-fpm
# systemctl enable zabbix-server zabbix-agent nginx php-fpm

# 验证安装
# systemctl status zabbix-server
# curl http://localhost

4.2 访问Zabbix Web界面

# 访问Zabbix Web界面
# 打开浏览器访问 http://zabbix.fgedu.net.cn

# 初始登录
# 用户名:Admin
# 密码:zabbix

# 完成安装向导
# 1. 检查预安装条件
# 2. 配置数据库连接
# 3. 设置Zabbix服务器信息
# 4. 完成安装

5. Zabbix配置优化

为了提高Zabbix的性能和稳定性,需要进行一些配置优化。

5.1 服务器配置优化

# 编辑Zabbix服务器配置
# vi /etc/zabbix/zabbix_server.conf

# 基本配置
ServerName=zabbix.fgedu.net.cn
ListenPort=10051

# 数据库配置
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
DBSocket=/var/run/postgresql/.s.PGSQL.5432

# 缓存配置
CacheSize=8G
CacheUpdateFrequency=60
StartPollers=20
StartPollersUnreachable=10
StartTrappers=10
StartPingers=10
StartDiscoverers=10

# 历史数据配置
HistoryCacheSize=4G
HistoryIndexCacheSize=2G
TrendCacheSize=2G
ValueCacheSize=4G

# 告警配置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

# 重启Zabbix服务器
# systemctl restart zabbix-server

5.2 数据库优化

# 编辑PostgreSQL配置
# vi /var/lib/pgsql/data/postgresql.conf

# 内存配置
shared_buffers = 8GB
work_mem = 64MB
maintenance_work_mem = 2GB

# 查询优化
effective_cache_size = 24GB
random_page_cost = 1.1

# 写入优化
temp_buffers = 512MB
max_wal_size = 4GB
min_wal_size = 1GB

# 并发配置
max_connections = 200

# 重启PostgreSQL
# systemctl restart postgresql

# 优化数据库表
# su – postgres
$ psql -d zabbix
VACUUM ANALYZE;
REINDEX DATABASE zabbix;
\q
$ exit

5.3 高可用配置

# 在备用服务器安装Zabbix
# 重复主服务器的安装步骤

# 配置主服务器Zabbix
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

# 配置备用服务器Zabbix
# vi /etc/zabbix/zabbix_server.conf
DBHost=zabbix01.fgedu.net.cn
DBName=zabbix
DBUser=zabbix
DBPassword=password

# 配置数据库主从复制
# 在主服务器上
# vi /var/lib/pgsql/data/postgresql.conf
wal_level = replica
max_wal_senders = 10
max_replication_slots = 10

# 编辑pg_hba.conf
# vi /var/lib/pgsql/data/pg_hba.conf
host replication replica 192.168.1.92/32 md5

# 重启PostgreSQL
# systemctl restart postgresql

# 在备用服务器上
# su – postgres
$ pg_basebackup -h 192.168.1.91 -U replica -D /var/lib/pgsql/data -P -v
$ vi /var/lib/pgsql/data/recovery.conf
standby_mode = ‘on’
primary_conninfo = ‘host=192.168.1.91 port=5432 user=replica password=password’

# 重启PostgreSQL
# systemctl restart postgresql

6. Zabbix Agent配置

Zabbix Agent用于收集被监控主机的指标数据。

6.1 安装Zabbix Agent

# 添加Zabbix仓库
# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
# dnf clean all

# 安装Zabbix Agent
# dnf install -y zabbix-agent

# 配置Zabbix Agent
# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.91,192.168.1.92
ServerActive=192.168.1.91,192.168.1.92
Hostname=web01.fgedu.net.cn

# 启动Zabbix Agent
# systemctl start zabbix-agent
# systemctl enable zabbix-agent

# 验证安装
# systemctl status zabbix-agent
# netstat -tuln | grep 10050

6.2 配置主动模式

# 编辑Zabbix Agent配置
# vi /etc/zabbix/zabbix_agentd.conf

# 主动模式配置
Server=192.168.1.91,192.168.1.92
ServerActive=192.168.1.91,192.168.1.92
Hostname=web01.fgedu.net.cn
StartAgents=0

# 重启Zabbix Agent
# systemctl restart zabbix-agent

7. Zabbix模板配置

Zabbix模板用于快速配置监控项和触发器。

7.1 导入模板

# 访问Zabbix Web界面
# 1. 点击左侧菜单的”Configuration” -> “Templates”
# 2. 点击”Import”
# 3. 选择模板文件(如Template OS Linux)
# 4. 点击”Import”

# 应用模板到主机
# 1. 点击左侧菜单的”Configuration” -> “Hosts”
# 2. 选择主机,点击”Templates”
# 3. 搜索并选择模板
# 4. 点击”Add”
# 5. 点击”Update”

7.2 创建自定义模板

# 访问Zabbix Web界面
# 1. 点击左侧菜单的”Configuration” -> “Templates”
# 2. 点击”Create template”
# 3. 填写模板名称和描述
# 4. 点击”Add”

# 添加监控项
# 1. 选择模板,点击”Items”
# 2. 点击”Create item”
# 3. 填写监控项名称、键值、单位等
# 4. 点击”Add”

# 添加触发器
# 1. 选择模板,点击”Triggers”
# 2. 点击”Create trigger”
# 3. 填写触发器名称、表达式等
# 4. 点击”Add”

8. Zabbix告警配置

Zabbix告警用于通知管理员系统异常。

8.1 配置告警媒介

# 访问Zabbix Web界面
# 1. 点击左侧菜单的”Administration” -> “Media types”
# 2. 点击”Create media type”
# 3. 选择媒介类型(如Email)
# 4. 填写SMTP服务器信息
# 5. 点击”Add”

# 配置用户媒介
# 1. 点击左侧菜单的”Administration” -> “Users”
# 2. 选择用户,点击”Media”
# 3. 点击”Add”
# 4. 选择媒介类型,填写联系方式
# 5. 点击”Add”

8.2 配置告警动作

# 访问Zabbix Web界面
# 1. 点击左侧菜单的”Configuration” -> “Actions”
# 2. 点击”Create action”
# 3. 填写动作名称和条件
# 4. 配置操作(如发送邮件)
# 5. 点击”Add”

# 测试告警
# 1. 手动触发一个告警
# 2. 检查邮件是否收到

9. Zabbix安全配置

Zabbix提供了多种安全功能,包括认证、授权、加密等。

9.1 认证配置

# 访问Zabbix Web界面
# 1. 点击左侧菜单的”Administration” -> “Users”
# 2. 点击”Create user”
# 3. 填写用户名、密码、权限等
# 4. 点击”Add”

# 配置用户组
# 1. 点击左侧菜单的”Administration” -> “User groups”
# 2. 点击”Create user group”
# 3. 填写组名称和权限
# 4. 点击”Add”

9.2 加密配置

# 生成TLS证书
# openssl req -newkey rsa:2048 -nodes -keyout /etc/zabbix/zabbix_server.key -x509 -days 365 -out /etc/zabbix/zabbix_server.crt

# 配置Zabbix服务器
# vi /etc/zabbix/zabbix_server.conf
TLSCAFile=/etc/zabbix/ca.crt
TLSCertFile=/etc/zabbix/zabbix_server.crt
TLSKeyFile=/etc/zabbix/zabbix_server.key

# 配置Zabbix Agent
# vi /etc/zabbix/zabbix_agentd.conf
TLSCAFile=/etc/zabbix/ca.crt
TLSCertFile=/etc/zabbix/zabbix_agent.crt
TLSKeyFile=/etc/zabbix/zabbix_agent.key

# 重启服务
# systemctl restart zabbix-server zabbix-agent

10. Zabbix性能优化

在生产环境中,需要对Zabbix进行性能优化以提高监控效率。from:www.itpux.com

10.1 服务器性能优化

# 编辑Zabbix服务器配置
# vi /etc/zabbix/zabbix_server.conf

# 缓存配置
CacheSize=16G
HistoryCacheSize=8G
HistoryIndexCacheSize=4G
TrendCacheSize=4G
ValueCacheSize=8G

# 进程配置
StartPollers=50
StartPollersUnreachable=20
StartTrappers=20
StartPingers=20
StartDiscoverers=20

# 超时配置
Timeout=30

# 重启Zabbix服务器
# systemctl restart zabbix-server

10.2 数据库性能优化

# 编辑PostgreSQL配置
# vi /var/lib/pgsql/data/postgresql.conf

# 内存配置
shared_buffers = 16GB
work_mem = 128MB
maintenance_work_mem = 4GB

# 查询优化
effective_cache_size = 48GB
random_page_cost = 1.0

# 写入优化
temp_buffers = 1GB
max_wal_size = 8GB
min_wal_size = 2GB

# 并发配置
max_connections = 500

# 重启PostgreSQL
# systemctl restart postgresql

# 定期优化数据库
# crontab -e
0 0 * * * su – postgres -c “psql -d zabbix -c ‘VACUUM ANALYZE;'”

10.3 监控项优化

# 优化监控项采集频率
# 1. 访问Zabbix Web界面
# 2. 点击左侧菜单的”Configuration” -> “Templates”
# 3. 选择模板,点击”Items”
# 4. 调整监控项的Update interval

# 优化历史数据保留时间
# 1. 访问Zabbix Web界面
# 2. 点击左侧菜单的”Administration” -> “General”
# 3. 点击”Housekeeping”
# 4. 调整历史数据和趋势数据的保留时间

11. Zabbix升级迁移

本节介绍Zabbix的版本升级和数据迁移方法。

11.1 Zabbix版本升级

# 备份Zabbix数据
# su – postgres
$ pg_dump -U zabbix -d zabbix > /backup/zabbix-backup-$(date +%Y%m%d).sql
$ exit

# 停止Zabbix服务
# systemctl stop zabbix-server zabbix-agent

# 升级Zabbix
# dnf clean all
# dnf update zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

# 升级数据库模式
# zcat /usr/share/zabbix-sql-scripts/postgresql/upgrade.sql.gz | psql -U zabbix -d zabbix

# 启动Zabbix服务
# systemctl start zabbix-server zabbix-agent

# 验证升级
# zabbix_server –version
zabbix_server (Zabbix) 6.4.1
Revision 2435243c01 10 June 2023, compilation time: June 10 2023 12:34:56

# 访问Zabbix Web界面
# 打开浏览器访问 http://zabbix.fgedu.net.cn

11.2 Zabbix数据迁移

# 备份原Zabbix数据
# su – postgres
$ pg_dump -U zabbix -d zabbix > /backup/zabbix-backup.sql
$ exit

# 在新服务器上恢复数据
# su – postgres
$ psql -U postgres -c “CREATE USER zabbix WITH PASSWORD ‘password’;”
$ psql -U postgres -c “CREATE DATABASE zabbix OWNER zabbix;”
$ psql -U zabbix -d zabbix -f /backup/zabbix-backup.sql
$ psql -U zabbix -d zabbix -c “CREATE EXTENSION pg_trgm;”
$ psql -U zabbix -d zabbix -c “CREATE EXTENSION btree_gist;”
$ exit

# 安装Zabbix
# 重复安装步骤

# 启动Zabbix服务
# systemctl start zabbix-server zabbix-agent

# 验证迁移
# 访问Zabbix Web界面,检查数据是否完整

12. Zabbix备份恢复

本节介绍Zabbix的备份和恢复方法。

12.1 Zabbix备份

# 创建备份脚本
# vi /data/zabbix/scripts/backup.sh

#!/bin/bash
BACKUP_DIR=”/backup/zabbix”
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份数据库
su – postgres -c “pg_dump -U zabbix -d zabbix > $BACKUP_DIR/zabbix-backup-$DATE.sql”

# 备份配置文件
cp /etc/zabbix/zabbix_server.conf $BACKUP_DIR/zabbix_server-$DATE.conf
cp /etc/zabbix/zabbix_agentd.conf $BACKUP_DIR/zabbix_agentd-$DATE.conf
cp -r /etc/nginx/conf.d $BACKUP_DIR/nginx-conf-$DATE

# 清理旧备份(保留7天)
find $BACKUP_DIR -type f -mtime +7 -exec rm -f {} \;

# 添加执行权限
# chmod +x /data/zabbix/scripts/backup.sh

# 添加定时任务
# crontab -e
0 0 * * * /data/zabbix/scripts/backup.sh

12.2 Zabbix恢复

# 停止Zabbix服务
# systemctl stop zabbix-server zabbix-agent

# 恢复数据库
# su – postgres
$ psql -U postgres -c “DROP DATABASE zabbix;”
$ psql -U postgres -c “CREATE DATABASE zabbix OWNER zabbix;”
$ psql -U zabbix -d zabbix -f /backup/zabbix/zabbix-backup-20230405.sql
$ psql -U zabbix -d zabbix -c “CREATE EXTENSION pg_trgm;”
$ psql -U zabbix -d zabbix -c “CREATE EXTENSION btree_gist;”
$ exit

# 恢复配置文件
# cp /backup/zabbix/zabbix_server-20230405.conf /etc/zabbix/zabbix_server.conf
# cp /backup/zabbix/zabbix_agentd-20230405.conf /etc/zabbix/zabbix_agentd.conf
# cp -r /backup/zabbix/nginx-conf-20230405/* /etc/nginx/conf.d/

# 启动Zabbix服务
# systemctl start zabbix-server zabbix-agent

# 验证恢复
# systemctl status zabbix-server
# 访问Zabbix Web界面,检查数据是否完整

12.3 Zabbix监控脚本

# 创建Zabbix监控脚本
# vi /data/zabbix/scripts/monitor.sh

#!/bin/bash
LOG_FILE=”/var/log/zabbix_monitor.log”
ALERT_EMAIL=”admin@fgedu.net.cn”

check_zabbix_status() {
echo “$(date): Checking zabbix server status…” >> $LOG_FILE
status=$(systemctl status zabbix-server | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): Zabbix server is not running” >> $LOG_FILE
echo “Zabbix server is not running” | mail -s “Zabbix Alert” $ALERT_EMAIL
systemctl start zabbix-server
else
echo “$(date): Zabbix server is running” >> $LOG_FILE
fi
}

check_zabbix_web() {
echo “$(date): Checking zabbix web…” >> $LOG_FILE
status=$(curl -s -o /dev/null -w “%{http_code}” http://zabbix.fgedu.net.cn)
if [ “$status” = “200” ]; then
echo “$(date): Zabbix web: OK” >> $LOG_FILE
else
echo “$(date): Zabbix web: FAILED” >> $LOG_FILE
echo “Zabbix web failed” | mail -s “Zabbix Alert” $ALERT_EMAIL
fi
}

check_postgresql_status() {
echo “$(date): Checking postgresql status…” >> $LOG_FILE
status=$(systemctl status postgresql | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): PostgreSQL is not running” >> $LOG_FILE
echo “PostgreSQL is not running” | mail -s “Zabbix Alert” $ALERT_EMAIL
systemctl start postgresql
else
echo “$(date): PostgreSQL is running” >> $LOG_FILE
fi
}

check_nginx_status() {
echo “$(date): Checking nginx status…” >> $LOG_FILE
status=$(systemctl status nginx | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): Nginx is not running” >> $LOG_FILE
echo “Nginx is not running” | mail -s “Zabbix Alert” $ALERT_EMAIL
systemctl start nginx
else
echo “$(date): Nginx is running” >> $LOG_FILE
fi
}

main() {
check_zabbix_status
check_zabbix_web
check_postgresql_status
check_nginx_status
}

main

# 添加执行权限
# chmod +x /data/zabbix/scripts/monitor.sh

# 添加定时任务
# crontab -e
*/15 * * * * /data/zabbix/scripts/monitor.sh

生产环境建议:定期备份Zabbix配置和数据,建议每天执行一次完整备份。监控脚本建议每15分钟执行一次,及时发现并处理问题。恢复操作前务必停止Zabbix服务,避免数据不一致。

通过以上步骤,Zabbix安装配置、性能优化、升级迁移、备份恢复等内容已全部完成。Zabbix作为企业级监控系统,能够高效地监控服务器、网络设备和应用程序,是企业IT运维的重要工具。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息