基本概念与架构

Zabbix 采用 C/S 架构,主要组件包括 Zabbix Server、Zabbix Agent、数据库、Zabbix Web 界面和 Zabbix Proxy(可选)。Zabbix Server 是核心组件,负责收集 Agent 采集的数据并持久化存储到数据库;Zabbix Agent 部署在被监控主机上,采集监控数据并发送到 Server;数据库用于存储采集到的数据;Zabbix Web 界面提供图形化界面,方便用户进行监控配置和查看数据;Zabbix Proxy 用于分布式环境,分担 Server 负载。

登录 Web 界面

在浏览器中输入 Zabbix 服务器的 IP 地址或域名,后面加上/zabbix,例如http://your_server_ip/zabbix。使用初始用户名Admin和密码zabbix进行登录。

添加主机

  1. 在被监控主机上安装 Zabbix Agent。以 CentOS 系统为例,执行命令yum install -y zabbix-agent
  2. 编辑 Agent 配置文件/etc/zabbix/zabbix_agentd.conf,修改Server(Zabbix Server 的 IP 地址或域名)、ServerActive(主动模式下 Zabbix Server 的 IP 地址或域名)和Hostname(被监控主机名)等参数。
  3. 启动 Agent 服务并设置开机自启,执行命令systemctl start zabbix-agentsystemctl enable zabbix-agent
  4. 在 Zabbix Web 界面中,进入 “Configuration”→“Hosts”,点击 “Create host”。填写主机名称、群组、接口(Agent 接口,IP 为被监控主机 IP),在 “Templates” 选项卡中关联模板(如 “Template OS Linux”),然后点击 “Add” 保存。

自定义监控项

  1. 在被监控主机上编写自定义脚本,例如监控 TCP 连接状态的脚本/etc/zabbix/zabbix_agentd.d/tcp_state.sh,内容如下:
#!/bin/bash
netstat -an | grep "$1" | wc -l
  1. 编辑 Agent 配置文件/etc/zabbix/zabbix_agentd.conf,添加自定义参数,例如UserParameter=tcp_state(*),/etc/zabbix/zabbix_agentd.d/tcp_state.sh $1
  2. 重启 Agent 服务,执行命令systemctl restart zabbix-agent
  3. 在 Web 界面中,进入 “Configuration”→“Templates”,选择或创建模板,点击 “Items”→“Create item”,填写名称、键值(如tcp_state(ESTABLISHED))、类型等信息,点击 “Add” 保存。

配置触发器与告警

  1. 创建触发器:进入 “Configuration”→“Templates”,选择模板,点击 “Triggers”→“Create trigger”,填写名称、表达式(如{Template OS Linux:system.cpu.load(all,avg1).last()}>5),设置严重性(如 “Warning”),点击 “Add” 保存。
  2. 配置告警通知:
    • 进入 “Administration”→“Media types”,点击 “Email”(或其他通知方式),配置 SMTP 服务器等信息。
    • 进入 “Administration”→“Users”,选择用户,点击 “Media”→“Add”,选择通知方式(如 “Email”),填写接收地址,点击 “Add” 保存。

数据可视化

  1. 仪表板:Zabbix 的仪表板是监控中心,可以自定义添加小组件,如主机状态、性能指标图表、问题列表等。进入 “Monitoring”→“Dashboard”,点击 “Create dashboard” 或编辑现有仪表板,添加所需的组件。
  2. 图形:可以创建简单图形、自定义图形等。进入 “Monitoring”→“Graphs”,点击 “Create graph”,选择监控项、时间范围等参数,创建图形。
  3. 网络拓扑图:进入 “Monitoring”→“Topology”,点击 “Create topology”,添加主机和链接,配置网络拓扑图的显示样式和指标。

其他功能

  1. 维护期:当需要对某些主机或设备进行维护时,可以设置维护期,避免在维护期间产生不必要的告警。进入 “Configuration”→“Maintenance”,点击 “Create maintenance”,填写相关信息,如维护期名称、时间范围、影响的主机或主机组等。
  2. 数据导出:Zabbix 支持将数据导出到文件或流式传输到外部系统。进入 “Administration”→“Export”,选择要导出的数据类型(如主机、模板、监控项等),设置导出格式和其他参数,点击 “Export” 即可。
  3. 分布式监控:如果监控环境较大,可以使用 Zabbix Proxy 进行分布式监控。在 Proxy 服务器上安装 Zabbix Proxy,配置与 Zabbix Server 的连接,然后在 Zabbix Server 上配置 Proxy 相关信息,如 Proxy 的 IP 地址、端口等。

若被监控的主机是 Windows 系统,可参考以下步骤进行操作:

