為了監控各大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作全方位的監控就非常有必要了。
更多的關於網站伺服器監控與VPS主機效能評測,還可以看看:
- Linux系統監控指令整理總表-掌握CPU,記憶體,磁碟IO等找出效能瓶頸
- Smokeping安裝與設定-免費開源網路效能監控工具視覺化主/從部署
- 伺服器日誌分析利器:ngxtop和GoAccess-即時監控視覺化管理快速找出異常來源
PS:2017年12月27日更新,相對於Zabbix大而全的監控不防來試試小而精的監控工具,這兩款工具將網路流量監控發揮到了極致:兩款優秀的伺服器網路流量監控工具:Ntopng和Munin-功能強大直覺。
一、Zabbix安裝部署
官網:
- 網址:https://www.zabbix.com
- 文件:https://www.zabbix.com/documentation/3.4/zh/
- 一鍵包: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
。有數據回傳就表示參數設定正常。