当前位置: 首页 > news >正文

Ubuntu24.04 安装 Zabbix

Ubuntu24.04 安装 Zabbix

环境:

软件版本
Ubuntu24.04.3
Nginx1.24.0
MySQL8.4.6
PHP8.3.6
phpMyAdmin5.2.2
Zabbix7.4.1

LNMP

1. 更新本地软件包索引并升级已安装软件

  • 更新可用软件包列表

  • 把已安装的软件升级到最新版

  • 安装常用工具

sudo apt update && sudo apt -y upgrade
sudo apt -y install curl wget vim unzip net-tools

2. 安装 Nginx Web 服务器

  • 安装 Nginx
  • 设置开机自启
  • 设置开机自启
  • 查看运行状态(按 q 退出)
sudo apt -y install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

3. 安装 MySQL

  1. MySQL APT存储库的下载页面
    MySQL APT存储库的下载页面

    wget https://repo.mysql.com//mysql-apt-config_0.8.34-1_all.deb
    
  2. 安装mySQL APT存储库

    sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
    

    设置MySQL存储库

  3. 使用以下命令从MySQL APT存储库更新包信息(此步骤是必需的):

    sudo apt-get update
    
  4. 使用APT安装MySQL

    sudo apt-get -y install mysql-server
    

    这将安装MySQL服务器的包,以及客户端和数据库公共文件的包。

    在安装过程中,您需要为MySQL安装的根用户提供密码。

    设置MySQL密码
    设置MySQL密码

  5. 启动和关闭MySQL服务

    MySQL服务器在安装后自动启动。您可以使用以下命令检查MySQL服务器的状态:

    sudo systemctl status mysql
    

    如果操作系统启用了systemd,则应该使用标准的systemctl(或者参数相反的服务)命令(如stop、start、status和restart)来管理MySQL服务器服务。默认情况下,mysql服务是启用的,它在系统重新启动时启动。

    一些依赖于本地MySQL包的第三方本地存储库包可能无法与MySQL APT存储库包一起使用,

    不应与它们一起使用;其中包括akonadi后端mysql、handlersocket-mysql-5.5和zoneminder。

  6. 登录MySQL

    mysql -uroot -p
    
  7. 修改密码并设置访问主机

    运行安全初始化脚本(交互式,按提示操作)

    本案例未使用该方法,可略过此步骤

    # 设置 root 密码、删除匿名用户、禁止远程 root 等,本案例未使用该方法,可略过此步骤
    # sudo mysql_secure_installation          
    

    使用SQL语句方式,本案例使用

    select host , user , plugin ,authentication_string from mysql.user;

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'lihaozhe';
    flush privileges;update mysql.user set host = '%' where user='root';
    flush privileges;quit;
    
    sudo systemctl restart mysql
    

4. 安装 PHP 8.3 及常用扩展

sudo apt -y install php-fpm php-mysqlnd php-cli
sudo apt -y install php-{mbstring,zip,gd,curl,json,intl,bcmath,xml,opcache}
sudo systemctl enable --now php$(php -v | awk '/^PHP [0-9]/{print $2}' | cut -d. -f1,2)-fpm

下面把这两条命令逐段、逐包拆开,告诉你“为什么要装、装了什么、不装会怎样”。

  1. php-fpm

    • 全称:PHP FastCGI Process Manager

    • 作用:把 PHP 解释器变成常驻进程,供 Nginx/Apache 通过 FastCGI 协议调用,比传统 mod_php 省内存、易池化、易隔离。

    • 不装:Nginx 无法解析 .php,浏览器访问直接下载源码。

  2. php-mysql

    • 作用:给 PHP 提供与 MySQL/MariaDB 通信的驱动(新版里实际是 php-mysqlnd)。

    • 不装:mysqli、PDO_MySQL 都不可用,程序连不上数据库。

  3. php-cli

    • 作用:命令行版 PHP。你在终端里敲 php -vcomposerartisandrush 之类都要用它。

    • 不装:无法离线跑 PHP 脚本、无法使用 Composer 等 CLI 工具。

逐个解释:

