搭建Zabbix監控系統詳解

在企業網絡運維過程當中,管理員必須隨時關注各服務器和網絡的運行狀況,以便及時發現問題,儘量減小故障的發生。當網絡中的設備,服務器等數量較多時,爲了更加方便、快捷地得到各類監控信息,一般會藉助於一些集中監測軟件。php

博文大綱:前端

1、Zabbix概述、工做原理及重要組件;
2、Zabbix安裝;
3、配置Zabbix監控系統監控網絡設備;java

要想實時地瞭解服務器的運行情況而且能在出現問題時及時解決,利用監控軟件是一個很好的途徑。就目前而言,有服務器的地方必然少不了監控系統。現有的監控軟件有不少,可是Zabbix能夠靈活的監控服務器資源,而且集Cacti和Nagio二者的優勢於一身且功能更增強大,實現企業級分佈式監控,因此在市場上應用很是普遍!node

1、Zabbix概述、工做原理及重要組件;

(1)Zabbix概述

Zabbix是一個基於Web界面的企業級開源監控套件,提供分佈式系統監控與網絡監視功能。具備主機的性能監控、網絡設備性能監控、數據庫性能監控、多種告警方式、詳細報表、圖表的繪製等功能。監測的對象能夠是Linux或Windows服務器,也能夠是路由器、交換機等網絡設備,經過SNMP(簡單網絡管理協議)、Zabbix、Agent、PING、端口監視等方法提供對遠程網絡服務器等監控、數據收集等功能,並提供通知機制使系統管理員能夠快速定位、解決系統中存在的各類問題。目前Zabbix最新版本爲Zabbix 3.4.官方網站是http://www.zabbix.com 。mysql

Zabbix是免費的。Zabbix遵循GPL(通用公共許可證)版本2,這意味着它的源代碼是能夠自由分佈的。Zabbix的商業版本是由Zabbix公司提供支持的。世界上不少大小不一樣的組織機構都依懶於Zabbix做爲本身的一個主要的監控平臺。尤爲是如今不少互聯網企業都在使用它。linux

Zabbix是一個高度集成的網絡監控解決方案,具體描述如圖:
在這裏插入圖片描述web

(2)Zabbix重要組件

zabbix主要由如下幾個重要的組件構成,具體做用以下:sql

  • Zabbix Server:負責接收Agent發送報告信息的核心組件,全部的配置、數據統計、數據操做都由它組織進行;
  • Database strongage:負責存儲全部的配置信息以及收集的數據;
  • Web interface:是zabbix的GUI接口,一般強開下與Zabbix Server運行在同一臺主機上;
  • Proxy:屬於可選組件,經常使用於分佈式監控環境中,代理Server收集部分數據,而後轉發到Server,能夠減輕Server的壓力;
  • Agent:部署在被監控的主機(客戶端)上,負責收集被監控端主機的數據,如CPU、內存、數據庫等數據,而後發送到Server端或Proxy端。

(3)Zabbix進程

默認狀況下,Zabbix包含五個程序,另外還有一個是可選的,須要另外安裝。數據庫

各個程序各自的特色及做用以下:vim

  • 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。

(4)Zabbix監控架構

在實際生產環境中,Zabbix根據網絡環境,監控規模等外界因素分爲三種架構,如圖:
在這裏插入圖片描述

1)server-client架構(直接鏈接)

server-client架構是Zabbix的最簡單的架構,監控機和被監控機之間不通過任何代理,直接在zabbix server和zabbix agentd之間進行數據交互,適用於網絡比較簡單,設備比較少的監控環境;

2)master-node-client架構(node架構)

master-node-client架構是Zabbix最複雜的監控架構,適用於跨網絡、跨機房、設備較多的大型環境。每一個node同時也是一個server端。node下面能夠接proxy,也能夠直接接client。node有本身的配置文件和數據庫。其要作的是將配置信息和監控數據項master同步。當master發生故障或損壞,node能夠保證架構的完整性;

3)server-proxy-client架構(proxy架構)

proxy是server、client之間溝通的一個橋樑,proxy自己沒有前端,並且其自己並不存放數據,只是將agentd發來的數據暫時存放,然後在提交給server。該架構常常是和master-node-client架構作比較的架構,通常適用於跨機房、跨網絡的中型網絡架構的監控;

2、Zabbix安裝

