如何在 Ubuntu 18.04 上安裝 Zabbix

Zabbix 旨在監控服務器性能、服務器的可用性、網絡設備和其他網絡組件。 我們可以使用它輕鬆跟踪任何應用程序、系統和網絡設備的狀態。

在本文中,我將解釋如何在我們最新的 Ubuntu 18.04 服務器上安裝開源監控工具 Zabbix 3.4,並向您展示如何添加遠程服務器進行監控。

Zabbix 的核心是用 Java 和 C 構建的,但它帶有一個用 PHP 構建的用戶友好的前端界面,這使得跟踪和監控系統變得更加容易。

先決條件

  • 新安裝的 Ubuntu 18.04 服務器,具有 root 用戶權限。
  • 配置良好的 LAMP 服務器。

安裝 LAMP 服務器

在安裝 Zabbix 服務器之前,我們需要正確配置一個 LAMP 服務器。 首先,我們可以安裝 Apache 和 PHP 以及使用以下命令的一些必需的 PHP 模塊:

#apt update -y
#apt install apache2 libapache2-mod-php7.2 php7.2 php7.2-xml php7.2-bcmath php7.2-mbstring -y

安裝完所有組件後,我們需要安裝 MariaDB。 Zabbix 使用 MySQL、Oracle 和 PostgreSQL 來存儲其數據。 這裡我們安裝 MariaDB 來存儲它的數據。 我們默認的 Ubuntu 18.04 存儲庫中提供了該軟件的最新版本。 因此,我們可以簡單地運行此命令來安裝它。

#apt install mariadb-server -y

接下來,我們可以啟動並啟用所有服務在引導時啟動:

#systemctl start apache2
#systemctl enable apache2
#systemctl start mysql
#systemctl enable mysql

因此,我們完成了我們的 LAMP 服務器。 接下來,我們可以開始我們的 Zabbix 安裝。

安裝和配置 Zabbix 服務器

根據我們的操作系統平台和要求,我們需要選擇/安裝最新的支持 Zabbix 存儲庫到我們的服務器。

第 1 步:使用 MySQL 下載並安裝 Zabbix Repository

我們可以使用以下命令為我們的 Ubuntu 18.04 服務器下載並安裝最新的 Zabbix 3.4 存儲庫:

# wget https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+bionic_all.deb
# dpkg -i zabbix-release_3.4-1+bionic_all.deb
# apt update

第 2 步:安裝 Zabbix 服務器、前端和 Zabbix-Agent

其次,我們需要從我們安裝的 Zabbix 存儲庫中安裝我們的 Zabbix 服務器、前端和 Zabbix 代理。 請運行此命令進行安裝,如下所示:

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

第 3 步:創建初始 Zabbix 數據庫

一旦安裝了上述所有組件,我們就可以為我們的 Zabbix 用戶創建一個數據庫:

~# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 41
Server version: 10.1.29-MariaDB-6 Ubuntu 18.04

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit

現在您可以將初始架構和數據導入到我們新創建的 Zabbix 數據庫中。 在導入過程中,系統將提示您輸入數據庫用戶密碼。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

第 4 步:為 Zabbix 服務器配置數據庫

這個階段需要正確更新Zabbix配置文件中的數據庫密碼 /etc/zabbix/zabbix_server.conf 如下:

# grep -i DBpassword /etc/zabbix/zabbix_server.conf
# For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.
### Option: DBPassword
DBPassword=password

您需要取消註釋 DB 密碼選項,並根據需要向其提供準確的 Zabbix DB 用戶密碼。

第 5 步:為 Zabbix 前端配置 PHP

我們需要配置 PHP 並設置適當的時區以順利進行 Zabbix Frontend 安裝。 首先,您可以在位於的 PHP 配置文件中設置適當的時區 /etc/php/7.2/apache2/php.ini 並根據您的首選時區對其進行相應修改。 我已將其更新如下:

# grep -i timezone /etc/php/7.2/apache2/php.ini
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
date.timezone = Europe/Riga

接下來,我們需要在以下位置更新 Zabbix 配置文件 /etc/zabbix/apache.conf 與以下相同的時區:

# grep timezone /etc/zabbix/apache.conf
php_value date.timezone Europe/Riga

您將在上述配置文件的 PHP 7 模塊部分中取消對時區的 php_value 的註釋,並像以前一樣使用確切的時區進行更新。

第 6 步:啟動 Zabbix 服務器和代理進程

最後,我們可以使用以下命令啟動並啟用所有必需的 Zabbix 服務和 Apache2:

# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2

就這樣! 現在我們的 Zabbix 服務器將啟動並運行。 您可以通過訪問 URL 來檢查它是否正常工作 >>>https://Server-IP/zabbix

安裝/配置 Zabbix 前端

一旦我們啟動並運行了 Zabbix 服務器,我們就可以使用 URL 訪問我們新安裝的 Zabbix 前端 >> https://Server-IP or hostname/zabbix. 這將打開前端安裝嚮導。 為了使其功能齊全,我們需要完成 Zabbix Frontend 的設置過程。

讓我們一一瀏覽每個設置過程。 你可以點擊 Next Step 檢查先決條件。 在這個階段,我們需要確保我們的服務器滿足下面列出的所有軟件先決條件。 完成後,您可以單擊下一步繼續。

在此階段,請確保更新連接到 Zabbix 數據庫的詳細信息,以確保正確的數據庫連接並繼續進行 Zabbix 服務器設置,包括主機和端口 10051。

最後,我們可以在 Pre-installation Summary 中再次驗證以上階段所做的所有設置,然後單擊 Next Step 以完成安裝。

如果一切順利,您將收到上述消息,說明 Zabbix 前端安裝成功。 現在您可以單擊完成選項卡退出安裝嚮導。

訪問 Zabbix 儀表板

歡呼! 我們的 Zabbix 前端已準備就緒。 您可以使用帶有用戶名的默認 Zabbix 登錄憑據訪問它 "Admin" 和密碼 "zabbix" 在網址中 >>>https://Server-IP/zabbix.

更改管理員密碼

使用默認設置成功登錄 Zabbix 前端面板後 admin 登錄憑據,出於安全原因,必須修改管理員憑據。 您可以通過瀏覽路徑來修改您的管理員密碼: Administration > Users > Admin > Password > Change Password 如下圖所示:

添加監控主機

由於我們的 Zabbix 服務器已準備好使用,我們可以通過添加我們的第一個監控目標主機(即我們的 Zabbix 服務器本身)來測試它的功能。 您可以通過導航路徑來執行此操作: Configuration >> Hosts 如屏幕截圖所示。

如您所見,我們的主機狀態默認設置為禁用狀態。 我們需要點擊disabled按鈕來啟用這個服務器上的Zabbix代理來監控主機。 如屏幕截圖所示, Status 轉向 enabled 現在正在監視服務器。

只需等待幾分鐘,我們的 Zabbix 服務器就會從服務器獲取監控數據並更新圖表。 現在您可以通過瀏覽路徑來查看主機圖: Monitoring > Screens > Server Name 就像在快照中一樣。

添加遠程主機

首先,我們需要在我們的遠程主機上安裝/啟用 Zabbix Agent。 Zabbix 代理的工作是從設備收集 CPU、內存、磁盤和網絡接口使用情況等數據。 Zabbix 代理可以執行被動(輪詢)和主動檢查(陷阱)。 這些檢查可以每隔一段時間或基於特定的時間安排執行。 讓我們看看如何在 Ubuntu 18.04 節點上安裝/啟用 Zabbix 代理。

安裝 Zabbix 代理

最初,您需要通過 SSH 連接到我們的新主機服務器並為我們的 Ubuntu 18.04 主機設置下載 Zabbix 3.4 存儲庫並從中安裝 Zabbix 代理。

#wget https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+bionic_all.deb
#dpkg -i zabbix-release_3.4-1+bionic_all.deb
#apt install zabbix-agent

配置 Zabbix 代理

現在,您可以配置我們的 Zabbix Agent 以啟動與 Zabbix 服務器的正確連接。 我們使用預共享密鑰 (PSK) 來保護服務器和代理之間的連接。 Zabbix 代理配置位於 /etc/zabbix/zabbix_agentd.conf.

步驟 1:生成 PSK 密鑰並進行配置。

首先,我們需要生成 PSK 密鑰。 這可以通過運行以下命令獲得:

#sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

您可以保存此密鑰,該密鑰將在代理配置期間使用。

# cat /etc/zabbix/zabbix_agentd.psk
abb6a14eace79044b9f3bab0c6cd26d50b4cfb3dc6fe2ef815b96216073b333b

第 2 步:將 Zabbix 服務器添加到代理配置中。