扩展功能场景缺了会怎样
mbstring多字节字符串(UTF-8/中文/日文/emoji)处理,正则、截取、大小写转换。出现乱码、strlen 算错字数、Laravel 直接报错。
zip读写 .zip 压缩包(WordPress/Composer 更新、备份)。无法解压上传的插件、无法生成备份。
gd图片处理:缩略图、加水印、验证码。无法调用 imagecreatefromjpeg() ,上传头像失败。
curlHTTP 客户端,访问 API、抓取网页。无法使用 Guzzle、无法请求微信/支付宝接口。
json编码/解码 JSON。与前端、第三方 API 交互失败(现在已内置,但仍需显式安装)。
intlICU 国际化库:格式化货币、日期、排序、转换字符集。Laravel Carbon、Symfony Intl 直接抛异常。
bcmath任意精度数学计算,财务场景避免浮点误差。金额计算出现 0.30000000000000004 之类问题。
xml解析 XML、RSS、SOAP、微信支付回调。无法使用 SimpleXML/DOMDocument。
opcache字节码缓存,把编译后的 PHP 脚本放内存,提速 2~5 倍。性能大幅下降,每次请求都重新编译。

5. 配置时区

修改 /etc/php/8.3/fpm/php.ini 配置文件,添加以下内容:

date.timezone = Asia/Shanghai

重启服务

sudo systemctl restart php8.3-fpm nginx

