Zabbix是用於網絡和應用的開源監控軟件。 它提供從服務器,虛擬機和任何其餘類型的網絡設備收集的數千個度量的實時監控。 這些指標能夠幫助您肯定IT基礎架構的當前運行情況,並在客戶投訴以前檢測硬件或軟件組件的問題。 有用的信息存儲在數據庫中,您能夠隨着時間的推移分析數據,提升所提供服務的質量,或計劃升級您的設備。php
Zabbix使用客戶端 - 服務器架構,並在受監視客戶端上使用一個小代理來收集數據並將其發送到Zabbix服務器。 Zabbix版本3支持服務器和鏈接的客戶端之間的加密通訊,所以您的數據在不安全的網絡上傳輸時受到保護。前端
Zabbix服務器將其數據存儲在由MySQL,PostgreSQL或Oracle支持的關係數據庫中。 它還提供了一個Web界面,您能夠查看數據並配置系統設置。 在本教程中,咱們將配置兩臺機器。 一個將被配置爲服務器,另外一個將做爲您要監視的客戶端。 服務器將使用MySQL數據庫記錄監控數據,並使用Apache來提供Web界面。mysql
要遵循本教程,您將須要:linux
首先,咱們須要在安裝MySQL,Apache和PHP的服務器上安裝Zabbix Server。 本教程中咱們將本機稱爲「Zabbix服務器」。 以非root用戶身份登陸本機:web
ssh sammy@your_zabbix_server_ip_address
在安裝Zabbix以前,咱們須要安裝Zabbix須要的幾個PHP模塊。 首先,更新系統的可用軟件包列表:
而後安裝Zabbix須要的PHP模塊:sudo apt-get update
sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring
如今咱們能夠安裝Zabbix。sql
Zabbix在Ubuntu的軟件包管理器中可用,但它已通過時了,因此咱們將使用官方的Zabbix存儲庫來安裝最新的穩定版本。 下載並安裝存儲庫配置包:數據庫
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
您將看到如下輸出:
更新包索引,以便包含新的存儲庫:
而後安裝Zabbix服務器和Web前端與MySQL數據庫支持:
Selecting previously unselected package zabbix-release. (Reading database ... 55276 files and directories currently installed.) Preparing to unpack zabbix-release_3.2-1+xenial_all.deb ... Unpacking zabbix-release (3.2-1+xenial) ... Setting up zabbix-release (3.2-1+xenial) ...sudo apt-get updatesudo apt-get install zabbix-server-mysql zabbix-frontend-php
咱們還要安裝Zabbix代理,這樣咱們就能夠收集有關Zabbix服務器狀態的數據。
sudo apt-get install zabbix-agent
在咱們可使用Zabbix以前,咱們必須設置一個數據庫來保存Zabbix服務器從其代理收集的數據。
咱們須要建立一個新的MySQL數據庫並填充一些基本信息,以使其適合Zabbix。 咱們還將爲此數據庫建立一個特定用戶,所以Zabbix沒有使用root
賬戶登陸到MySQL。apache
使用您在MySQL服務器安裝期間設置的root密碼做爲root用戶登陸MySQL:ubuntu
建立支持UTF-8字符的Zabbix數據庫:mysql -uroot -p
而後建立一個Zabbix服務器將使用的用戶,讓它訪問新的數據庫,併爲用戶設置密碼:create database zabbix character set utf8 collate utf8_bin;
而後應用這些新權限:
grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';flush privileges;
退出數據庫控制檯。
quit
接下來,咱們必須導入初始模式和數據。 Zabbix安裝爲咱們提供了一個爲咱們設置的文件。vim
運行如下命令設置模式並將數據導入zabbix
數據庫。 咱們將使用zcat
由於文件中的數據被壓縮。
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
輸入您提示時配置的zabbix MySQL用戶的密碼。
若是成功,此命令將不會輸出任何錯誤。 若是您看到錯誤ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
那麼請確保使用zabbix
用戶的密碼而不是root
用戶。
爲了使Zabbix服務器使用此數據庫,您須要在Zabbix服務器配置文件中設置數據庫密碼。 在編輯器中打開配置文件:
sudo vim /etc/zabbix/zabbix_server.conf
文件中的這些註釋說明了如何鏈接到數據庫。 咱們須要將文件中的DBPassword
值設置爲數據庫用戶的密碼。 在這些註釋下方添加一行以配置數據庫:
DBPassword
這須要照顧Zabbix服務器配置,可是咱們必須對咱們的PHP設置進行一些修改,以使Zabbix Web界面正常工做。
DBPassword=your_zabbix_mysql_password
Zabbix Web界面是用PHP編寫的,須要一些特殊的PHP服務器設置。 Zabbix安裝過程建立了一個包含這些設置的Apache配置文件。 它位於目錄/etc/zabbix
,由Apache自動加載。 咱們須要對這個文件作一個小的改動,因此打開它。
該文件包含知足Zabbix Web界面所須要的PHP設置。 您惟一須要作的更改是設置適當的時區,默認狀況下會被註釋掉。sudo nano /etc/zabbix/apache.conf
... <IfModule mod_php7.c> 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 </IfModule>
取消註釋上面突出顯示的時區行,並將其更改成您的時區。 您可使用支持的時區列表爲您找到正確的時區 。 而後保存並關閉文件。
如今從新啓動Apache以應用這些新設置。
sudo systemctl restart apache2
而後檢查Zabbix服務器是否正常運行:sudo systemctl start zabbix-server
您將看到如下狀態:sudo systemctl status zabbix-server
最後,啓動服務器啓動時:● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...
服務器已設置並鏈接到數據庫。 如今咱們來設置web前端。
sudo systemctl enable zabbix-server
Web界面可以讓咱們查看報告並添加要監視的主機,但須要一些初始設置才能使用。 啓動瀏覽器並轉到http://your_zabbix_server_ip_address /zabbix/
。 在第一個屏幕上,您將看到一個歡迎信息。 單擊下一步繼續。
在下一個屏幕上,您將看到列出運行Zabbix的全部先決條件的表。
此表中的全部值必須爲OK ,所以請驗證它們。 確保向下滾動並查看全部先決條件。 驗證一切便可完成後,點擊下一步繼續。
下一個屏幕要求數據庫鏈接信息
咱們向Zabbix服務器通報了咱們的數據庫,但Zabbix Web界面也須要訪問數據庫來管理主機和讀取數據。 所以,輸入您在第2步中配置的MySQL憑據,而後單擊下一步繼續。
在下一個屏幕上,您能夠將選項保留爲默認值。
名稱是可選的; 若是您有多個監控服務器,則它將在Web界面中用於區分一個服務器。 單擊下一步繼續。
下一個屏幕將顯示預安裝摘要,以便您能夠確認一切正確。
單擊下一步繼續到最後的屏幕。
Web界面設置完成! 此過程建立配置文件/usr/share/zabbix/conf/zabbix.conf.php
,您能夠在未來備份和使用。 單擊完成以進入登陸屏幕。 默認用戶爲Admin ,密碼爲zabbix 。
在咱們登陸以前,讓咱們在其餘服務器上設置Zabbix代理。
如今咱們須要配置將監控數據發送到Zabbix服務器的代理軟件。
登陸到第二臺服務器,咱們稱之爲「受監視的服務器」。
而後,就像在Zabbix服務器上同樣,運行如下命令來安裝存儲庫配置包:ssh sammy@your_monitored_server_ip_address
接下來,更新包索引:wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
sudo apt-get update
而後安裝Zabbix代理:
sudo apt-get install zabbix-agent
sudo nano /etc/zabbix/zabbix_agentd.conf
該文件中的每一個設置都經過整個文件中的資料性註釋進行記錄,但您只需編輯其中的一些。
首先你必須編輯Zabbix服務器的IP地址。 查找如下部分:
將默認值更改成Zabbix服務器的IP:
### Option: Server # List of comma delimited IP addresses (or hostnames) of Zabbix servers. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. # # Mandatory: no # Default: # Server= Server=127.0.0.1
保存並關閉文件。 如今,您能夠啓動Zabbix代理並將其設置爲在啓動時啓動:Server=your_zabbix_server_ip_address
爲了很好的措施,請檢查Zabbix代理是否正常運行:
sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent
您將看到如下狀態,指示代理正在運行:
sudo systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) ...
咱們的代理如今能夠將數據發送到Zabbix服務器。 可是爲了使用它,咱們必須從服務器的Web控制檯連接到它。
注意:若是使用UFW,請將其配置爲容許鏈接到端口10050
:
您能夠在Ubuntu 16.04中瞭解如何使用UFW設置防火牆的UFW 。
sudo ufw allow 10050/tcp
在咱們要監控的服務器上安裝代理只是一半的過程。 咱們要監控的每一個主機須要在Zabbix服務器上註冊,咱們能夠經過Web界面進行操做。
經過導航到地址http:// your_zabbix_server_ip_address /zabbix/
登陸到Zabbix Server Web界面。
當您登陸後,單擊配置 ,而後單擊頂部導航欄中的主機 。 而後點擊屏幕右上角的建立主機按鈕。 這將打開主機配置頁面。
調整主機名和IP地址以反映客戶機的主機名和IP地址。 而後經過從列表中選擇一個組或經過建立本身的組來將主機添加到組中。 主機能夠在多個組中。 Linux服務器組是一個很好的默認選擇。 添加該組後,單擊「 模板 」選項卡。