為了監控各大VPS主機商不同地方機房的網路線路狀況,我們可以使用免費開源網路效能監控工具視覺化主/從部署Smokeping,Smokeping強大直覺的繪圖可以幫助我們了解一定時間內IDC機房的網路狀況。

但是,如果我們還要詳細了解伺服器的CPU、記憶體、磁碟IO、SQL資料、硬碟容量、網頁載入速度、系統負載等資源使用情況,我們就需要一個像zabbix一樣的強大伺服器效能監控工具,zabbix幾乎可以監控到伺服器所有的硬體資源。

Zabbix 是 Alexei Vladishev 開發的網路監視、管理系統,在Linux、Windows系統安裝 Zabbix Agent 之後,可監視 CPU Load、網路使用狀況、硬碟容量等各種狀態。如果沒有安裝Agent ,也可以透過SNMP、TCP、ICMP等方式進行監控。

Zabbix是企業級的監控工具,可用於部署監控大規模伺服器叢集監控,對於我們個人來說,也可以利用Zabbix來即時監控自己的伺服器的運作狀況。尤其是當你查不出自己的伺服器毛病出在哪裡,利用Zabbix作全方位的監控就非常有必要了。

Zabbix安裝與使用-強大的伺服器效能監控工俱全面掌控伺服器軟硬體資源使用情況

更多的關於網站伺服器監控與VPS主機效能評測,還可以看看:

  1. Linux系統監控指令整理總表-掌握CPU,記憶體,磁碟IO等找出效能瓶頸
  2. Smokeping安裝與設定-免費開源網路效能監控工具視覺化主/從部署
  3. 伺服器日誌分析利器:ngxtop和GoAccess-即時監控視覺化管理快速找出異常來源

PS:2017年12月27日更新,相對於Zabbix大而全的監控不防來試試小而精的監控工具,這兩款工具將網路流量監控發揮到了極致:兩款優秀的伺服器網路流量監控工具:Ntopng和Munin-功能強大直覺。

一、Zabbix安裝部署

官網:

  1. 網址:https://www.zabbix.com
  2. 文件:https://www.zabbix.com/documentation/3.4/zh/
  3. 一鍵包:https://github.com/X-Mars/Quick-Installation-ZABBIX

Zabbix支援分發包、容器、應用程式和編譯等安裝方法,嫌麻煩的朋友也可以直接使用Github第三方的一鍵安裝包,可以一鍵安裝服務端與客戶端。

以下官網提供的從部署包安裝Zabbix的詳細教學。

1.1  Red Hat Enterprise Linux / CentOS

支援版本: RHEL 7, Oracle Linux 7, CentOS 7。有些元件的部署包(如agent, proxy等),同時也支援RHEL 5和RHEL 6。

安裝源碼庫配置部署包。

這個部署包包含了yum設定檔。

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm

安裝Zabbix部署包。

以下是使用Mysql資料庫安裝Zabbix server、WEB前端的範例。

Zabbix官方原始碼庫也提供fping,iksemel,libssh2部署套件這些套件位於non-supported目錄.

# yum install zabbix-server-mysql zabbix-web-mysql

只安裝Zabbix Agent的範例.

# yum install zabbix-agent

安裝初始化資料庫

在MySQL上安裝Zabbix資料庫和用戶,請參考下列指導步驟。 MySQL資料庫建立腳本

然後導入初始架構(Schema)和資料。

# cd /usr/share/doc/zabbix-server-mysql-3.4.0
# zcat create.sql.gz | mysql -uroot zabbix

啟動Zabbix Server進程

在zabbix_server.conf中編輯資料庫配置

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

啟動Zabbix Server進程

# systemctl start zabbix-server

編輯Zabbix前端的PHP配置

Zabbix前端的Apache設定檔位於 /etc/httpd/conf.d/zabbix.conf 。一些PHP設定已經完成了配置。

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

依據所在時區,你可以取消 “date.timezone” 設定的註釋,並正確配置它。在設定檔變更後,需要重新啟動Apache Web伺服器。

# systemctl start httpd

Zabbix前端可以在瀏覽器中透過 http://zabbix-frontend-hostname/zabbix 存取。預設的使用者名稱/密碼為 Admin/zabbix。

1.2  Debian / Ubuntu

支援版本: Debian 7 (Wheezy) and 8 (Jessie), Ubuntu 14.04 LTS (Trusty Tahr), 16.04 LTS (Xenial Xerus)

安裝源碼庫配置部署包

安裝源碼庫配置部署包。這個部署包包含了apt設定檔。

在 Debian 7 上安裝 Zabbix 3.4:

# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+wheezy_all.deb
# dpkg -i zabbix-release_3.4-1+wheezy_all.deb
# apt-get update

在 Debian 8 上安裝 Zabbix 3.4:

# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+jessie_all.deb
# dpkg -i zabbix-release_3.4-1+jessie_all.deb
# apt-get update

在 Ubuntu 14.04 LTS 上安裝 Zabbix 3.4:

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

在 Ubuntu 16.04 LTS 上安裝 Zabbix 3.4:

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

安裝Zabbix部署包

使用mysql資料庫安裝Zabbix server、WEB前端的範例。

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

只安裝Zabbix Agent的範例。

# apt-get install zabbix-agent

安裝初始化資料庫

在MySQL上安裝Zabbix資料庫和用戶,請參考下列指導步驟。 MySQL資料庫建立腳本

然後導入初始架構(Schema)和數據

# cd /usr/share/doc/zabbix-server-mysql
# zcat create.sql.gz | mysql -uroot zabbix

啟動Zabbix Server進程

在zabbix_server.conf中編輯資料庫配置

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

啟動Zabbix Server進程

# service zabbix-server start

編輯Zabbix前端的PHP配置

Zabbix前端的Apache設定檔位於 /etc/apache2/conf.d/zabbix 或 /etc/apache2/conf-enabled/zabbix.conf 。一些PHP設定已經完成了配置。

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

依據所在時區,你可以取消 “date.timezone” 設定的註釋,並正確配置它。在設定檔變更後,需要重新啟動Apache Web伺服器。

# service apache2 restart

Zabbix前端可以在瀏覽器中透過 http://zabbix-frontend-hostname/zabbix 存取。預設的使用者名稱/密碼為 Admin/zabbix。

二、Zabbix監控主機

Zabbix自備中文,登入Zabbix後你可以看到預設的已經新增的本機監控,上方有監測中、資產報表、報表、設定、管理。

新增主機。 點選右上方新增主機,然後就是填入主機的詳情配置了。有幾個關鍵的地方:接口有IPMI接口、JMX接口、SNMP接口、agent接口,我們添加的是主機所以選擇agent接口。 IP位址就是我們將要新增的主機的IP或域名,對應埠為預設的10050。

其它的配置可以參考wzfou.com的示範:(點擊放大)

新增監控。 新增主機完成後,接著我們就可以主機清單中點選「監控項目」。

進入監控項配置介面後,可以根據一些條件,篩選出已經存在的一些監控項,直接點選」建立監控項」按鈕。

接下來就是填寫監控項目的詳細資料了。這裡有一個關鍵地方就是:鍵值。點選選擇按鈕以後,可以看到非常多的預先定義好的key,這些key都是zabbix自帶的key,這些key一般都是系統級別的通用的監控項所能夠用到的key,包括了CPU、記憶體、硬碟、網路等數十項參數。 (點擊放大)

數據更新間隔表示每隔多久就會取得監控項目對應的數據,你可以依照自己的需求來設定。其它的參考下圖的演示:(點擊放大)

最後,點選提交,完成監控項目的設定。

回到主機頁面,你就可以看到你剛剛新增成功的監控項目了。

多個監控項目你可以重複以上操作,不過在zabbix中加入帶有參數的監控項目時,需要自己事先了解各參數的作用,例如監控硬碟分區容量,可以使用」vfs.fs.size[fs,< mode>]」這個鍵。其中”vfs.fs.size」就是鍵名,”[fs,<mode>]」就是這個鍵所需要的參數。官網有速查手冊:https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent

三、Zabbix監控報告

如果想要查看即時數據報告,可以點擊“監測中”,然後搜尋你的主機還有監控項​​。

點擊後就可以看到圖表數據,你可以點擊放大圖表查看對應時段的報告。

在報表裡有詳細的各個監控主機的監視器報表。

Zabbix也提供了聚合圖形,你自己可以將不同的監控項目聚合在一起,然後形成新的報表。 (點擊放大)

這是Zabbix聚合報表效果。

Zabbix也提供了警報功能,可以與簡訊、微信等各類APP整合。

四、總結

Zabbix是基於WEB介面的提供分散式網路監視功能的企業級的開源解決方案,最大的特點是分散式監控,自動發現,自訂監控項目。在監控界,Zabbix是「牛刀」了,用在個人伺服器監控上真的是「小試」了。

如果你加入Zabbix監控後沒有資料顯示,看看監控項目是否顯示正常運作。尤其是對於一些需要自訂監控參數的監控項,最好自己先在服務端手動測試一下,命令格式:zabbix_get -s 192.168.0.1 -k system.cpu.switches。有數據回傳就表示參數設定正常。

發表評論