現在你必須打開 Zabbix Agent 配置文件  /etc/zabbix/zabbix_agentd.conf 並將其配置為在服務器之間建立安全連接。 首先,您需要使用 Zabbix 服務器 IP 編輯“95”和“136”行號,如下所示。 這裡 172.104.210.183 是我的 Zabbix 服務器 IP。

# sed -n '95 p' /etc/zabbix/zabbix_agentd.conf
Server=172.104.210.183

接下來,我們需要編輯帶有 Zabbix 服務器信息的 136 行。

# sed -n '136 p' /etc/zabbix/zabbix_agentd.conf
ServerActive=172.104.210.183

步驟 3:配置和啟用 PSK 安全連接

為了配置服務器之間的安全連接,我們啟用了支持 PSK 的 TLS 連接。 我們需要相應地編輯 Zabbix Agent 配置中的以下幾行以使其成為可能。

修改 /etc/zabbix/zabbix_agentd.conf 中的以下幾行:

# sed -n -e 324p -e 335p -e 385p -e 392p /etc/zabbix/zabbix_agentd.conf
# TLSConnect=unencrypted
# TLSAccept=unencrypted
# TLSPSKIdentity=
# TLSPSKFile=

TO:

# sed -n -e 324p -e 335p -e 385p -e 392p /etc/zabbix/zabbix_agentd.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PKI 001
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

定義每個部分:

  • TLSConnect=psk  *// 這將啟用預共享密鑰支持 //*
  • TLSAccept=psk *// 這允許使用 PSK 支持接受所有傳入連接//
  • TLSPSKIdentity=PKI 001 *// 給出一個唯一的名稱來標識您的代理預共享密鑰//
  • TLSPSKFile=/etc/zabbix/zabbix_agentd.psk *// 這有助於 Zabbix 代理識別您創建的 PSK 文件。 //*

第 4 步:啟動 Zabbix 代理

現在您可以保存這些更改並使用以下命令啟動 Zabbix 代理並將其設置為在啟動時啟動:

~# systemctl start zabbix-agent
# systemctl enable zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent

我們的 Zabbix 代理現在已準備好向 Zabbix 服務器發送數據。 但是為了使用它,我們必須從 Zabbix 服務器的 Web 控制台將此代理鏈接到它。

第 5 步:將我們的新主機添加到 Zabbix 服務器

我們已經在新主機上成功安裝/配置了 Zabbix Agent。 現在我們需要通過我們的 Web 控制台將這個新節點註冊到我們的 Zabbix 服務器。 您可以使用 URL >> 登錄到我們的 Zabbix 服務器網絡界面https://Zabbix_ServerIP/zabbix/ 使用創建的管理員登錄憑據。 現在我們可以瀏覽路徑: Configuration > Hosts > Create Host

這將打開主機配置頁面,您可以在其中添加新主機的主機名稱、IP 詳細信息。 此外,您可以選擇要將此新主機添加到的組。 您可以根據自己的喜好創建一個新組,也可以添加到預先存在的組中。 根據我們的喜好,一個主機可以包含在多個組中。 在這裡,我將我們的新節點添加到默認節點 Linux Servers 團體。

添加我們的主機後,我們可以通過從 Hosts 列表中選擇我們添加的節點來修改其設置。 我選擇了默認模板  Template OS Linux 對於我的節點。 您可以從模板列表中選擇任何首選模板。

接下來,我們需要導航到“加密”選項卡。 由於我們已經決定,我們需要為到主機的連接和來自主機的連接選擇 PSK。 然後設置 PSK identity PSK 001,這是 TLSPSKIdentity 一開始我們在Zabbix Agent中配置的設置。 然後將 PSK 值設置為您為 Zabbix 代理生成的密鑰。 這是存儲在文件中的那個 /etc/zabbix/zabbix_agentd.psk 在代理機器上。

就這樣! 現在您將看到帶有綠色標籤的新主機,表明一切正常並且連接已加密。

為了確保一切正常,你甚至可以關閉你的新主機,看看 Zabbix 是否正在就問題發出警報。 在這種情況下,它會報告一個問題,如屏幕截圖所示。

類似地,您可以通過在其中安裝和配置 Zabbix Agent 並將其註冊到您的 Zabbix 服務器來將新主機添加到您的 Zabbix 服務器。 我希望這篇文章是有用的和翔實的。 請就此發表您的寶貴建議和意見。