您好,登錄后才能下訂單哦!
要想實時地了解服務器的運行狀況并且能在出現問題時及時解決,利用監控軟件是一個很好的途徑。就目前而言,有服務器的地方必然少不了監控系統。現有的監控軟件有很多,但是Zabbix可以靈活的監控服務器資源,并且集Cacti和Nagio兩者的優點于一身且功能更加強大,實現企業級分布式監控,所以在市場應用更廣。
Zabbix是一個基于Web界面的企業級開源監控套件,提供分布式系統監控與網絡監視功能。具有主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細報表、圖表的繪制等功能。監測的對象可以是Linux或Windows服務器,也可以是路由器、交換機等網絡設備,通過SNMP(簡單網絡管理協議)、Zabbix、Agent、PING、端口監視等方法提供對遠程網絡服務器等監控、數據收集等功能,并提供通知機制使系統管理員可以快速定位、解決系統中存在的各種問題。目前Zabbix最新版本為Zabbix 3.4.官方網站是http://www.zabbix.com 。
Zabbix是免費的。Zabbix遵循GPL(通用公共許可證)版本2,這意味著它的源代碼是可以自由分布的。Zabbix的商業版本是由Zabbix公司提供支持的。世界上很多大小不同的組織機構都依懶于Zabbix作為自己的一個主要的監控平臺。尤其是現在很多互聯網企業都在使用它。
Zabbix是一個高度集成的網絡監控解決方案,具體描述如圖:
zabbix主要由以下幾個重要的組件構成,具體作用如下:
Zabbix Server:負責接收Agent發送報告信息的核心組件,所有的配置、數據統計、數據操作都由它組織進行;
Database strongage:負責存儲所有的配置信息以及收集的數據;
Web interface:是zabbix的GUI接口,通常強開下與Zabbix Server運行在同一臺主機上;
- Proxy:屬于可選組件,常用于分布式監控環境中,代理Server收集部分數據,然后轉發到Server,可以減輕Server的壓力;
*Agent:部署在被監控的主機(客戶端)上,負責收集被監控端主機的數據,如CPU、內存、數據庫等數據,然后發送到Server端或Proxy端;
默認情況下,Zabbix包含五個程序:zabbix_agentd、zabbix_get、zabbix_sender、zabbix_server、zabbix_proxy,另外有一個zabbix_java_gateway是可選的,需要另外安裝。下面來分別介紹它們各自的作用:
zabbix_agentd:客戶端守護進程,此進程用于收集被監控端的數據,如CPU負載、內存、硬盤使用情況等;
zabbix_get:zabbix工具是單獨使用的命令。zabbix_get是在server或者proxy端執行獲取遠程客戶端信息的命令。主要用于排錯。例如:在server端獲取不到客戶端的內存數據時,我們可以使用zabbix_get獲取客戶端的內容的方式來做故障排查;
zabbix_sender:用于發送數據給server或者Proxy,通常用于耗時比較常的檢查。很多檢查非常耗時間,導致zabbix超時。于是我們在腳本執行完畢之后,可以使用sender主動提交數據;
zabbix_server:zabbix服務器端守護進程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、
zabbix_java_gateway的數據最終都是提交到server。數據并不都是主動提交給zabbix_server的,也有被動提交數據的,及server主動去獲取數據;zabbix_proxy:zabbix代理守護進程。功能類似于server,唯一不同的是它只是一個中轉站,需要把收集到的數據主動(或被動)地提交到server上;
- zabbix_java_gateway:在zabbix2.0之后引入的一個功能。顧名思義:Java網關,類似agentd,但目前只用于Java方面,需要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會提交到server或者proxy;
在實際生產環境中,Zabbix根據網絡環境,監控規模等外界因素分為三種架構:server-client(直接連接)、master-node-client(Node架構)、server-proxy-client(Proxy架構),如下圖所示:
server-client架構是Zabbix的最簡單的架構,監控機和被監控機之間不經過任何代理,直接在zabbix server和zabbix agentd之間進行數據交互,適用于網絡比較簡單,設備比較少的監控環境。
master-node-client架構是Zabbix最復雜的監控架構,適用于跨網絡、跨機房、設備較多的大型環境。每個node同時也是一個server端。node下面可以接proxy,也可以直接接client。node有自己的配置文件和數據庫。其要做的是將配置信息和監控數據項master同步。當master發生故障或損壞,node可以保證架構的完整性。
proxy是server、client之間溝通的一個橋梁,proxy本身沒有前端,而且其本身并不存放數據,只是將agentd發來的數據暫時存放,而后在提交給server。該架構經常是和master-node-client架構做比較的架構,一般適用于跨機房、跨網絡的中型網絡架構的監控。
Zabbix提供兩種安裝方式:YUM安裝與編譯安裝。需要注意的是,由于Centos官方YUM源中并不提供Zabbix軟件包以及相關依賴包,因此,如果想用YUM安裝Zabbix需要通過Zabbix官方源或第三方的YUM源實現。Zabbix服務器需要LAMP環境或LNMP環境,以下實驗部署環境采用YUM安裝的LAMP環境為例,詳細介紹Zabbix監控服務器的部署方法。
在Centos 7 系統光盤中默認提供的數據庫不是MySQL而是MariaDB,因此在LAMP架構中使用MariaDB來充當“M”的角色,其余的組件還是保持原有的Apache與PHP。MariaDB是MySQL數據庫源碼的一個分支版本,與MySQL在大多數方面是兼容的。
因為安裝Zabbix時會安裝很多依賴包,其中包括httpd與PHP相關依賴包,所以直接安裝Zabbix即可。無須在單獨安裝httpd與PHP。
此安裝全部yum源均是通過連接公網使用網絡源而配置的
Centos 7源:wget http://mirrors.aliyun.com/repo/Centos-7.repo
Zabbix 4.0源: rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
Zabbix依賴程序:yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
Zabbix官方網站:Zabbix官網
Zabbix 4.0官方配置文檔:Zabbix 4.0官方配置文檔
[root@centos02 ~]# cd /etc/yum.repos.d/
[root@centos02 yum.repos.d]# ls
local.repo
[root@centos02 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
<!--安裝網絡Centos 7源-->
[root@centos02 yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
[root@centos02 ~]# yum -y install mariadb mariadb-server <!--安裝mariadb數據庫依賴-->
[root@centos02 ~]# systemctl start mariadb.service <!--啟動服務-->
[root@centos02 ~]# systemctl enable mariadb.service <!--設置服務開機自啟-->
[root@centos02 ~]# mysqladmin -uroot password <!--設置數據庫密碼-->
[root@centos02 ~]# mysql -uroot -ppwd@123 <!--連接數據庫-->
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
<!--創建數據庫zabbix連接使用,數據庫名字為zabbix,默認字符編碼utf8,-->
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'pwd@123'; <!--授權zabbix賬戶訪問zabbix數據庫密碼是pwd@123-->
[root@centos02 ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
<!--安裝zabbix依賴程序-->
[root@centos02 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql
-uzabbix -ppwd@123 zabbix <!--將zabbix數據導入到創建zabbix數據庫中 -->
[root@centos02 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak <!--備份zabbix服務配置文件-->
[root@centos02 ~]# vim /etc/zabbix/zabbix_server.conf <!--修改zabbix服務配置文件-->
91 DBHost=localhost <!--去掉注釋符號-->
100 DBName=zabbix <!--數據庫名稱,根據實際修改,默認不用修改-->
116 DBUser=zabbix <!--數據庫用戶名,默認不用修改-->
124 DBPassword=pwd@123 <!--數據庫密碼,修改此行-->
[root@centos02 ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak <!--備份zabbix agent主配置文件-->
[root@centos02 ~]# vim /etc/zabbix/zabbix_agentd.conf
<!--編輯zabbix agent主配置文件,
(指定zabbix server的IP地址,這里要指定服務器的IP地址,現在是同一臺服務器上,所有保持默認)
-->
98 Server=127.0.0.1 <!--客戶端被動等待指定服務器來查詢數據-->
139 ServerActive=127.0.0.1 <!--客戶端主動提交數據到指定的服務器-->
150 Hostname=Zabbix server <!--建議修改此行,配置規范的主機名-->
[root@centos02 ~]# vim /etc/httpd/conf.d/zabbix.conf
<!--編輯 Zabbix前端配置文件,設置時區為上海-->
21 php_value date.timezone Asia/Shanghai <!--設置為上海時區,并該行刪除注釋符號-->
現在服務器端基本配置完成,但是由于字體顯示原因,可能使用瀏覽器訪問時,會出現部分文字以亂碼顯示,所以要下載標準中文字體。可以通過網盤下載:https://pan.baidu.com/s/1iFpLZ4_5Snxry2jUmV8fCw
提取碼:ao89
[root@centos02 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg simkai.ttf
[root@centos02 ~]# find / -name graphfont.ttf <!--查看graphfont.ttf路徑-->
/usr/share/zabbix/assets/fonts/graphfont.ttf
[root@centos02 ~]# mv simkai.ttf /usr/share/zabbix/assets/fonts/
<!--剪切中文字體到/usr/share/zabbix/assets/fonts/目錄下-->
[root@centos02 ~]# cd /usr/share/zabbix/assets/fonts/ <!--進入目錄-->
[root@centos02 fonts]# ls
graphfont.ttf simkai.ttf
[root@centos02 ~]# vim /usr/share/zabbix/include/defines.inc.php
<!--修改PHP界面支持中文字體(如果不修改瀏覽器訪問會出現亂碼)-->
70 define('ZBX_GRAPH_FONT_NAME', 'simkai');
<!--將原有的“graphfont”更改為“simkai” -->
[root@centos02 ~]# systemctl start zabbix-server zabbix-agent httpd
<!--啟動zabbix-server、zabbix-agent、httpd服務-->
[root@centos02 ~]# systemctl enable zabbix-server zabbix-agent httpd <!--設置開機自動啟動-->
我這里客戶端使用的是火狐瀏覽器,如果沒有可以通過上面連接提取
1)http://192.168.100.20/zabbix 訪問zabbix前端安裝向導,單擊Next step鍵
2)環境檢測界面,確保所有軟件都是OK才可以繼續
3)數據庫連接配置界面,根據剛才創建好的zabbix數據庫填寫授權信息
4)數據庫連接配置完成,填寫zabbix服務信息
5)返回配置匯總信息,默認下一步
6)安裝完成
7)登錄界面輸入默認的用戶名Admin,密碼zabbix即可登錄到zabbix服務器
8)修改登錄zabbix服務器的用戶及密碼,設置界面語言為中文
9)設置完成,退出重新登陸即可
10)創建bob用戶,將用戶加入Guests群組,設置密碼、語言及主題
11)檢測內存,不會出現中文亂碼
[root@centos03 yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
<!--網絡源安裝zabbix4.0版本-->
[root@centos03 ~]# yum -y install zabbix-agent <!--安裝依賴程序-->
[root@centos03 ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
<!--備份配置文件-->
[root@centos03 ~]# vim /etc/zabbix/zabbix_agentd.conf<!--修改zabbix客戶端主配置文件-->
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.100.20 <!--zabbix服務器端-->
ServerActive=192.168.100.20 <!--zabbix服務器端-->
Hostname=192.168.100.30 <!--zabbix客戶端計算機名或者IP地址-->
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#UnsafeUserParameters=0
[root@centos03 ~]# systemctl start zabbix-agent.service <!--啟動zabbix-agent服務-->
[root@centos03 ~]# systemctl enable zabbix-agent.service <!--設置為開機自動啟動-->
[root@centos03 ~]# netstat -anptu | grep zabbix <!--監聽agent服務是否正常啟動-->
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2244/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 2244/zabbix_agentd
—————— 本文至此結束,感謝閱讀 ——————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。