您好,登錄后才能下訂單哦!
在企業(yè)網(wǎng)絡(luò)運(yùn)維過程中,管理員必須隨時(shí)關(guān)注各服務(wù)器和網(wǎng)絡(luò)的運(yùn)行情況,以便及時(shí)發(fā)現(xiàn)問題,盡可能減少故障的發(fā)生。當(dāng)網(wǎng)絡(luò)中的設(shè)備,服務(wù)器等數(shù)量較多時(shí),為了更加方便、快捷地獲得各種監(jiān)控信息,通常會借助于一些集中監(jiān)測軟件。
博文大綱:
一、Zabbix概述、工作原理及重要組件;
二、Zabbix安裝;
三、配置Zabbix監(jiān)控系統(tǒng)監(jiān)控網(wǎng)絡(luò)設(shè)備;
要想實(shí)時(shí)地了解服務(wù)器的運(yùn)行狀況并且能在出現(xiàn)問題時(shí)及時(shí)解決,利用監(jiān)控軟件是一個(gè)很好的途徑。就目前而言,有服務(wù)器的地方必然少不了監(jiān)控系統(tǒng)?,F(xiàn)有的監(jiān)控軟件有很多,但是Zabbix可以靈活的監(jiān)控服務(wù)器資源,并且集Cacti和Nagio兩者的優(yōu)點(diǎn)于一身且功能更加強(qiáng)大,實(shí)現(xiàn)企業(yè)級分布式監(jiān)控,所以在市場上應(yīng)用非常廣泛!
Zabbix是一個(gè)基于Web界面的企業(yè)級開源監(jiān)控套件,提供分布式系統(tǒng)監(jiān)控與網(wǎng)絡(luò)監(jiān)視功能。具有主機(jī)的性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控、多種告警方式、詳細(xì)報(bào)表、圖表的繪制等功能。監(jiān)測的對象可以是Linux或Windows服務(wù)器,也可以是路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備,通過SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、Zabbix、Agent、PING、端口監(jiān)視等方法提供對遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器等監(jiān)控、數(shù)據(jù)收集等功能,并提供通知機(jī)制使系統(tǒng)管理員可以快速定位、解決系統(tǒng)中存在的各種問題。目前Zabbix最新版本為Zabbix 3.4.官方網(wǎng)站是http://www.zabbix.com 。
Zabbix是免費(fèi)的。Zabbix遵循GPL(通用公共許可證)版本2,這意味著它的源代碼是可以自由分布的。Zabbix的商業(yè)版本是由Zabbix公司提供支持的。世界上很多大小不同的組織機(jī)構(gòu)都依懶于Zabbix作為自己的一個(gè)主要的監(jiān)控平臺。尤其是現(xiàn)在很多互聯(lián)網(wǎng)企業(yè)都在使用它。
Zabbix是一個(gè)高度集成的網(wǎng)絡(luò)監(jiān)控解決方案,具體描述如圖:
zabbix主要由以下幾個(gè)重要的組件構(gòu)成,具體作用如下:
- Zabbix Server:負(fù)責(zé)接收Agent發(fā)送報(bào)告信息的核心組件,所有的配置、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)操作都由它組織進(jìn)行;
- Database strongage:負(fù)責(zé)存儲所有的配置信息以及收集的數(shù)據(jù);
- Web interface:是zabbix的GUI接口,通常情況下與Zabbix Server運(yùn)行在同一臺主機(jī)上;
- Proxy:屬于可選組件,常用于分布式監(jiān)控環(huán)境中,代理Server收集部分?jǐn)?shù)據(jù),然后轉(zhuǎn)發(fā)到Server,可以減輕Server的壓力;
- Agent:部署在被監(jiān)控的主機(jī)(客戶端)上,負(fù)責(zé)收集被監(jiān)控端主機(jī)的數(shù)據(jù),如CPU、內(nèi)存、數(shù)據(jù)庫等數(shù)據(jù),然后發(fā)送到Server端或Proxy端。
默認(rèn)情況下,Zabbix包含五個(gè)程序,另外還有一個(gè)是可選的,需要另外安裝。
各個(gè)程序各自的特點(diǎn)及作用如下:
- zabbix_agentd:客戶端守護(hù)進(jìn)程,此進(jìn)程用于收集被監(jiān)控端的數(shù)據(jù),如CPU負(fù)載、內(nèi)存、硬盤使用情況等;
- zabbix_get:zabbix工具是單獨(dú)使用的命令。zabbix_get是在server或者proxy端執(zhí)行獲取遠(yuǎn)程客戶端信息的命令。主要用于排錯(cuò)。例如:在server端獲取不到客戶端的內(nèi)存數(shù)據(jù)時(shí),我們可以使用zabbix_get獲取客戶端的內(nèi)容的方式來做故障排查;
- zabbix_sender:用于發(fā)送數(shù)據(jù)給server或者Proxy,通常用于耗時(shí)比較長的檢查。很多檢查非常耗時(shí)間,導(dǎo)致zabbix超時(shí)。于是我們在腳本執(zhí)行完畢之后,可以使用sender主動提交數(shù)據(jù);
- zabbix_server:zabbix服務(wù)器端守護(hù)進(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代理守護(hù)進(jìn)程。功能類似于server,唯一不同的是它只是一個(gè)中轉(zhuǎn)站,需要把收集到的數(shù)據(jù)主動(或被動)地提交到server上;
- zabbix_java_gateway:在zabbix2.0之后引入的一個(gè)功能。顧名思義:Java網(wǎng)關(guān),類似agentd,但目前只用于Java方面,需要特別注意的是,它只能主動去獲取數(shù)據(jù),而不能被動獲取數(shù)據(jù)。它的數(shù)據(jù)最終會提交到server或者proxy。
在實(shí)際生產(chǎn)環(huán)境中,Zabbix根據(jù)網(wǎng)絡(luò)環(huán)境,監(jiān)控規(guī)模等外界因素分為三種架構(gòu),如圖:
server-client架構(gòu)是Zabbix的最簡單的架構(gòu),監(jiān)控機(jī)和被監(jiān)控機(jī)之間不經(jīng)過任何代理,直接在zabbix server和zabbix agentd之間進(jìn)行數(shù)據(jù)交互,適用于網(wǎng)絡(luò)比較簡單,設(shè)備比較少的監(jiān)控環(huán)境;
master-node-client架構(gòu)是Zabbix最復(fù)雜的監(jiān)控架構(gòu),適用于跨網(wǎng)絡(luò)、跨機(jī)房、設(shè)備較多的大型環(huán)境。每個(gè)node同時(shí)也是一個(gè)server端。node下面可以接proxy,也可以直接接client。node有自己的配置文件和數(shù)據(jù)庫。其要做的是將配置信息和監(jiān)控?cái)?shù)據(jù)項(xiàng)master同步。當(dāng)master發(fā)生故障或損壞,node可以保證架構(gòu)的完整性;
proxy是server、client之間溝通的一個(gè)橋梁,proxy本身沒有前端,而且其本身并不存放數(shù)據(jù),只是將agentd發(fā)來的數(shù)據(jù)暫時(shí)存放,而后在提交給server。該架構(gòu)經(jīng)常是和master-node-client架構(gòu)做比較的架構(gòu),一般適用于跨機(jī)房、跨網(wǎng)絡(luò)的中型網(wǎng)絡(luò)架構(gòu)的監(jiān)控;
Zabbix提供兩種安裝方式:YUM安裝與編譯安裝。需要注意的是,由于Centos官方Y(jié)UM源中并不提供Zabbix軟件包以及相關(guān)依懶包,因此,如果想用YUM安裝Zabbix需要通過Zabbix官方源或第三方的YUM源實(shí)現(xiàn)。
Zabbix服務(wù)器需要LAMP環(huán)境或LNMP環(huán)境,以下實(shí)驗(yàn)部署環(huán)境采用YUM安裝的LAMP環(huán)境為例,詳細(xì)介紹Zabbix監(jiān)控服務(wù)器的部署方法。
為什么是安裝MariaDB不是MySQL呢?
因?yàn)镃entos 7 系統(tǒng)光盤中默認(rèn)提供的數(shù)據(jù)庫不是MySQL而是MariaDB,因此在LAMP架構(gòu)中使用MariaDB來充當(dāng)“M”的角色,其余的組件還是保持原有的Apache與PHP。MariaDB是MySQL數(shù)據(jù)庫源碼的一個(gè)分支版本,與MySQL在大多數(shù)方面是兼容的!
[root@localhost ~]# yum -y install mariadb-server mariadb
//安裝MariaDB數(shù)據(jù)庫及MariaDB客戶端工具
[root@localhost ~]# systemctl start mariadb
//啟動MariaDB數(shù)據(jù)庫
[root@localhost ~]# mysqladmin -u root password "password123"
//為MariaDB數(shù)據(jù)庫管理員設(shè)置密碼
[root@localhost ~]# mysql -u root -ppassword123
//登錄MariaDB數(shù)據(jù)庫
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
//登錄成功
因?yàn)榘惭bZabbix時(shí)會安裝很多依懶包,其中包括httpd與PHP相關(guān)依懶包,所以直接安裝Zabbix即可!無須在單獨(dú)安裝httpd與PHP。使用YUM安裝Zabbix可以使用Zabbix官方源或者第三方提供的YUM源,這里以第三方提供的YUM為例!
安裝Zabbix所需軟件包網(wǎng)盤鏈接:https://pan.baidu.com/s/1mnOHhY7EVmmMnONFetMUUg
提取碼:b2sd
建議在Windows系統(tǒng)解壓完成,將其中的YUM所需軟件包上傳到Linux服務(wù)器即可!
[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp /mnt/* /a
[root@localhost ~]# cd /a
[root@localhost a]# createrepo .
//因?yàn)楸旧碜詭У闹挥熊浖?,并沒有其需要用到的依賴關(guān)系文件,所以需要自己手動生成!
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//安裝Zabbix及其所需服務(wù)(如果使用官方源的話,直接YUM安裝即可)!
//zabbix-agent這個(gè)服務(wù)是被監(jiān)控端安裝的
因?yàn)榘惭bZabbix Web時(shí)需要數(shù)據(jù)庫,所以要在MariaDB中手動創(chuàng)建庫名為Zabbix的數(shù)據(jù)庫,并授權(quán)給zabbix用戶使用,以增加數(shù)據(jù)庫的安全性。
[root@localhost ~]# mysql -u root -ppassword123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password@456';
Query OK, 0 rows affected (0.00 sec)
//登錄數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫、并授予權(quán)限
導(dǎo)入數(shù)據(jù)庫SQL腳本文件
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz |mysql -u zabbix -ppassword@456 zabbix
編寫Zabbix server配置文件,指定數(shù)據(jù)庫的名稱、用戶和密碼。
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
…………………… //省略部分內(nèi)容
DBHost=localhost //去掉注釋
DBName=zabbix //不變
DBUser=zabbix //不變
DBPassword=password@456 //去掉注釋
編輯Zabbix agent的配置文件,必須指定zabbix server的IP地址,在每臺安裝了agent的主機(jī)上都要配置。
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
…………………… //省略部分內(nèi)容
Server=127.0.0.1 //客戶端被動等待指定服務(wù)器來查詢數(shù)據(jù)
ServerActive=127.0.0.1 //客戶端主動提交數(shù)據(jù)到指定服務(wù)器
Hostname=linux-server001 //修改
//因?yàn)楸緳C(jī)就是zabbix server,所以指定的地址就是本機(jī)即可!
編輯Apache服務(wù)器針對Zabbix的前端配置文件,設(shè)置時(shí)區(qū)與當(dāng)前系統(tǒng)時(shí)區(qū)一致即可!內(nèi)容如下:
[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
//去掉注釋,修改即可!
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//建議關(guān)閉防火墻與SELinux
[root@localhost ~]# systemctl restart zabbix-server.service
[root@localhost ~]# systemctl restart zabbix-agent.service
[root@localhost ~]# systemctl restart httpd
可以在本地訪問,也可在客戶端訪問,都可以!
為了增強(qiáng)安全性,需要修改Zabbix服務(wù)器默認(rèn)用戶Admin的初始密碼,操作如下:
安裝Zabbix后,當(dāng)顯示語言為中文時(shí),可能會出現(xiàn)中文亂碼的情況。主要是由字體導(dǎo)致的問題,如果需要解決,需要下載合適的字體,并將其上傳到Zabbix服務(wù)器上。
下載標(biāo)準(zhǔn)中文字體,將其上傳到Zabbix服務(wù)器的文檔根目錄中;中文字體(simkai.ttf)也在剛才的網(wǎng)盤連接的壓縮包中。具體操作,如下:
[root@localhost ~]# cp simkai.ttf /usr/share/zabbix/fonts/
[root@localhost ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf simkai.ttf
執(zhí)行以下命令,修改PHP界面指定的字體文件,將原本的grapfont更改為simkai,然后刷新界面即可正常顯示中文。
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php
…………………… //省略部分內(nèi)容
define('ZBX_GRAPH_FONT_NAME', 'simkai');
zabbix服務(wù)器搭建完成?。?!
企業(yè)網(wǎng)絡(luò)環(huán)境中采用Zabbix來作為監(jiān)控服務(wù)器,監(jiān)控對象為網(wǎng)絡(luò)中的各種服務(wù)器及網(wǎng)絡(luò)設(shè)備,服務(wù)器有Linux服務(wù)器、Windows服務(wù)器,交換機(jī)采用GNS3模擬器來模擬,橋接3塊網(wǎng)卡分別連接Zabbix服務(wù)器、Linux服務(wù)器和Windows服務(wù)器,具體的實(shí)驗(yàn)拓補(bǔ)圖如下:
案例實(shí)施步驟:
網(wǎng)絡(luò)設(shè)備一般支持SNMP協(xié)議來做監(jiān)控,所以首先要在交換機(jī)上配置IP地址,并開啟SNMP,主要是設(shè)置共同體的值,本次案例使用GNS3模擬器,用路由器來代替交換機(jī)。具體操作如下:
R1(config)#int r f0/0 - 15
R1(config-if-range)#no sh
R1(config)#int vlan 1
R1(config-if)#ip add 192.168.1.100 255.255.255.0
R1(config-if)#no sh
//給vlan設(shè)置IP地址
R1(config)#no ip routing
//關(guān)閉路由功能
R1(config)#snmp-server community centos ro
//設(shè)置被服務(wù)器查詢的只讀共同體
R1(config)#snmp-server enable traps
//允許發(fā)送trap消息
R1(config)#snmp-server host 192.168.1.1 centos
//設(shè)置發(fā)送trap消息的共同體
在Zabbix服務(wù)器上添加網(wǎng)絡(luò)設(shè)備,操作如下:
交換機(jī)的名稱稍后便會更新成功的!
交換機(jī)檢測完成?。?!
如果希望監(jiān)控Linux服務(wù)器,可以使用agent的方式,即在Linux服務(wù)器上安裝Zabbix的agent。agent軟件包也在zabbix軟件包中,并修改其配置文件。
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//關(guān)閉防火墻與SELinux
[root@localhost ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm
//安裝agent軟件包
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
//編寫agentd服務(wù)器的配置文件
………………………… //省略部分內(nèi)容
Server=192.168.1.1
//用于客戶端被動等待指定服務(wù)器來查詢數(shù)據(jù)
ServerActive=192.168.1.1
//用于客戶端主動提交數(shù)據(jù)到指定服務(wù)器
Hostname=linux-server001
//可以自定義,但必須與Zabbix Web上配置一致,
//否則Zabbix主動監(jiān)控將無法工作。
[root@localhost ~]# systemctl start zabbix-agent.service
//啟動agent服務(wù)
[root@localhost ~]# netstat -anpt | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 43876/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 43876/zabbix_agentd
//agent服務(wù)默認(rèn)端口是10050
在Zabbix服務(wù)器上添加Linux主機(jī),操作如下:
Windows服務(wù)器32位操作系統(tǒng)便選擇32位的軟件包;64位便選擇64位的軟件包,Zabbix軟件包中都有。
在C盤中新建文件夾,命名為zabbix,將所需的軟件及配置文件移進(jìn)去,修改配置文件,修改的內(nèi)容如下:
Server=192.168.1.1
ServerActive=192.168.1.1
Hostname=windows-server001
修改完成之后,建議關(guān)閉防火墻,以免出現(xiàn)錯(cuò)誤!
接下來在命令行完成以下操作:
C:\Users\Administrator>cd \zabbix
C:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -i
zabbix_agentd.exe [1368]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [1368]: event source [Zabbix Agent] installed successfully
//安裝agent
C:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -s
zabbix_agentd.exe [1504]: service [Zabbix Agent] started successfully
//指定agent配置文件啟動agent
常用的選項(xiàng)有:“-c”指定配置文件;“-i”安裝;“-s”啟動;“-x”停止;“-d”卸載!
在Zabbix服務(wù)器上添加Windows主機(jī)操作如下:
Zabbix自帶的默認(rèn)模板里包含了很多監(jiān)控項(xiàng),也可以根據(jù)業(yè)務(wù)需求自定義監(jiān)控項(xiàng)。
以監(jiān)控httpd進(jìn)程為例,介紹如何在Zabbix自定義監(jiān)控項(xiàng)。
以下操作均在客戶端執(zhí)行,命令如下:
[root@localhost ~]# vim check_httpd.sh
//自己手動編寫腳本,內(nèi)容如下:
#!/bin/bash
A=`ps -ef | grep httpd | grep -v grep`
if [ -n "$A" ]
then
echo '1'
else
echo '0'
fi
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
//修改agent服務(wù)的配置文件,修改以下內(nèi)容
UnsafeUserParameters=1 //去掉注釋并改為1
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_httpd.conf
//自己創(chuàng)建Userparameter_httpd.conf文件
UserParameter=check_httpd,sh /root/check_httpd.sh
//格式為Userparameter=<鍵值>,<命令>
即可登錄Zabbix服務(wù)器,
關(guān)于Zabbix的配置就先接受這么多,以后有新的問題,會實(shí)時(shí)更新的!!!
———————— 本文至此結(jié)束,感謝閱讀 ————————
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。