Zabbix 是一個用于監(jiān)控 IT 設施的企業(yè)級解決方案洒闸,支持實時監(jiān)控數千臺服務器,虛擬機和網絡設備均芽,采集百萬級監(jiān)控指標丘逸。
Zabbix 完全開源免費。
一掀宋、特性與架構
特性
Zabbix 監(jiān)控系統(tǒng)的主要特性如下:
- 一個中心化的簡單易用的 Web 管理界面深纲,內置豐富的圖形化和可視化組件
- Zabbix Server 可以運行在絕大多數 UNIX-like 操作系統(tǒng)上仲锄,提供原生的客戶端(agent)程序(支持絕大多數 UNIX-like 系統(tǒng)和 Windows 系統(tǒng))
- 可以直接監(jiān)控 SNMP (SNMPv1, SNMPv2, SNMPv3) 和 IPMI 設備
- 通過 JMX 可以直接監(jiān)控 Java 應用,通過 VMware API 可以直接監(jiān)控 vCenter 或 vSphere 實例
- 靈活的配置湃鹊,包括豐富的模板系統(tǒng)儒喊。方便與其他系統(tǒng)集成的通知系統(tǒng)
系統(tǒng)架構
一個簡單的 Zabbix 監(jiān)控系統(tǒng)的示例架構如下圖:
Zabbix 由以下幾個主要的功能組件組成:
- Server:Zabbix 軟件的核心組件,agent 向其報告可用性币呵、系統(tǒng)完整性和其他統(tǒng)計信息
- 數據庫:用于存儲所有配置信息以及 Zabbix 采集到的數據
- Web 界面:屬于 Zabbix Server 的一部分怀愧,便于從任何地方、任何設備訪問和配置 Zabbix
- Proxy:可以替代 Zabbix Server 進行數據的采集操作余赢,在 Zabbix 的部署中是可選部分芯义,但是可以很好地分擔單個 Server 的負載
- agent:Zabbix agents 部署在被監(jiān)控目標上,用于主動監(jiān)控本地資源和應用程序妻柒,并將數據發(fā)送給 Zabbix Server
二扛拨、安裝
獲取 Zabbix 主要有以下三種方式:
- 從發(fā)行包安裝
- 下載最新版源碼包并編譯
- 通過容器安裝部署
這里選擇第一種安裝方式。Zabbix 官方的軟件倉庫有提供 RPM 和 DEB 格式的二進制包举塔,本文并沒有使用鬼癣。使用的是 Ubuntu 19.04 默認軟件倉庫中提供的安裝包,具體操作大同小異啤贩,詳情可參考 Zabbix 4.0 產品手冊
使用 apt-get
命令安裝 Zabbix 系列軟件:
$ sudo apt-get update
$ sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent
其中 zabbix-server-mysql
是以 MySQL 數據庫為后端的 Zabbix Server 軟件。zabbix-frontend-php
則是由 PHP 語言編寫的 Web 控制臺界面拜秧。
導入初始數據
首先確保已經安裝了 MySQL 數據庫痹屹,使用 root 用戶登錄進 MySQL 的命令行界面,輸入以下命令創(chuàng)建數據庫并授權:
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.11 sec)
以上命令創(chuàng)建了一個名為 zabbix
的數據庫枉氮,并授予用戶 zabbix
(密碼為 password
)對它的訪問權限志衍。
zabbix
數據庫用于存儲 Zabbix Server 的配置信息和采集到的數據,在正式啟用前還需要創(chuàng)建數據表并導入初始數據聊替。
Zabbix 軟件包中已經包含了用于創(chuàng)建這些數據表的 SQL 語句楼肪,一般保存在 /usr/share/doc/zabbix-server-mysql/
或者 /usr/share/zabbix-server-mysql/
目錄下的一個或多個數據庫備份文件中,直接導入即可惹悄。
我這里使用如下命令進行導入:
$ zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz | mysql -u zabbix -p zabbix
按照提示輸入密碼后即可完成導入春叫。
配置數據庫連接信息
修改 Zabbix Server 的配置文件 /etc/zabbix/zabbix_server.conf
,將其中對應的項目改為如下內容:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
重啟 zabbix-server 服務:
$ sudo systemctl restart zabbix-server
Web 前端配置
首先確保已經安裝了 Apache2 Web 服務器和 PHP 語言支持泣港。并且還需要安裝以下幾個 PHP 模塊:
- gd
- mysqli
- bcmath
- mbstring
- gettext
前面安裝完 zabbix-frontend-php
軟件后暂殖,會自動在 /etc/apache2/conf-available/
目錄下創(chuàng)建 zabbix-frontend-php.conf
文件,作為 Zabbix Server 網頁后臺的配置文件当纱。
該文件的默認配置可直接使用呛每,只需要啟用該配置即可,命令如下:
$ sudo a2enconf zabbix-frontend-php
或者 $sudo ln -s /etc/apache2/conf-available/zabbix-frontend-php.conf /etc/apache2/conf-enabled/
此外坡氯,在正式訪問 Web 頁面安裝之前晨横,需要先修改時區(qū)配置洋腮。編輯 /etc/apache2/conf-enabled/zabbix-frontend-php.conf
文件,將時區(qū)配置改為如下內容:
php_value date.timezone Asia/Shanghai
Web 安裝程序
以上步驟完成后手形,重啟 Apache2 服務啥供。進入瀏覽器訪問 http://localhost/zabbix ,根據提示進行操作,部分截圖如下:
操作完成后叁幢,會自動生成 zabbix.conf.php
文件滤灯,內容大致如下:
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'admin';
$DB['PASSWORD'] = 'password';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'your_ip_address';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'server1';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
如該文件未自動在 /etc/zabbix/
目錄下生成,可將該文件下載后移動到對應位置曼玩。
此時訪問 http://localhost/zabbix 鳞骤,即可進入安裝配置完成的 Zabbix 監(jiān)控系統(tǒng)控制臺。默認登錄用戶名為 Admin
黍判,密碼為 zabbix
豫尽。截圖如下:
三、主機與監(jiān)控項
本文主要介紹 Zabbix 監(jiān)控系統(tǒng)的安裝配置流程顷帖,對于主機及其關聯(lián)的監(jiān)控項的配置美旧,限于篇幅不作過多介紹。建議參考官方文檔贬墩。
實際上完成安裝之后榴嗅,Zabbix 已經默認關聯(lián)了一個名為 Zabbix server
的主機(即安裝 Zabbix Server 的 Linux 服務器本身),其中默認配置了眾多監(jiān)控項陶舞、觸發(fā)器嗽测、圖形和自動發(fā)現(xiàn)規(guī)則等≈追酰可以查看它們的具體配置信息作為參考唠粥。
部分截圖如下: