Zabbix 6 系列學習 :包安裝(Ubuntu)
本文采用的是 Ubuntu 22.04,其他系統請參考后續文章。
本文環境
- 系統:Ubuntu 22.04 LTS
- PHP:8.0
- PostgreSQL:14
- 前端:Nginx
系統版本
前提
由于初始化的 Ubuntu 是普通用戶權限,所以會出現沒有權限使用 apt 工具,所以在安裝過程中使用 sudo 命令提權,或者是直接切換成 root 賬戶,建議使用 sudo 提權。
添加 Zabbix 倉庫
下載倉庫文件:
安裝倉庫文件:
中途會提示輸入用戶的密碼,非 root 密碼
更新倉庫文件,實測安裝過程比較快,所以不進行倉庫的更換。
添加完后一定要更新,否則會出現上述報錯
安裝 Zabbix 相關組件
完成安裝
數據庫部分
安裝數據庫
Zabbix 6.0 需要 PostgreSQL 需要 13.0 版本以上。22.04 默認自帶的版本為 14,本文測試簡單,所以直接采用14的版本安裝,如果想用指定版本,安裝的時候帶指定版本,eg:postgresql-13。
需要注意的是,Ubuntu 和 CentOS 的區別,安裝完 PostgreSQL 是自動啟動的。
創建數據庫以及相對應的用戶
命令執行完會出現下面的警告,無需關心,因為 kasar 的家目錄 postgres用戶 是沒有權限的,所以會彈出此警告,不影響此操作。
數據庫配置問題
此時我們想查看上面的步驟是否 OK,就需要登錄到數據庫里看了。
此時會發現驗證方式存在問題,需要調整 PostgreSQL 的權限配置文件。
HBA 文件講解(簡易,詳細請參閱官方文檔)
hba配置文件
該配置文件有5個參數:
- type:類型
- database:數據庫名稱
- user:用戶
- address:地址
- method:步驟
TYPE
該字段下有6個值,僅 14 版本,其他版本自行參考配置文件,詳細可以翻閱官方文檔。
- local:通過 Unix-domain 套接字連接。
- host:通過 TCP/IP 套接字連接。
- hostssl:通過 TCP/IP 套接字連接(SSL 加密)。
- hostnossl:通過 TCP/IP 套接字連接(無SSL 加密)。
- hostgssenc:通過 TCP/IP 套接字連接(GSSAPI 加密)。
- hostnogssenc:通過 TCP/IP 套接字連接(無GSSAPI 加密)。
DATABSE
數據庫實例名稱,可以是 all、 sameuser、samerole、replication。all 表示所有,但不包括 replication。多個數據庫用","隔開。
USER
用戶名,可以為"all",表示所有,也可以具體指定一個用戶。指定組需要加上"+"的前綴多個用戶用","隔開。和DATABASE一樣,也可以將配置放到文件中,文件名加上前綴@。
ADDRESS
可以是為一個主機名,或者由 IP 地址和 CIDR 掩碼組成。掩碼可以為0-32(IPv4)或者0-128(IPv6)間的一個整數,32 表示子網掩碼為255.255.255.255,24 表示子網掩碼為255.255.255.0。主機名以“.”開頭。samehost 可以匹配所有主機、samenet可以匹配同一個掩碼內的所有主機。
eg:192.168.20.100/32 表示單一主機,192.168.20.0/24 表示 192.168.0.1~192.168.0.255網段內所有主機,0.0.0.0/0 表示所有主機。
METHOD
指定如何處理客戶端的認證。常用的有 ident、md5、password、trust、peer、reject。其中 ident 和 peer 模式僅適用于 Linux、Unix 和 Mac,不適用于Windows。該參數一共有13個值(僅 14 版本,其他版本需要自行參考配置文件)
- md5 是常用的密碼認證方式,如果你不使用 ident,最好使用 md5。密碼是以 md5 形式傳送給數據庫,較安全,且不需建立同名的操作系統用戶。
- password 是以明文密碼傳送給數據庫,建議不要在生產環境中使用。
- trust 是只要知道數據庫用戶名不需要密碼或 ident 就能登錄,建議不要在生產環境中使用。
- ident 通過從 ident 服務器獲取客戶端的操作系統用戶名然后使用它來訪問數據庫服務器來工作。這個方法建議用于客戶端計算機受系統管理員嚴格控制的封閉網絡。
- peer這類似于 ident,但客戶端操作系統用戶名是從內核獲得的。
- reject 是拒絕認證。
即使是針對同一個數據庫,多種身份驗證模式可以同時使用。對于每一個連接請求,postgres 服務器會按照 pg_hba.conf 文件中記錄的規則條目自上而下進行檢查。
當匹配到第一條滿足條件的規則時,就不再向下檢查。如果到文件末尾都沒有搜到匹配的規則,那么按默認規則處理,即拒絕該鏈接。
HBA 文件配置
通過上述的描述,本文的目標就是 local 用戶能直接本地登錄,其次 Zabbix 用戶通過自身的密碼訪問到數據庫。
修改如下,將本地登錄認證方式改為 trust。
host 部分改為 md5 方式即可,改完后重啟數據庫。
再次登錄,此時就恢復正常了,并且能看到前面創建的數據庫。
嘗試使用 zabbix 用戶登錄,出現下面截圖即為正常,由于本機優先采用 IPv6 的方式連接數據庫,所以導致 md5 的方式不生效,采用的為 scram-sha-256,效果是一樣,僅限于演示,實際自行測試。
導入 Zabbix 相關架構及數據
完成導入
Zabbix 部分配置
Zabbix 配置文件修改。
還是根據自己的數據庫部分配置而定,如果根據本文一路走下來,僅需要調整 DBHost 和DBPassword 兩個參數。
修改為127.0.0.1
填寫數據庫密碼
Nginx 部分配置
由于 Nginx 默認端口為 80,會導致訪問直接出現 Nginx 的訪問界面。不要奇怪,安裝 PHP 會自帶安裝 apache2,所以會出現 apache2 的界面。
可以調整 Zabbix 的端口,也可以改默認端口,本文采用改默認端口的方式。
改為8080
重啟 Nginx 服務。
此時就能正常訪問 Zabbix 的前端頁面了。
啟動 Zabbix 相關服務
前端配置
環境檢查,下一步。
數據庫界面需要注意下,需要將 Database host 改為 127.0.0.1,Databse schema 填寫 public,密碼自行填寫,Database TLS encryption 勾去掉即可下一步。
填寫 Zabbix Server 的名稱及調整對應的時區,選擇東八上海。
下一步:
完成安裝,點擊 Finish,如果此頁面出現無法生成對應的前端文件,基本是所在目錄的權限問題,筆者曾經碰到過,后面的問題篇也會提到。
默認用戶名密碼還是為 Admin/zabbix。
最終效果
running處為yes即為正常
最后
Ubuntu 環境下相比 CentOS 要簡單的多,得益于 Ubuntu 在許多地方做的比較人性化,CentOS 的報錯顯得比較直接,只能查閱資料或者是尋求其他幫助,下期見!