Ubuntu24.04 安裝 Zabbix
環境:
軟件 | 版本 |
---|---|
Ubuntu | 24.04.3 |
Nginx | 1.24.0 |
MySQL | 8.4.6 |
PHP | 8.3.6 |
phpMyAdmin | 5.2.2 |
Zabbix | 7.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
-
MySQL APT存儲庫的下載頁面
wget https://repo.mysql.com//mysql-apt-config_0.8.34-1_all.deb
-
安裝mySQL APT存儲庫
sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
-
使用以下命令從MySQL APT存儲庫更新包信息(此步驟是必需的):
sudo apt-get update
-
使用APT安裝MySQL
sudo apt-get -y install mysql-server
這將安裝MySQL服務器的包,以及客戶端和數據庫公共文件的包。
在安裝過程中,您需要為MySQL安裝的根用戶提供密碼。
-
啟動和關閉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。
-
登錄MySQL
mysql -uroot -p
-
修改密碼并設置訪問主機
運行安全初始化腳本(交互式,按提示操作)
本案例未使用該方法,可略過此步驟
# 設置 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
下面把這兩條命令逐段、逐包拆開,告訴你“為什么要裝、裝了什么、不裝會怎樣”。
-
php-fpm
? 全稱:PHP FastCGI Process Manager
? 作用:把 PHP 解釋器變成常駐進程,供 Nginx/Apache 通過 FastCGI 協議調用,比傳統
mod_php
省內存、易池化、易隔離。? 不裝:Nginx 無法解析
.php
,瀏覽器訪問直接下載源碼。 -
php-mysql
? 作用:給 PHP 提供與 MySQL/MariaDB 通信的驅動(新版里實際是
php-mysqlnd
)。? 不裝:mysqli、PDO_MySQL 都不可用,程序連不上數據庫。
-
php-cli
? 作用:命令行版 PHP。你在終端里敲
php -v
、composer
、artisan
、drush
之類都要用它。? 不裝:無法離線跑 PHP 腳本、無法使用 Composer 等 CLI 工具。
逐個解釋:
擴展 | 功能場景 | 缺了會怎樣 |
---|---|---|
mbstring | 多字節字符串(UTF-8/中文/日文/emoji)處理,正則、截取、大小寫轉換。 | 出現亂碼、strlen 算錯字數、Laravel 直接報錯。 |
zip | 讀寫 .zip 壓縮包(WordPress/Composer 更新、備份)。 | 無法解壓上傳的插件、無法生成備份。 |
gd | 圖片處理:縮略圖、加水印、驗證碼。 | 無法調用 imagecreatefromjpeg() ,上傳頭像失敗。 |
curl | HTTP 客戶端,訪問 API、抓取網頁。 | 無法使用 Guzzle、無法請求微信/支付寶接口。 |
json | 編碼/解碼 JSON。 | 與前端、第三方 API 交互失敗(現在已內置,但仍需顯式安裝)。 |
intl | ICU 國際化庫:格式化貨幣、日期、排序、轉換字符集。 | 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
-
下載并解壓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
-
創建緩存模板文件的臨時目錄并授權
mkdir /usr/share/phpmyadmin/tmp sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp/ sudo chmod -R 755 /usr/share/phpmyadmin/tmp/
-
配置
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';
-
創建獨立的 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
-
重啟服務
systemctl restart nginx php8.3-fpm
-
配置連接
- 使用瀏覽器打開鏈接 http://服務器IP:33,見到如下界面:
-
使用數據庫賬號密碼登錄后進入主界面
點擊查找原因
-
創建一個名為’phpmyadmin’的數據庫,并在那里設置phpMyAdmin配置存儲。
點擊創建
-
重新訪問主頁
Zabbix
1. 下載 Zabbix
Zabbix下載:https://www.zabbix.com/cn/download
注意:根據實際情況選擇對應服務器系統版本、數據庫和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,見到如下界面:
Default language 下拉列表選擇Chinese(zh_CN)
點擊下一步,檢查必要條件
點擊下一步,配置數據庫連接
輸入密碼后點擊下一步,Zabbix設置
填入Zabbix主機名稱后點擊下一步,安裝前匯總
點擊下一步,開始安裝
點擊完成,進入登錄頁面
11. 登錄
賬號:Admin
密碼:zabbix