6. 安装 phpMyAdmin

  1. 下载并解压phpMyAdmin

    wget https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.zip
    unzip phpMyAdmin-5.2.2-all-languages.zip -d /usr/share
    mv /usr/share/phpMyAdmin-5.2.2-all-languages /usr/share/phpmyadmin
    
  2. 创建缓存模板文件的临时目录并授权

    mkdir /usr/share/phpmyadmin/tmp
    sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp/ 
    sudo chmod -R 755 /usr/share/phpmyadmin/tmp/
    
  3. 配置cookie加密密钥

    cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php 
    

    打开 /usr/share/phpmyadmin/config.inc.php`文件,添加或修改以下配置:

    $cfg['blowfish_secret'] = '这里填随机复杂字符串';

    示例:可生成 32 位随机字符,如在线工具生成后替换,也可简单写(但越复杂越安全)

    比如:$cfg[‘blowfish_secret’] = ‘abcdefghijklmnopqrstuvwxyz123456’;

    $cfg['blowfish_secret'] = 'abcdefghijklmnopqrstuvwxyz123456';
    
  4. 创建独立的 Nginx 虚拟主机

    创建并编写 /etc/nginx/conf.d/phpmyadmin.conf 文件,内容如下:

    server {listen 33;# server_name _;                 # 如要域名访问,把 _ 改成 phpmyadmin.example.comroot /usr/share/phpmyadmin;index index.php index.html;# 安全:禁止访问 .ht* 隐藏文件location ~ /\.ht { deny all; }# 禁止访问敏感目录location ~ ^/(doc|sql|setup)/ { deny all; }# 处理 PHPlocation ~ \.php$ {include snippets/fastcgi-php.conf;# Ubuntu 24.04 默认 php-fpm sock 路径,若版本不同请自行调整fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;}# 其余静态文件location / {try_files $uri $uri/ =404;}
    }

    注意:云服务器厂商对80和8080常用web服务端口有限制故而监听端口改成了33

  5. 重启服务

    systemctl restart nginx php8.3-fpm
    
  6. 配置连接

    • 使用浏览器打开链接 http://服务器IP:33,见到如下界面:

    phpmyadmin_login

  • 使用数据库账号密码登录后进入主界面
    phpMyAdmin

    点击查找原因

  • 创建一个名为’phpmyadmin’的数据库,并在那里设置phpMyAdmin配置存储。
    phpMyAdmin

    点击创建
    phpMyAdmin

  • 重新访问主页
    phpMyAdmin

Zabbix

1. 下载 Zabbix

Zabbix下载:https://www.zabbix.com/cn/download

Zabbix

注意:根据实际情况选择对应服务器系统版本、数据库和web服务器选型后页面下方会给出对应的安装命令。

2. 成为 root 用户

以 root 权限启动新的 shell 会话。

sudo -s

3. 安装 Zabbix 软件仓库

wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu24.04_all.deb
dpkg -i zabbix-release_latest_7.4+ubuntu24.04_all.deb
apt update

4. 安装Zabbix server,Web前端,agent

apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

5. 创建初始数据库

确保你的数据库服务器已启动并运行。

在数据库主机上运行以下代码。

mysql -uroot -p

输入密码后,在数据库控制台输入如下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 的数据库,字符集使用 utf8mb4,排序规则使用 utf8mb4_bin(区分大小写)
create database zabbix character set utf8mb4 collate utf8mb4_bin;-- 创建一个名为 zabbix 的本地用户,密码设置为 'zabbix'
create user zabbix@localhost identified by 'zabbix';-- 将 zabbix 数据库的所有权限授予本地用户 zabbix
grant all privileges on zabbix.* to zabbix@localhost;-- 设置全局变量,允许创建函数/存储过程时不需要 SUPER 权限(Zabbix 安装需要)
set global log_bin_trust_function_creators = 1;-- 退出 MySQL 客户端
quit;

导入初始架构和数据,系统将提示您输入新创建的密码。

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

导入数据库架构后,禁用 log_bin_trust_function_creators 选项。

mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;

6. 为Zabbix server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=zabbix

7. 为Zabbix前端配置PHP

修改 /etc/php/8.3/fpm/php.ini 配置文件,添加以下内容设置默认时区:

date.timezone = Asia/Shanghai

编辑配置文件 /etc/zabbix/nginx.conf,取消注释并设置 “listen” 和 “server_name” 指令。

# listen 8080;
# server_name example.com;

完整配置文件如下:

server {listen          88;
#        server_name     example.com;root    /usr/share/zabbix/ui;index   index.php;client_max_body_size 5m;location = /favicon.ico {log_not_found   off;}location / {try_files       $uri $uri/ =404;}location /assets {access_log      off;expires         10d;}location ~ /\.ht {deny            all;}location ~ /(api\/|conf[^\.]|include|locale) {deny            all;return          404;}location /vendor {deny            all;return          404;}location ~ [^/]\.php(/|$) {fastcgi_pass    unix:/var/run/php/zabbix.sock;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_index   index.php;fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix/ui;fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix/ui$fastcgi_script_name;fastcgi_param   PATH_TRANSLATED /usr/share/zabbix/ui$fastcgi_script_name;include fastcgi_params;fastcgi_param   QUERY_STRING    $query_string;fastcgi_param   REQUEST_METHOD  $request_method;fastcgi_param   CONTENT_TYPE    $content_type;fastcgi_param   CONTENT_LENGTH  $content_length;fastcgi_intercept_errors        on;fastcgi_ignore_client_abort     off;fastcgi_connect_timeout         60;fastcgi_send_timeout            180;fastcgi_read_timeout            180;fastcgi_buffer_size             128k;fastcgi_buffers                 4 256k;fastcgi_busy_buffers_size       256k;fastcgi_temp_file_write_size    256k;}
}

注意:云服务器厂商对80和8080常用web服务端口有限制故而监听端口改成了88

8. 链接Zabbix配置文件到Nginx配置文件目录

ln -sf /etc/zabbix/nginx.conf /etc/nginx/sites-enabled/zabbix.conf
systemctl restart zabbix-server zabbix-agent php8.3-fpm nginx
systemctl enable zabbix-server zabbix-agent php8.3-fpm nginx

9. 完整启用中文支持

# =====================================================================
# A. 让 Zabbix 前端界面支持“简体中文(zh_CN)”
# =====================================================================# 1. 安装操作系统级中文 locale(若已安装可跳过)
sudo apt update
sudo apt install -y language-pack-zh-hans language-pack-zh-hans-base
sudo locale-gen zh_CN.UTF-8          # 生成 locale
sudo update-locale LANG=zh_CN.UTF-8  # 如需系统全局中文(可选)# 2. 下载官方中文语言文件(Zabbix 7.0 示例)
sudo mkdir -p /usr/share/zabbix/assets/i18n
sudo wget -q "https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/ui/assets/i18n/zh_CN.json?at=refs%2Ftags%2F7.0.15" \-O /usr/share/zabbix/assets/i18n/zh_CN.json
sudo chmod 644 /usr/share/zabbix/assets/i18n/zh_CN.json# 3. 重启 PHP-FPM + Nginx,使语言文件生效
sudo systemctl restart php8.3-fpm nginx# 4. 登录 Web → 右上角用户头像 → User settings → Language
#    选择 “Chinese (zh_CN)” → Update 即可看到中文界面
#    (若仍灰色不可选,请确认步骤 1-3 已生效并刷新浏览器缓存)# =====================================================================
# B. 让 Zabbix 图形中的中文(图例、主机名)正常显示
# =====================================================================# 5. 安装开源中文字体(文泉驿正黑)
sudo apt install -y fonts-wqy-zenhei# 6. Ubuntu 包已提供“一键切换”脚本,最优雅做法:
# 6.1. 先用 ls 确认真实路径(保险起见)
ls -l /usr/share/zabbix/ui/assets/fonts/graphfont.ttf
# 应该能看到该文件存在# 6.2. 用正确的“真实路径”重新注册替代
sudo update-alternatives --install \/usr/share/zabbix/ui/assets/fonts/graphfont.ttf \zabbix-frontend-font \/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc 20# 6.3. 立即切换默认字体(选择 wqy-zenhei 的序号即可)
sudo update-alternatives --config zabbix-frontend-font
# 如果只有一个候选项,系统会直接提示“当前为自动模式”,无需额外操作# 6.4. 重启相关服务使字体立即生效
sudo systemctl restart php8.3-fpm nginx# 7. 立即生效,无需手动替换文件
sudo systemctl restart php8.3-fpm nginx# 8. 打开任意监控图形 → Ctrl+F5 强制刷新
#    中文图例/主机名已可正常显示# =====================================================================
# 附:如仍想手工替换字体(备选方案)
# =====================================================================
# sudo cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc \
#         /usr/share/zabbix/assets/fonts/graphfont.ttf
# sudo chown www-data:www-data /usr/share/zabbix/assets/fonts/graphfont.ttf
# sudo systemctl restart php8.3-fpm nginx

10. 初始化配置

使用浏览器打开链接 http://服务器IP:88,见到如下界面:
Zabbix

Default language 下拉列表选择Chinese(zh_CN)
Zabbix
Zabbix

点击下一步,检查必要条件
Zabbix
点击下一步,配置数据库连接
Zabbix
输入密码后点击下一步,Zabbix设置
Zabbix

填入Zabbix主机名称后点击下一步,安装前汇总
Zabbix

点击下一步,开始安装
Zabbix

点击完成,进入登录页面
Zabbix

11. 登录

账号:Admin

密码:zabbix
在这里插入图片描述

http://www.xdnf.cn/news/1357399.html

相关文章:

  • ComfyUI ZLUDA AMD conda 使用遇到的问题
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十五)网格布局
  • 【229页PPT】某大型制药集团企业数字化转型SAP蓝图设计解决方案(附下载方式)
  • 目标检测数据集 第006期-基于yolo标注格式的汽车事故检测数据集(含免费分享)
  • 网络协议UDP、TCP
  • 管道符在渗透测试与网络安全中的全面应用指南
  • 【信息安全】英飞凌TC3xx安全调试口功能实现(调试口保护)
  • OSG库子动态库和插件等文件介绍
  • AlmaLinux 上 Python 3.6 切换到 Python 3.11
  • 从 JUnit 深入理解 Java 注解与反射机制
  • Flink元空间异常深度解析:从原理到实战调优指南
  • 数字防线:现代企业网络安全运维实战指南
  • Maven项目中settings.xml终极优化指南
  • 得物25年春招-安卓部分笔试题1
  • Flink 实时加购数据“维表补全”实战:从 Kafka 到 HBase 再到 Redis 的完整链路
  • GaussDB 数据库架构师修炼(十八) SQL引擎-分布式计划
  • vimware unbuntu18.04 安装之后,没有网络解决方案
  • AI与SEO关键词协同优化
  • 【小程序-慕尚花坊02】网络请求封装和注意事项
  • 个人搭建小网站教程(云服务器Ubuntu版本)
  • 不知道Pycharm怎么安装?Pycharm安装教程(附安装包)
  • MySQL數據庫開發教學(二) 核心概念、重要指令
  • GaussDB 数据库架构师修炼(十八) SQL引擎-统计信息
  • 请求上下文对象RequestContextHolder
  • LIANA | part2 results部分
  • 【贪心算法】day1
  • spring源码之事务篇(事务管理器整个流程)
  • JAVA限流方法
  • PAT 1081 Rational Sum
  • 不只是关键词匹配:AI如何像人类一样‘听懂‘你在说什么