Ubuntu Zabbix 安装部署及简单使用

一、Zabbix Server安装部署

Zabbix Server 是核心控制组件,是整个监控系统的 "大脑"。主要作用有以下几点:

  • 调度监控任务,接收 Agent/Proxy 上报的监控数据。

  • 存储监控规则、分析数据阈值、触发告警(如邮件、短信)。

  • 管理所有子组件的通信与协同。

1、定制软件源

获取最新版本的 zabbix 软件源

bash 复制代码
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
bash 复制代码
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb

查看软件源配置

更新软件源

2、安装服务端

安装 zabbix server 和 前端工具以及代理 agent

bash 复制代码
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

3、MySQL 数据库环境定制

安装 mysql 数据库

bash 复制代码
apt install mysql-server -y

创建数据库并配置相关用户

sql 复制代码
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

使用默认的 sql 文件,创建 zabbix 的数据库环境

sql 复制代码
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p'zabbix' zabbix

检测效果

4、Zabbix 数据源配置

为 Zabbix server 配置数据库

5、Nginx 环境定制

查看 nginx 配置

删除默认的 nginx 首页配置文件

定制zabbix的配置文件,开启 80 端口监听

6、PHP 环境定制

修改 php 配置,添加时区

bash 复制代码
php_value[date.timezone] = Asia/Shanghai

7、重启相关服务

重启相关服务,并设置为开机自启动

bash 复制代码
systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm

检测效果

8、web配置

浏览器访问 Zabbix server 的 web 地址 http://10.0.0.112

主机安装中文语言包,重启 zabbix 相关服务后重新打开 web 页面,才能修改语言为中文,否则无法选择

bash 复制代码
apt -y install language-pack-zh-hans

选择简体中文,点击下一步

确保必要条件都是 OK,点击下一步

配置数据库信息,点击下一步。(因为 MySQL 和 Zabbix Server 在同一台主机上,所以此部的 host 也可以设置为 127.0.0.1。)

设置主机名称,点击下一步

确认配置汇总,点击下一步

点击完成,进入 zabbix 登录界面

输入默认的用户名"Admin"及默认密码"zabbix",点击登录

进入到 zabbix 的 web 首页

9、中文显示异常解决

图形界里的中文字体显示异常,需要修改字符集

查看默认字符集

bash 复制代码
grep -ni ZBX_FONT_NAME /usr/share/zabbix/include/defines.inc.php

将中文字体文件上传到 zabbix 字体目录下,改名为 graphfont.ttf

再次查看页面,中文正常显示

10、地图显示异常解决

仪表盘地理地图无法正常显示

点击管理-常规-地理地图,修改成高德地图

bash 复制代码
https://webrd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}

返回仪表板,地图可以正常加载

修改初始化地点,点击地理地图右上角的齿轮,按照 "维度,经度,缩放比例" 的格式输入并保存。(本次采用天安门坐标:39.908692,116.397477,缩放级别为6)

也可以修改主机地理坐标

点击 资产记录**→**主机,点击主机名 zabbix server,点击 配置 主机,点击资产记录,修改位置经纬度,点击更新

地理地图中即可看到主机的位置信息

二、Zabbix Agent 安装部署

Zabbix 常用且实用的两种监控方式是 Agent 监控SNMP 监控,分别适配 "可安装客户端的主机" 和 "无客户端的网络 / 嵌入式设备" 场景。

Agent 监控

  • 原理:在被监控主机上部署 Zabbix Agent 程序,通过主动拉取或被动接收指令,采集主机本地的系统资源、应用进程等数据,再上报给 Zabbix Server/Proxy。

  • 作用:

    • 主动 / 被动采集本地资源数据(CPU、内存、磁盘、进程等)。

    • 将采集到的原始数据上报给 Server 或 Proxy。

    • 支持执行 Server 下发的远程命令(如重启服务)。

  • 适用场景:

    • 需深度监控的 Linux、Windows、macOS 服务器(如采集 CPU 负载、内存使用、磁盘 IO、本地进程状态等)。

    • 可自主安装软件的业务主机(如 Web 服务器、数据库服务器、应用服务器)。

    • 对监控数据精度要求高、采集频率需灵活调整的场景。

SNMP 监控

  • 原理:基于 SNMP(简单网络管理协议),无需在被监控设备上安装 Agent,通过设备内置的 SNMP 服务读取 MIB(管理信息库)中的标准化数据。

  • 适用场景:

    • 网络设备(路由器、交换机、防火墙、负载均衡器等),核心监控端口流量、接口状态、设备负载。

    • 嵌入式设备(打印机、摄像头、物联网终端等),这类设备通常无法安装 Agent 软件。

    • 无需深度监控,仅需获取设备基础运行状态的场景。

1、定制软件源

获取最新版本的 zabbix 软件源

bash 复制代码
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
bash 复制代码
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb

更新软件源

2、安装 Agent

bash 复制代码
apt install -y zabbix-agent

查看默认配置

bash 复制代码
grep -Env '#|^$' /etc/zabbix/zabbix_agentd.conf

3、定制 Agent 配置