Zabbix提供兩種安裝方式:YUM安裝與編譯安裝。須要注意的是,因爲Centos官方YUM源中並不提供Zabbix軟件包以及相關依懶包,所以,若是想用YUM安裝Zabbix須要經過Zabbix官方源或第三方的YUM源實現。

Zabbix服務器須要LAMP環境或LNMP環境,如下實驗部署環境採用YUM安裝的LAMP環境爲例,詳細介紹Zabbix監控服務器的部署方法。

(1)安裝MariaDB

爲何是安裝MariaDB不是MySQL呢?
由於Centos 7 系統光盤中默認提供的數據庫不是MySQL而是MariaDB,所以在LAMP架構中使用MariaDB來充當「M」的角色,其他的組件仍是保持原有的Apache與PHP。MariaDB是MySQL數據庫源碼的一個分支版本,與MySQL在大多數方面是兼容的!

[root@localhost ~]# yum -y install mariadb-server mariadb
//安裝MariaDB數據庫及MariaDB客戶端工具
[root@localhost ~]# systemctl start mariadb
//啓動MariaDB數據庫
[root@localhost ~]# mysqladmin -u root password "password123"
//爲MariaDB數據庫管理員設置密碼
[root@localhost ~]# mysql -u root -ppassword123
//登陸MariaDB數據庫
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)]> 
//登陸成功

(2)安裝Zabbix

由於安裝Zabbix時會安裝不少依懶包,其中包括httpd與PHP相關依懶包,因此直接安裝Zabbix便可!無須在單獨安裝httpd與PHP。使用YUM安裝Zabbix可使用Zabbix官方源或者第三方提供的YUM源,這裏以第三方提供的YUM爲例!
安裝Zabbix所需軟件包網盤連接:https://pan.baidu.com/s/1mnOHhY7EVmmMnONFetMUUg
提取碼:b2sd
建議在Windows系統解壓完成,將其中的YUM所需軟件包上傳到Linux服務器便可!