安装 Zabbix Agent

  • 下载 Agent:根据 Windows 系统的版本(32 位或 64 位),从 Zabbix 官网下载对应的 Zabbix Agent 安装包。例如,Zabbix 4.0 及以上版本提供了 Windows 的 MSI 安装包,可直接下载。
  • 安装 Agent:运行下载的 MSI 安装程序,按照安装向导进行操作,可选择默认安装路径或自定义路径。安装完成后,Zabbix Agent 会自动添加到 Windows 系统服务中并自动启动。
  • 配置 Agent:打开 Zabbix Agent 的配置文件zabbix_agentd.conf,通常位于C:\Program Files\Zabbix Agent目录下。如果使用被动模式,需将Server参数设置为 Zabbix Server 的 IP 地址或域名;如果使用主动模式,需将ServerActive参数设置为 Zabbix Server 的 IP 地址或域名,同时将Hostname参数设置为该 Windows 主机在 Zabbix 中显示的名称。

在 Zabbix Web 界面添加主机

  • 登录 Zabbix Web 界面,进入 “Configuration”→“Hosts”,点击 “Create host”。
  • 在 “Host” 选项卡中,填写主机名称,该名称应与 Zabbix Agent 配置文件中的Hostname参数一致;选择主机所属的主机组;在 “Interfaces” 选项卡中,添加 Agent 类型接口,输入 Windows 主机的 IP 地址或 DNS 名称,端口默认使用 10050。
  • 在 “Templates” 选项卡中,根据监控需求选择模板。如果是被动模式,可选择 “Windows by Zabbix agent” 模板;如果是主动模式,可选择 “Windows by Zabbix agent active” 模板,然后点击 “Add” 保存。

验证连接

  • 在 Zabbix Server 上,可以使用zabbix_get命令验证能否获取到 Windows 主机的数据。例如,执行zabbix_get -s <Windows主机IP地址> -p 10050 -k "vfs.fs.size(c:,total)",如果能正常返回数值,说明 Zabbix Server 与 Windows 主机上的 Zabbix Agent 连接正常。
  • 在 Zabbix Web 界面中,进入 “Monitoring”→“Hosts”,选择刚添加的 Windows 主机,点击 “Latest data”,查看是否有获取到的监控数据。如果数据正常显示,说明 Windows 主机已成功添加到 Zabbix 监控系统中。

Zabbix Web 设置中文主要有以下步骤:

  1. 检查并安装中文语言环境:
    • 在服务器上,使用命令locale -a | grep "zh_CN"检查是否已安装中文语言包。如果输出为空,则表示未安装。
    • 根据服务器操作系统类型安装中文包。对于 CentOS 8,执行命令dnf -y install glibc-langpack-zh.x86_64;对于 CentOS 7,执行命令yum groupinstall chinese - support - y;对于 Ubuntu,执行命令apt - get install language - pack - zh* - y
  2. 开启 Zabbix 对中文的支持:
    • 编辑 Zabbix 的 php 源文件/usr/share/zabbix/include/locales.inc.php(不同版本路径可能略有不同)。
    • 找到'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),,将display的值从false改为true
  3. 设置 Zabbix Web 界面语言:
    • 登录 Zabbix Web 界面,点击右上角的用户头像或类似小人的设置图标,选择 “Profile”。
    • 在 “Language” 选项中,从下拉菜单中选择 “Chinese(zh_CN)”。
    • 点击 “Update” 按钮,刷新页面后,Zabbix Web 界面将显示为中文。

如果设置中文后出现图表乱码问题,可参考以下方法解决:

  1. 从 Windows 电脑的C:\Windows\Fonts目录中选择一个中文字体,如楷体SIMKAI.TTF,将其复制到服务器上。
  2. 查找 Zabbix 字体所在目录,通常为/usr/share/zabbix/assets/fonts
  3. 进入该目录,备份原有字体文件,如mv graphfont.ttf graphfont.ttf.bak
  4. 将复制过来的中文字体文件重命名为graphfont.ttf,即mv SIMKAI.TTF graphfont.ttf
  5. 编辑/usr/share/zabbix/include/defines.inc.php文件,将define('ZBX_GRAPH_FONT_NAME', 'graphfont');改为define('ZBX_GRAPH_FONT_NAME','simkai');
  6. 重启 Web 服务,如systemctl reload httpdnginx - s reload,然后刷新 Zabbix Web 页面。

要将 Zabbix 的数据同步到 Grafana 并可视化展示,需通过 Grafana 的 Zabbix 数据源插件 建立连接,实现数据的实时拉取与展示。以下是详细步骤:

一、环境准备

  1. 确保组件版本兼容
    • Grafana 版本:建议 5.0 及以上(支持 Zabbix 插件)。
    • Zabbix 版本:需与 Grafana 的 Zabbix 插件版本兼容(插件官网会标注支持的 Zabbix 版本,如 Zabbix 5.0+)。
    • 网络连通性:Grafana 服务器需能访问 Zabbix Server 的 API 接口(默认端口 80/443,取决于 Zabbix Web 的部署)。

二、安装 Grafana 的 Zabbix 数据源插件