指定 zabbix 服务端(Server)的 ip,注释 ServerActive(该配置是 zabbix 服务端的配置),修改客户端主机名称(Hostname)

4、重启服务

重启服务并设置为开机自启动

bash 复制代码
systemctl restart zabbix-agent.service
systemctl enable zabbix-agent.service

检测效果

bash 复制代码
netstat -tnulp | grep zabbix

5、web配置

创建主机组资源:点击左侧菜单,点击数据采集,点击主机群组

设置主机组名成称,点击添加

创建主机资源:点击左侧菜单,点击数据采集,点击主机,点击右上角创建主机

为了能正常监控,点击模版选择,输入 Templates,选择 Templates/Operating systems,选择Linux by Zabbix agent

填写相关信息,点击添加

检测结果

查看仪表盘

三、基础监控实践

zabbix 的监控告警工作流程为:数据采集→条件判断→通知响应。其中,监控项提供原始数据,触发器定义 "异常规则",告警是规则触发后的最终通知。

  • 监控项:负责采集目标数据(如 CPU 使用率、内存占用),是整个流程的 "数据源头"。

  • 触发器:绑定监控项,设置阈值和判断逻辑(如 "CPU 使用率连续 5 分钟≥80%"),是 "判断开关"。

  • 告警:触发器触发后,系统生成的通知(如邮件、短信),是 "响应结果"。

例如,当需要监控 CPU 使用率过高并触发告警,具体工作流程如下:

  1. 配置监控项:在 Zabbix 中给被监控主机添加 "CPU 使用率" 监控项,设置采集频率为 1 分钟 1 次。作用:每 1 分钟自动采集该主机的 CPU 使用率数据(如 70%、85%、90% 等),并上报给 Zabbix Server。

  2. 配置触发器:给这个 CPU 监控项绑定触发器,设置规则:"CPU 使用率连续 5 分钟≥80%"。作用:Zabbix Server 实时比对监控项上报的数据,一旦满足 "连续 5 分钟超 80%" 的条件,触发器立刻 "触发"。

  3. 触发告警:触发器触发后,按照预设的告警媒介(如邮件、钉钉等),向指定负责人发送通知。

1、自定义监控项

套用模版后会自动生成相关监控项,除了这些内置监控项,还可以自定义监控项,格式如下:

bash 复制代码
UserParameter=<key>,<shell command>;

主机查看 cpu 的1分钟、5分钟、15分钟的平均负载

bash 复制代码
uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $1}'
uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $2}'
uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $3}'

主机 /etc/zabbix/zabbix_agentd.d 目录下创建配置文件

bash 复制代码
UserParameter=cpu.1min,uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $1}'
UserParameter=cpu.5mins,uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $2}'
UserParameter=cpu.15mins,uptime | awk -F ": " '{print $2}'| awk -F ", " '{print $3}'

重启 zabbix agent 服务,让配置文件生效

命令检测结果

bash 复制代码
zabbix_get -s 10.0.0.113 -p 10050 -k "cpu.1min"
zabbix_get -s 10.0.0.113 -p 10050 -k "cpu.5mins"
zabbix_get -s 10.0.0.113 -p 10050 -k "cpu.15mins"

点击左侧菜单,点击数据采集,点击主机右侧的监控项,点击右上角创建监控项

配置相关内容,填写 key 值,完成添加。

依次添加三个监控项后,查看效果

点击左侧菜单的监控,点击最新数据,筛选刚才添加的监控项,查看检查记录

点击图形,查看数据采集的效果图

2、cpu平均负载监控

点击左侧菜单,点击数据采集,点击主机右侧的图形,点击右上角创建图表

监控项选择上节创建的自定义监控项

完善其他配置

点击预览,查看效果图,完成添加

保存后,在监控菜单里选择主机的图形

筛选图形名称,查看图表

3、内存使用率监控

点击左侧菜单,点击数据采集,点击主机右侧的图形,点击右上角创建图表

配置相关监控项

点击上方预览可以看到生成的图形效果

保存后,在监控菜单里选择主机的图形

搜索图形名称,即可看到我们配置的内存使用率图表

四、基础告警实践

1、创建触发器

点击数据采集,点击主机,点击触发器,点击右上角创建触发器

点击表达式添加,配置告警阈值

完善告警级别等配置,并添加

筛选触发器,查看效果

2、触发器测试

图形监控中勾选查看触发器

检测中选择主机对应的图形,可以看到有一条告警,表示触发器已经被触发

3、钉钉告警配置

添加机器人

选择 "自定义(通过webhook接入自定义服务)"

完成相关配置,生成机器人及Webhook

主机测试

钉钉查看测试消息

定制 shell 脚本

bash 复制代码
#!/bin/bash

ACC_TOKEN='d6fb666464923a447886acf978a58224eae18fb4efc73b7d48a959e019706a1c'
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=${ACC_TOKEN}"

# 检查参数数量
check_arguments() {
if [ "$#" -ne 3 ]; then
echo "使用方法: $0 <收信人手机号> <主题> <消息内容>"
exit 1
fi
}


