來源:51CTO
閱讀:553
作者:俊偉祺i
欄目:系統(tǒng)運維
要想實時地了解服務(wù)器的運行狀況并且能在出現(xiàn)問題時及時解決,利用監(jiān)控軟件是一個很好的途徑。就目前而言,有服務(wù)器的地方必然少不了監(jiān)控系統(tǒng)?,F(xiàn)有的監(jiān)控軟件有很多,但是Zabbix可以靈活的監(jiān)控服務(wù)器資源,并且集Cacti和Nagio兩者的優(yōu)點于一身且功能更加強大,實現(xiàn)企業(yè)級分布式監(jiān)控,所以在市場應(yīng)用更廣。
一、Zabbix概述
Zabbix是一個基于Web界面的企業(yè)級開源監(jiān)控套件,提供分布式系統(tǒng)監(jiān)控與網(wǎng)絡(luò)監(jiān)視功能。具有主機的性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控、多種告警方式、詳細(xì)報表、圖表的繪制等功能。監(jiān)測的對象可以是Linux或Windows服務(wù)器,也可以是路由器、交換機等網(wǎng)絡(luò)設(shè)備,通過SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、Zabbix、Agent、PING、端口監(jiān)視等方法提供對遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器等監(jiān)控、數(shù)據(jù)收集等功能,并提供通知機制使系統(tǒng)管理員可以快速定位、解決系統(tǒng)中存在的各種問題。目前Zabbix最新版本為Zabbix 3.4.官方網(wǎng)站是http://www.zabbix.com 。
Zabbix是免費的。Zabbix遵循GPL(通用公共許可證)版本2,這意味著它的源代碼是可以自由分布的。Zabbix的商業(yè)版本是由Zabbix公司提供支持的。世界上很多大小不同的組織機構(gòu)都依懶于Zabbix作為自己的一個主要的監(jiān)控平臺。尤其是現(xiàn)在很多互聯(lián)網(wǎng)企業(yè)都在使用它。
Zabbix是一個高度集成的網(wǎng)絡(luò)監(jiān)控解決方案,具體描述如圖:
1、Zabbix重要組件
zabbix主要由以下幾個重要的組件構(gòu)成,具體作用如下:
Zabbix Server:負(fù)責(zé)接收Agent發(fā)送報告信息的核心組件,所有的配置、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)操作都由它組織進(jìn)行;
Database strongage:負(fù)責(zé)存儲所有的配置信息以及收集的數(shù)據(jù);
Web interface:是zabbix的GUI接口,通常強開下與Zabbix Server運行在同一臺主機上;
Proxy:屬于可選組件,常用于分布式監(jiān)控環(huán)境中,代理Server收集部分?jǐn)?shù)據(jù),然后轉(zhuǎn)發(fā)到Server,可以減輕Server的壓力;
*Agent:部署在被監(jiān)控的主機(客戶端)上,負(fù)責(zé)收集被監(jiān)控端主機的數(shù)據(jù),如CPU、內(nèi)存、數(shù)據(jù)庫等數(shù)據(jù),然后發(fā)送到Server端或Proxy端;
2、Zabbix進(jìn)程
默認(rèn)情況下,Zabbix包含五個程序:zabbix_agentd、zabbix_get、zabbix_sender、zabbix_server、zabbix_proxy,另外有一個zabbix_java_gateway是可選的,需要另外安裝。下面來分別介紹它們各自的作用:
zabbix_agentd:客戶端守護進(jìn)程,此進(jìn)程用于收集被監(jiān)控端的數(shù)據(jù),如CPU負(fù)載、內(nèi)存、硬盤使用情況等;
zabbix_get:zabbix工具是單獨使用的命令。zabbix_get是在server或者proxy端執(zhí)行獲取遠(yuǎn)程客戶端信息的命令。主要用于排錯。例如:在server端獲取不到客戶端的內(nèi)存數(shù)據(jù)時,我們可以使用zabbix_get獲取客戶端的內(nèi)容的方式來做故障排查;
zabbix_sender:用于發(fā)送數(shù)據(jù)給server或者Proxy,通常用于耗時比較常的檢查。很多檢查非常耗時間,導(dǎo)致zabbix超時。于是我們在腳本執(zhí)行完畢之后,可以使用sender主動提交數(shù)據(jù);
zabbix_server:zabbix服務(wù)器端守護進(jìn)程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、
zabbix_java_gateway的數(shù)據(jù)最終都是提交到server。數(shù)據(jù)并不都是主動提交給zabbix_server的,也有被動提交數(shù)據(jù)的,及server主動去獲取數(shù)據(jù);zabbix_proxy:zabbix代理守護進(jìn)程。功能類似于server,唯一不同的是它只是一個中轉(zhuǎn)站,需要把收集到的數(shù)據(jù)主動(或被動)地提交到server上;
zabbix_java_gateway:在zabbix2.0之后引入的一個功能。顧名思義:Java網(wǎng)關(guān),類似agentd,但目前只用于Java方面,需要特別注意的是,它只能主動去獲取數(shù)據(jù),而不能被動獲取數(shù)據(jù)。它的數(shù)據(jù)最終會提交到server或者proxy;
3、Zabbix監(jiān)控架構(gòu)
在實際生產(chǎn)環(huán)境中,Zabbix根據(jù)網(wǎng)絡(luò)環(huán)境,監(jiān)控規(guī)模等外界因素分為三種架構(gòu):server-client(直接連接)、master-node-client(Node架構(gòu))、server-proxy-client(Proxy架構(gòu)),如下圖所示:
1)server-client架構(gòu)(直接連接)
server-client架構(gòu)是Zabbix的最簡單的架構(gòu),監(jiān)控機和被監(jiān)控機之間不經(jīng)過任何代理,直接在zabbix server和zabbix agentd之間進(jìn)行數(shù)據(jù)交互,適用于網(wǎng)絡(luò)比較簡單,設(shè)備比較少的監(jiān)控環(huán)境。
2)master-node-client架構(gòu)(node架構(gòu))
master-node-client架構(gòu)是Zabbix最復(fù)雜的監(jiān)控架構(gòu),適用于跨網(wǎng)絡(luò)、跨機房、設(shè)備較多的大型環(huán)境。每個node同時也是一個server端。node下面可以接proxy,也可以直接接client。node有自己的配置文件和數(shù)據(jù)庫。其要做的是將配置信息和監(jiān)控數(shù)據(jù)項master同步。當(dāng)master發(fā)生故障或損壞,node可以保證架構(gòu)的完整性。
3)server-proxy-client架構(gòu)(proxy架構(gòu))
proxy是server、client之間溝通的一個橋梁,proxy本身沒有前端,而且其本身并不存放數(shù)據(jù),只是將agentd發(fā)來的數(shù)據(jù)暫時存放,而后在提交給server。該架構(gòu)經(jīng)常是和master-node-client架構(gòu)做比較的架構(gòu),一般適用于跨機房、跨網(wǎng)絡(luò)的中型網(wǎng)絡(luò)架構(gòu)的監(jiān)控。
4、YUM安裝Zabbix
Zabbix提供兩種安裝方式:YUM安裝與編譯安裝。需要注意的是,由于Centos官方Y(jié)UM源中并不提供Zabbix軟件包以及相關(guān)依賴包,因此,如果想用YUM安裝Zabbix需要通過Zabbix官方源或第三方的YUM源實現(xiàn)。Zabbix服務(wù)器需要LAMP環(huán)境或LNMP環(huán)境,以下實驗部署環(huán)境采用YUM安裝的LAMP環(huán)境為例,詳細(xì)介紹Zabbix監(jiān)控服務(wù)器的部署方法。
1)安裝MariaDB
在Centos 7 系統(tǒng)光盤中默認(rèn)提供的數(shù)據(jù)庫不是mysql而是MariaDB,因此在LAMP架構(gòu)中使用MariaDB來充當(dāng)“M”的角色,其余的組件還是保持原有的Apache與PHP。MariaDB是Mysql數(shù)據(jù)庫源碼的一個分支版本,與MYSQL在大多數(shù)方面是兼容的。
2)安裝Zabbix
因為安裝Zabbix時會安裝很多依賴包,其中包括httpd與PHP相關(guān)依賴包,所以直接安裝Zabbix即可。無須在單獨安裝httpd與PHP。
二、搭建Zabbix監(jiān)控服務(wù)器
此安裝全部yum源均是通過連接公網(wǎng)使用網(wǎng)絡(luò)源而配置的
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官方網(wǎng)站:Zabbix官網(wǎng)
Zabbix 4.0官方配置文檔:Zabbix 4.0官方配置文檔
1、安裝Centos 7源
[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
<!--安裝網(wǎng)絡(luò)Centos 7源-->
2、安裝zabbix 4.0
[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
3、安裝mariadb數(shù)據(jù)庫
[root@centos02 ~]# yum -y install mariadb mariadb-server <!--安裝mariadb數(shù)據(jù)庫依賴-->
[root@centos02 ~]# systemctl start mariadb.service <!--啟動服務(wù)-->
[root@centos02 ~]# systemctl enable mariadb.service <!--設(shè)置服務(wù)開機自啟-->
[root@centos02 ~]# mysqladmin -uroot password <!--設(shè)置數(shù)據(jù)庫密碼-->
[root@centos02 ~]# mysql -uroot -ppwd@123 <!--連接數(shù)據(jù)庫-->
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
<!--創(chuàng)建數(shù)據(jù)庫zabbix連接使用,數(shù)據(jù)庫名字為zabbix,默認(rèn)字符編碼utf8,-->
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by \\\'pwd@123\\\'; <!--授權(quán)zabbix賬戶訪問zabbix數(shù)據(jù)庫密碼是pwd@123-->
4、安裝及配置zabbix服務(wù)
[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數(shù)據(jù)導(dǎo)入到創(chuàng)建zabbix數(shù)據(jù)庫中 -->
[root@centos02 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak <!--備份zabbix服務(wù)配置文件-->
[root@centos02 ~]# vim /etc/zabbix/zabbix_server.conf <!--修改zabbix服務(wù)配置文件-->
91 DBHost=localhost <!--去掉注釋符號-->
100 DBName=zabbix <!--數(shù)據(jù)庫名稱,根據(jù)實際修改,默認(rèn)不用修改-->
116 DBUser=zabbix <!--數(shù)據(jù)庫用戶名,默認(rèn)不用修改-->
124 DBPassword=pwd@123 <!--數(shù)據(jù)庫密碼,修改此行-->
[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地址,這里要指定服務(wù)器的IP地址,現(xiàn)在是同一臺服務(wù)器上,所有保持默認(rèn))
-->
98 Server=127.0.0.1 <!--客戶端被動等待指定服務(wù)器來查詢數(shù)據(jù)-->
139 ServerActive=127.0.0.1 <!--客戶端主動提交數(shù)據(jù)到指定的服務(wù)器-->
150 Hostname=Zabbix server <!--建議修改此行,配置規(guī)范的主機名-->
[root@centos02 ~]# vim /etc/httpd/conf.d/zabbix.conf
<!--編輯 Zabbix前端配置文件,設(shè)置時區(qū)為上海-->
21 php_value date.timezone Asia/Shanghai <!--設(shè)置為上海時區(qū),并該行刪除注釋符號-->
現(xiàn)在服務(wù)器端基本配置完成,但是由于字體顯示原因,可能使用瀏覽器訪問時,會出現(xiàn)部分文字以亂碼顯示,所以要下載標(biāo)準(zhǔn)中文字體??梢酝ㄟ^網(wǎng)盤下載: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/ <!--進(jìn)入目錄-->
[root@centos02 fonts]# ls
graphfont.ttf simkai.ttf
[root@centos02 ~]# vim /usr/share/zabbix/include/defines.inc.php
<!--修改PHP界面支持中文字體(如果不修改瀏覽器訪問會出現(xiàn)亂碼)-->
70 define(\\\'ZBX_GRAPH_FONT_NAME\\\', \\\'simkai\\\');
<!--將原有的“graphfont”更改為“simkai” -->
[root@centos02 ~]# systemctl start zabbix-server zabbix-agent httpd
<!--啟動zabbix-server、zabbix-agent、httpd服務(wù)-->
[root@centos02 ~]# systemctl enable zabbix-server zabbix-agent httpd <!--設(shè)置開機自動啟動-->
5、通過客戶端使用瀏覽器配置Zabbix服務(wù)器
我這里客戶端使用的是火狐瀏覽器,如果沒有可以通過上面連接提取
1)http://192.168.100.20/zabbix 訪問zabbix前端安裝向?qū)?,單擊Next step鍵
2)環(huán)境檢測界面,確保所有軟件都是OK才可以繼續(xù)
3)數(shù)據(jù)庫連接配置界面,根據(jù)剛才創(chuàng)建好的zabbix數(shù)據(jù)庫填寫授權(quán)信息
4)數(shù)據(jù)庫連接配置完成,填寫zabbix服務(wù)信息
5)返回配置匯總信息,默認(rèn)下一步
6)安裝完成
7)登錄界面輸入默認(rèn)的用戶名Admin,密碼zabbix即可登錄到zabbix服務(wù)器
8)修改登錄zabbix服務(wù)器的用戶及密碼,設(shè)置界面語言為中文
9)設(shè)置完成,退出重新登陸即可
10)創(chuàng)建bob用戶,將用戶加入Guests群組,設(shè)置密碼、語言及主題
11)檢測內(nèi)存,不會出現(xiàn)中文亂碼
6、配置zabbix監(jiān)控Linux客戶端
1)安裝zabbix客戶端依賴程序
[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
<!--網(wǎng)絡(luò)源安裝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服務(wù)器端-->
ServerActive=192.168.100.20 <!--zabbix服務(wù)器端-->
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服務(wù)-->
[root@centos03 ~]# systemctl enable zabbix-agent.service <!--設(shè)置為開機自動啟動-->
[root@centos03 ~]# netstat -anptu | grep zabbix <!--監(jiān)聽agent服務(wù)是否正常啟動-->
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2244/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 2244/zabbix_agentd
2)通過客戶端使用瀏覽器配置Zabbix服務(wù)器監(jiān)控Linux
①創(chuàng)建主機
②編輯詳細(xì)信息,單擊提交
③添加linux主機應(yīng)用集
④添加監(jiān)控項
⑤創(chuàng)建圖形
⑥創(chuàng)建觸發(fā)器
⑦查看圖形監(jiān)控圖
—————— 本文至此結(jié)束,感謝閱讀 ——————
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.bingfeng168.cn