Grafana 通过插件连接 Zabbix,需先安装官方推荐的 Zabbix 插件alexanderzobnin-zabbix-app)。

方法 1:通过 Grafana CLI 安装(推荐)

登录 Grafana 服务器,执行以下命令:

# 进入Grafana插件目录(默认路径,根据实际安装调整)
cd /var/lib/grafana/plugins

# 安装Zabbix插件
grafana-cli plugins install alexanderzobnin-zabbix-app

# 重启Grafana服务使插件生效
systemctl restart grafana-server
方法 2:手动下载安装(适用于无网络环境)
  1. Grafana 插件市场 下载 Zabbix 插件的 ZIP 包。
  2. 将 ZIP 包解压到 Grafana 插件目录(如/var/lib/grafana/plugins/alexanderzobnin-zabbix-app)。
  3. 重启 Grafana 服务:systemctl restart grafana-server

三、在 Grafana 中配置 Zabbix 数据源

  1. 启用 Zabbix 插件
    • 登录 Grafana Web 界面(默认地址:http://grafana-ip:3000,默认账号admin/admin)。
    • 左侧菜单点击 Configuration(齿轮图标)→ Plugins,搜索 “Zabbix”,点击 “Enable” 启用插件。
  2. 添加 Zabbix 数据源
    • 左侧菜单点击 Configuration → Data sources → Add data source,搜索 “Zabbix” 并选择。
    • 配置 Zabbix 连接参数:
      • Name:自定义名称(如 “Zabbix-DB”)。
      • URL:Zabbix Server 的 API 地址(即 Zabbix Web 的访问地址,如http://zabbix-ip/zabbix/api_jsonrpc.php)。
      • Access:选择 “Server(默认)”(Grafana 服务器直接访问 Zabbix API)。
      • Zabbix API details:
        • Username:Zabbix 的登录账号(如Admin)。
        • Password:Zabbix 的登录密码(如zabbix)。
      • 其他参数保持默认,点击 Save & test,显示 “Data source is working” 即配置成功。

四、在 Grafana 中创建 Zabbix 数据面板

配置完数据源后,即可通过 Grafana 的面板(Dashboard)展示 Zabbix 数据。

1. 新建面板
  • 左侧菜单点击 Create → Dashboard → Add a new panel
2. 配置数据查询
  • 在面板编辑页,Data source 选择已配置的 Zabbix 数据源(如 “Zabbix-DB”)。
  • 点击Query区域的 “Select metric”,通过下拉菜单选择 Zabbix 的监控项:
    • 步骤:Host groups → Host → Application → Item(例如:选择 “Linux servers” 主机组 → “web-server” 主机 → “CPU” 应用集 → “CPU idle time” 监控项)。
  • 调整时间范围(右上角)、数据聚合方式(如 “Average”“Max”)等。
3. 自定义图表样式
  • Visualization:选择图表类型(如折线图、柱状图、仪表盘等)。
  • Panel title:设置面板名称(如 “CPU 使用率趋势”)。
  • 调整坐标轴、图例、颜色等样式,点击右上角 Apply 保存面板。

五、导入现成的 Zabbix 模板(可选)

Grafana 社区提供了许多现成的 Zabbix 监控模板(如服务器、网络设备、数据库等),可直接导入使用:

  1. 访问 Grafana 模板市场,搜索需要的模板(如 “Zabbix Server Monitoring”),复制模板 ID。
  2. 在 Grafana 中,左侧菜单点击 Dashboard → Import,输入模板 ID,点击 “Load”。
  3. 选择 Zabbix 数据源,点击 “Import” 完成导入,即可直接使用模板中的图表。

六、常见问题解决

  1. “Data source is not working” 错误

    • 检查 Zabbix API 地址是否正确(必须包含api_jsonrpc.php)。
    • 确认 Zabbix 账号密码正确,且有足够权限(至少 “Viewer” 角色)。
    • 检查 Grafana 服务器与 Zabbix Server 的网络连通性(如防火墙是否放行 80/443 端口)。
  2. 数据查询无结果

    • 确认 Zabbix 中该监控项有历史数据(在 Zabbix Web 的 “Latest data” 中验证)。
    • 检查 Grafana 的时间范围是否包含 Zabbix 数据的时间区间。
  3. 图表中文乱码

    • 替换 Grafana 的默认字体为中文字体(如 “SimHei”):

      1. 将 Windows 字体simhei.ttf上传到 Grafana 字体目录(如/usr/share/grafana/public/fonts)。

      2. 编辑 Grafana 配置文件/etc/grafana/grafana.ini,在[plugins]下添加:

        [plugins]
        ; 字体路径
        default_font = simhei
        
      3. 重启 Grafana 服务:systemctl restart grafana-server

通过以上步骤,即可实现 Zabbix 数据在 Grafana 中的同步与可视化,利用 Grafana 更丰富的图表样式和交互功能展示监控数据。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