# 构建 JSON 数据
build_json_data() {
local receiver_phone="$1"
local subject="$2"
local message="$3"
cat << EOF
{
"msgtype": "text",
"text": {
"content": "$subject\n$message"
},
"at": {
"atMobiles": ["$receiver_phone"]
}
}
EOF
}


# 发送钉钉消息
send_dingtalk_message() {
local post_url=${WEBHOOK_URL}
local json_data=$(build_json_data "$1" "$2" "$3")
local response=$(curl -s -X POST -H "Content-Type: application/json" -d "$json_data" "${post_url}")
if [ $? -eq 0 ]; then
echo "通知发送成功!"
else
echo "通知发送失败!"
fi
}

# 主函数
main() {
check_arguments "$@"
local receiver_phone="$1"
local subject="$2"
local message="$3"
send_dingtalk_message "$receiver_phone" "$subject" "$message"
}

# 调用主函数
main "$@"

测试脚本

查看效果

4、zabbix 集成钉钉告警

将脚本放到 zabbix 专属目录下并授权

点击左侧菜单,点击告警,点击媒介,点击右上角创建媒介类型

填写脚本信息

测试效果

5、告警用户配置

点击左侧菜单,点击用户,点击用户群组,点击右上角创建用户组

创建钉钉告警用户组 ding users

主机权限添加相关主机群组,权限设置为读写

点击添加,查看效果

点击用户群组 ding users 右侧的用户

点击右上角创建用户,设置用户名及密码,并选择群组

选择报警媒介,类型选择之前创建的钉钉告警,填写收件人信息

查看效果

点击权限,设置为 Super admin role

点击添加,查看效果

6、触发器动作配置

点击左侧菜单,点击告警,点击动作,点击触发器动作

点击右上角创建动作,设置动作名称,选择之前创建的触发器

点击添加,查看效果

点击操作,点击添加操作添加告警人、发送至媒体类型及自定义消息内容

查看效果

点击添加恢复操作,配置和之前类似

点击添加,查看效果

点击添加触发器动作,查看效果

7、告警模拟测试

后台执行 yes > /dev/null & 模拟 cpu 占用

查看问题,已经触发告警动作

查看钉钉消息,收到故障通知

清理后台 yes 进程,使 CPU 平均负载下降,观察故障恢复

查看钉钉消息,收到恢复通知

五、可视化改造实践

1、grafana 软件安装

获取软件

bash 复制代码
apt-get install -y adduser libfontconfig1 musl
bash 复制代码
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_11.5.2_amd64.deb
bash 复制代码
dpkg -i grafana-enterprise_11.5.2_amd64.deb

启动服务

bash 复制代码
systemctl enable --now grafana-server.service

检测效果

bash 复制代码
netstat -tnulp | grep gra

浏览器登录 web 页面 10.0.0.112:3000,默认用户密码都是admin

2、安装 zabbix 插件

获取所有插件

bash 复制代码
grafana-cli plugins list-remote

查看 zabbix 插件信息

bash 复制代码
grafana-cli plugins list-remote|grep zabbix

安装插件

bash 复制代码
grafana-cli plugins install alexanderzobnin-zabbix-app

检测结果

重启服务,让插件生效

bash 复制代码
systemctl restart grafana-server

3、启用插件

进入 grafana,点击左侧菜单 administration,点击 plugins and data,点击 Plugins,搜索 zabbix 插件

点击 zabbix 插件,进入插件详情页面

点击右上角的 Enable,启用插件

4、添加数据源

点击左侧菜单 Connections,点击 Data sources,点击 Add data source

搜索 zabbix,并点击

填写 zabbix url 地址 http://10.0.0.112/api_jsonrpc.php

填写 zabbix 用户名密码

滚动到最下方,点击连接测试

回到最上方,选择 Dashboard 页签

点击三个 dashboard 右侧的 import

点击第二个 Zabbix Template Linux Server,即可看到监控图形

部分监控项没有数据,我们点击编辑,修改对应的监控项的名称

点击右侧 Save dashboard,添加信息后保存,查看效果

同样方式更新 Network 模块,并查看效果

相关推荐
心一信息6 小时前
通过 Grafana 与 Zabbix 实现水暖 / 空调系统控制的详细步骤
zabbix·grafana
yunson_Liu6 小时前
grafana+alertmanager配置sendgrid发送邮箱提示
grafana
!chen3 天前
Zabbix 配置中文界面、监控告警以及Windows、Linux主/被监控模板
linux·windows·zabbix
q***48313 天前
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
spring boot·grafana·prometheus
时空无限3 天前
grafana 切换 org 导致的页面跳转不可访问处理
grafana
wniuniu_3 天前
testground local-grafana 环境排查
grafana
tianshiyeben4 天前
WGCLOUD监控系统使用指南 - 告警消息整理完整版
linux·运维·服务器·系统安全·zabbix
梁正雄5 天前
17、grafana安装
运维·grafana·prometheus·监控
webrtc&ffmpeg_study6 天前
监控平台 Grafana+Prometheus+node_exporter初识
grafana·prometheus