[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp /mnt/* /a
[root@localhost ~]# cd /a
[root@localhost a]# createrepo .
//由於自己自帶的只有軟件包,並無其須要用到的依賴關係文件,因此須要本身手動生成!
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//安裝Zabbix及其所需服務(若是使用官方源的話,直接YUM安裝便可)!
//zabbix-agent這個服務是被監控端安裝的

由於安裝Zabbix Web時須要數據庫,因此要在MariaDB中手動建立庫名爲Zabbix的數據庫,並受權給zabbix用戶使用,以增長數據庫的安全性。

[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)
//登陸數據庫建立數據庫、並授予權限

導入數據庫SQL腳本文件

[root@localhost ~]# zcat  /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz |mysql -u zabbix -ppassword@456  zabbix

1)檢查其配置文件

編寫Zabbix server配置文件,指定數據庫的名稱能、用戶和密碼。

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
                    ……………………                    //省略部份內容
DBHost=localhost   //去掉註釋
DBName=zabbix    //不變
DBUser=zabbix     //不變
DBPassword=password@456  //去掉註釋

編輯Zabbix agent的配置文件,必須指定zabbix server的IP地址,在每檯安裝了agent的主機上都要配置。

[root@localhost ~]# vim  /etc/zabbix/zabbix_agentd.conf
                    ……………………                    //省略部份內容          
    Server=127.0.0.1                //客戶端被動等待指定服務器來查詢數據
    ServerActive=127.0.0.1     //客戶端主動提交數據到指定服務器
Hostname=linux-server001  //修改
//由於本機就是zabbix server,因此指定的地址就是本機便可!

2)安裝Zabbix Web接口

編輯Apache服務器針對Zabbix的前端配置文件,設置時區與當前系統時區一致便可!內容以下:

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf 
        php_value date.timezone Asia/Shanghai
//去掉註釋,修改便可!

3)重啓全部服務

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//建議關閉防火牆與SELinux
[root@localhost ~]# systemctl restart zabbix-server.service 
[root@localhost ~]# systemctl restart zabbix-agent.service 
[root@localhost ~]# systemctl restart httpd

4)客戶端訪問

能夠在本地訪問,也可在客戶端訪問,均可以!
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4)Zabbix用戶管理

爲了加強安全性,須要修改Zabbix服務器默認用戶Admin的初始密碼,操做以下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

5)修改Zabbix中文亂碼

安裝Zabbix後,當顯示語言爲中文時,可能會出現中文亂碼的狀況。主要是由字體致使的問題,若是須要解決,須要下載合適的字體,並將其上傳到Zabbix服務器上。

下載標準中文字體,將其上傳到Zabbix服務器的文檔根目錄中;中文字體(simkai.ttf)也在剛纔的網盤鏈接的壓縮包中。具體操做,以下:

[root@localhost ~]# cp simkai.ttf /usr/share/zabbix/fonts/
[root@localhost ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf  simkai.ttf

執行如下命令,修改PHP界面指定的字體文件,將本來的grapfont更改成simkai,而後刷新界面便可正常顯示中文。
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php
…………………… //省略部份內容
define('ZBX_GRAPH_FONT_NAME', 'simkai');
zabbix服務器搭建完成!!!

3、配置Zabbix監控系統監控網絡設備

企業網絡環境中採用Zabbix來做爲監控服務器,監控對象爲網絡中的各類服務器及網絡設備,服務器有Linux服務器、Windows服務器,交換機採用GNS3模擬器來模擬,橋接3塊網卡分別鏈接Zabbix服務器、Linux服務器和Windows服務器,具體的實驗拓補圖以下:
在這裏插入圖片描述
案例實施步驟:

(1)Zabbix監控網絡設備

網絡設備通常支持SNMP協議來作監控,因此首先要在交換機上配置IP地址,並開啓SNMP,主要是設置共同體的值,本次案例使用GNS3模擬器,用路由器來代替交換機。具體操做以下:

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設置IP地址
R1(config)#no ip routing
//關閉路由功能
R1(config)#snmp-server community centos ro
//設置被服務器查詢的只讀共同體
R1(config)#snmp-server enable traps
//容許發送trap消息
R1(config)#snmp-server host 192.168.1.1 centos
//設置發送trap消息的共同體

在Zabbix服務器上添加網絡設備,操做以下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
交換機的名稱稍後便會更新成功的!
在這裏插入圖片描述
交換機檢測完成!!!

(2)監控Linux服務器

若是但願監控Linux服務器,可使用agent的方式,即在Linux服務器上安裝Zabbix的agent。agent軟件包也在zabbix軟件包中,並修改其配置文件。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//關閉防火牆與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服務器的配置文件
                      …………………………              //省略部份內容
Server=192.168.1.1
//用於客戶端被動等待指定服務器來查詢數據
ServerActive=192.168.1.1
//用於客戶端主動提交數據到指定服務器
Hostname=linux-server001
//能夠自定義,但必須與Zabbix Web上配置一致,
//不然Zabbix主動監控將沒法工做。
[root@localhost ~]# systemctl start zabbix-agent.service 
//啓動agent服務
[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服務默認端口是10050

在Zabbix服務器上添加Linux主機,操做以下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

(3)監控Windows服務器

Windows服務器32位操做系統便選擇32位的軟件包;64位便選擇64位的軟件包,Zabbix軟件包中都有。
在C盤中新建文件夾,命名爲zabbix,將所需的軟件及配置文件移進去,修改配置文件,修改的內容以下:
Server=192.168.1.1
ServerActive=192.168.1.1
Hostname=windows-server001
修改完成以後,建議關閉防火牆,以避免出現錯誤!
接下來在命令行完成如下操做:

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
經常使用的選項有:「-c」指定配置文件;「-i」安裝;「-s」啓動;「-x」中止;「-d」卸載!

在Zabbix服務器上添加Windows主機操做以下:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

(4)Zabbix自定義監控項

Zabbix自帶的默認模板裏包含了不少監控項,也能夠根據業務需求自定義監控項。

以監控httpd進程爲例,介紹如何在Zabbix自定義監控項。
如下操做均在客戶端執行,命令以下:

[root@localhost ~]# vim check_httpd.sh
//本身手動編寫腳本,內容以下:
#!/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服務的配置文件,修改如下內容
UnsafeUserParameters=1                  //去掉註釋並改成1
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_httpd.conf
//本身建立Userparameter_httpd.conf文件
UserParameter=check_httpd,sh /root/check_httpd.sh
//格式爲Userparameter=<鍵值>,<命令>

便可登陸Zabbix服務器,在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

關於Zabbix的配置就先接受這麼多,之後有新的問題,會實時更新的!!!

———————— 本文至此結束,感謝閱讀 ————————

相關文章
相關標籤/搜索