运维 2025-05-27

zabbix搭建及维护

阅读次数 61 评论数 0

在企业网络中设备越来越多,服务器也越来越多,Zabbix 是一款稳定、高性能、开源的监控解决方案,支持多种网络协议和设备,适合用来监控服务器、网络设备、数据库、中间件等多类资源。

一、Zabbix 简介

Zabbix 是基于 C 和 PHP 编写的企业级分布式监控系统,主要特性包括:

  • 支持 SNMP、IPMI、JMX、Agent 等多种采集方式

  • 多维度告警策略,可对接邮件、微信、企业微信、钉钉等通道

  • 丰富的图表和仪表盘功能

  • 支持自动发现(主机、服务)和自动注册

  • 支持多种数据库后端(MySQL/PostgreSQL)

二、Zabbix 部署

环境准备

  • 操作系统:debain 12 推荐使用LTS系统

  • 数据库:MariaDB 10.11(Debian 默认)

  • Zabbix版本:建议使用官方长期支持版(LTS),如 6.0 LTS(最新版7.0)

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 设置主机名(可选)

sudo hostnamectl set-hostname zabbix-server

二、安装 Zabbix Server

1. 添加 Zabbix 官方仓库

wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb

sudo dpkg -i zabbix-release_6.4-1+debian12_all.deb

sudo apt update

2. 安装 Zabbix Server + Frontend + MariaDB + Nginx + PHP-FPM

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mariadb-server php-fpm php-mysql

三、配置数据库

一.安全初始化 MariaDB(可选)

sudo mysql_secure_installation

2. 创建数据库和用户

sudo mysql -uroot -p

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

CREATE USER zabbix@localhost IDENTIFIED BY 'zabbix_password';

GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;

FLUSH PRIVILEGES;

EXIT;

3. 导入初始架构

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

四、配置 Zabbix Server

编辑配置文件:

sudo vim /etc/zabbix/zabbix_server.conf

修改数据库密码项:

DBPassword=zabbix_password

五、配置 PHP 前端

根据默认安装路径编辑 PHP 设置:

sudo nano /etc/zabbix/apache.conf

确认时区设置:

php_value date.timezone Asia/Shanghai

六、启动服务

sudo systemctl restart zabbix-server zabbix-agent nginx

sudo systemctl enable zabbix-server zabbix-agent nginx

七、Web 前端初始化

  1. 打开浏览器访问:http://xxxxxx/zabbix

  2. 默认账号密码:用户名:admin 密码:zabbix

  3. 登录后修改密码

二、添加主机监控项

1. 安装 Zabbix Agent(在被监控主机)

sudo apt install zabbix-agent

编辑 /etc/zabbix/zabbix_agentd.conf

Server=<ZABBIX_SERVER_IP>

Hostname=<被监控主机名>

2. 启动 agent 服务

sudo systemctl enable zabbix-agent

sudo systemctl restart zabbix-agent

3. 在 Web 界面添加主机

配置 → 主机 → 创建主机

  • 指定主机名、IP

  • 添加模板

三、邮件告警配置(使用 Gmail 作为例子)

1. 设置邮箱

管理 → 媒体类型 → Email

设置 SMTP 信息:

项目

配置

SMTP server

smtp.gmail.com

SMTP port

587

SMTP helo

example.com

SMTP email

[email protected]

Security

STARTTLS

Authentication

Plain

Username

[email protected]

Password

应用专用密码(非普通 Gmail 密码)

2. 配置用户接收媒体

管理 → 用户 → Admin → 媒体

添加邮箱,启用接收警报。

3. 配置动作

配置 → 动作 → 创建动作

条件:触发严重级别告警

操作:发送到用户 Email


四、企业微信告警配置

1. 获取企业微信 API 信息

  • 企业 ID(CorpID)

  • 应用 Secret(应用管理页面)

  • AgentID(应用 ID)

2. 下载微信报警脚本

cd /usr/lib/zabbix/alertscripts wget https://raw.githubusercontent.com/itsunboy/zabbix-wechat-alert/master/wechat.py chmod +x wechat.py

3. 配置 wechat.py(可根据你的 CorpID 和 Secret 修改脚本)

也可以将变量传入命令行,简化脚本部署。

4. 设置媒体类型

管理 → 媒体类型 → 创建媒体类型

  • 类型:脚本

  • 脚本名称:wechat.py

  • 脚本参数:

    1. {ALERT.SENDTO}

    2. {ALERT.SUBJECT}

    3. {ALERT.MESSAGE}

用户中添加媒体,设置 Send to 为接收者微信ID(如 @all)

四、自动发现网络设备(SNMP)

Zabbix 支持通过 SNMP 自动发现网络设备,例如交换机、路由器、防火火墙等

一、准备工作

1. 安装 SNMP 工具(Zabbix Server 端)

sudo apt install snmp snmp-mibs-downloader -y

编辑 /etc/snmp/snmp.conf,取消注释以加载 MIB 名称(可选):

sudo vim /etc/snmp/snmp.conf

注释掉 mibs : 行:#mibs :

二、配置网络设备的 SNMP

以交换机为例,开启 SNMPv2 并设置:

项目

示例值

SNMP 版本

SNMPv2c

Community

public(或自定义)

允许访问 IP

Zabbix Server IP

端口

默认 161 UDP

三、Zabbix 配置 SNMP 自动发现

1. 添加 SNMP 主机模板

路径:配置 → 模板 → 模板导入

Zabbix 内置许多 SNMP 模板,例如:

  • Template Net Network Generic Device SNMPv2

  • Template Net Cisco SNMPv2

  • Template Net HP SNMPv2

  • Template SNMP Interfaces

2. 创建主机发现规则

路径:配置 → 自动发现 → 创建规则

配置如下:

项目

设置

名称

发现 SNMP 网络设备

接口

Agent interface 或 SNMP

IP 范围

192.168.1.1-254 或子网段 192.168.1.0/24

检查类型

SNMPv2 → SNMP 可达性

周期

3600s(1 小时,可根据需求设置)

3. 创建自动注册动作(可选)

路径:配置 → 动作 → 自动注册动作

条件

  • 已通过自动发现添加的主机

操作

  • 链接模板 → Template Net Network Generic Device SNMPv2

  • 添加主机到主机群组(如 Network Devices)

四、测试 SNMP 是否可达

在 Zabbix Server 上运行:

snmpwalk -v2c -c public [交换机IP]

若输出大量信息,说明设备配置正确。


五、SNMP 模板支持的内容

Template Net Network Generic Device SNMPv2 为例,它能自动发现并监控:

  • 接口名称、速率、状态

  • 接口流量(in/out)

  • SNMP uptime

  • CPU 使用率(部分设备支持)


六、注意事项

  • 确保网络设备的 SNMP 端口 161/UDP 开放 且白名单包含 Zabbix Server。

  • SNMP 的性能和稳定性与设备支持程度有关。

  • 如有特殊 MIB,可以上传到 /usr/share/snmp/mibs/ 目录,并重新加载。


成功配置后

你将可以在 Zabbix 中看到自动添加的 SNMP 网络设备,图表中显示接口流量、设备状态等信息。

0%