搭建zabbix監控系統詳解

博文大綱:
1、前言
2、zabbix監控架構
3、搭建Zabbix監控服務器
4、搭建過程當中遇到有些服務沒法正常啓動的解決辦法php

1、前言 :前端

要想實時的瞭解服務器的運行情況而且能在出現問題時及時解決,利用監控軟件是一個很好的選擇,而zabbix監控系統則在衆多監控軟件中脫穎而出。node

zabbix是一個基於web界面的企業級開源監控軟件,Zabbix服務器須要LAMP環境或LNMP環境,提供分佈式系統監控與網絡監視功能。具有主機的性能監控,網絡設備性能監控,數據庫性能監控,多種告警方式,詳細報表、圖表的繪製等功能。監測對象能夠是Linux或Windows服務器,也能夠是路由器、交換機等網絡設備,經過SNMP、zabbix Agent、PING、端口監視等方法提供對遠程網絡服務器等監控、數據收集等功能。python

2、zabbix監控架構:mysql

在生產環境中,zabbix根據網絡環境、監控規模等外界因素分爲三種架構:server-client(直接鏈接)、master-node-client(Node架構)、server-proxy-client(proxy架構),以下圖所示:
搭建zabbix監控系統詳解linux

一、server-client架構:web

server-client架構是zabbix最簡單的架構,監控機和被監控機之間不通過任何代理,直接在zabbix server(監控服務器) 和zabbix agent(agent:部署在被監控端,用於採集數據)之間進行數據交互,適用於網絡比較簡單,設備較少的監控環境。sql

二、master-node-client架構:數據庫

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

三、server-proxy-client架構:

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

3、搭建Zabbix監控服務器:

我整理了兩種server-client架構的配置方法:

一、配置本地yum倉庫,進行安裝(服務器無需鏈接到Internet);

二、直接把互聯網作yum倉庫,進而安裝,zabbix的官方文檔就是採用這種方式;

Zabbix官方的相關連接:

Zabbix 4.2 配置文檔Zabbix 官網首頁

這篇文章先寫一下如何配置本地yum倉庫,進而搭建Zabbix監控服務器(Zabbix3.4版本的server-client架構):

安裝zabbix服務器方法一:使用本地yum搭建Zabbix3.4

(一)配置前準備:

一、下載Zabbix服務器所需yum源倉庫:zabbix服務器yum倉庫下載,提取碼:0kp3

二、我這裏的環境:centos7 兩臺,window服務器一臺、交換機、路由器各一臺,環境以下:

搭建zabbix監控系統詳解

三、自行配置防火牆,放行相關流量,我這裏直接關閉了防火牆。
(二)開始搭建Zabbix服務器:

[root@zabbix ~]# mount /dev/cdrom /media          #掛載下載的.iso鏡像文件。
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@zabbix ~]# cat /etc/yum.repos.d/a.repo        
#yum倉庫位置指定文件(該目錄下只有a.repo這一個文件,以避免出現錯誤)。
[fd]
baseurl=file:///media
gpgcheck=0
[root@zabbix ~]# yum -y install mariadb-server mariadb          #安裝mariadb數據庫
[root@zabbix ~]# systemctl start mariadb                                 #啓動mariadb數據庫
[root@zabbix ~]# systemctl enable mariadb                             #設置開機自啓動
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service
to /usr/lib/systemd/system/mariadb.service.
[root@zabbix ~]# mysqladmin -u root password "pwd123" #爲數據庫root用戶設置密碼
[root@zabbix ~]# mysql -u root -p                  #鏈接數據庫,測試是否成功
Enter password:                  #輸入密碼
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>                    #已鏈接OK
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#爲Zabbix建立專用的數據庫
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'pwd456';
#創建一個名爲Zabbix的數據庫用戶,並設置密碼爲「pwd456」
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit         #退出數據庫
Bye
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
#安裝Zabbix服務,它會自動安裝它所依賴的httpd與PHP。
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz | mysql -uzabbix -p zabbix
#導入數據庫SQL腳本。
Enter password:      #輸入zabbix用戶的密碼,也就是剛建立的那個數據庫用戶密碼「pwd456」
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf            #編輯zabbix服務端配置文件
#注意刪除註釋符號
DBHost=localhost         #去掉註釋符號
DBName=zabbix          #數據庫名稱,根據實際修改,默認不用修改
DBUser=zabbix            #數據庫用戶名,默認不用修改
DBPassword=pwd456          #數據庫密碼,修改此行
#修改完畢保存,保存退出便可。

接下來編輯zabbix agent的配置文件,必須指定zabbix server的IP地址,在每檯安裝了agent的主機上都要配置。這裏要指定zabbix服務器的IP地址,如今是在同一臺服務器上,因此能夠不作修改:

[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf    #編輯agentd配置文件
#編輯此配置文件的目的是能夠監控該Zabbix服務器。
Server=127.0.0.1            #客戶端被動等待指定服務器來查詢數據
ServerActive=127.0.0.1           #客戶端主動提交數據到指定的服務器
Hostname=linux-server001         #建議修改此行,配置規範的主機名

配置zabbix web接口並啓動相關服務:

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf           #編輯http配置文件
php_value date.timezone Asia/Shanghai     #設置爲上海時區,並該行刪除註釋符號
[root@zabbix ~]# systemctl start httpd              #啓動httpd服務
[root@zabbix ~]# systemctl enable httpd         #設置開機自啓動
[root@zabbix ~]# systemctl start zabbix-server            #啓動zabbix服務端
[root@zabbix ~]# systemctl enable zabbix-server          #設置開機自啓動
[root@zabbix ~]# systemctl start zabbix-agent       #啓動agent代理
[root@zabbix ~]# systemctl enable zabbix-agent          #設置開機自啓動

如今服務器端基本配置完成,可是因爲字體顯示緣由,可能使用瀏覽器訪問時,會出現部分文字以亂碼顯示,因此要下載標準中文字體,提取碼:nilh 。

[root@zabbix ~]# cp simkai.ttf /usr/share/zabbix/fonts/  
#將下載的字體複製到zabbix服務器的文檔根目錄
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php
#修改PHP界面指定的字體文件,將原有的「graphfont」更改成「simkai」。
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

(三)使用瀏覽器配置Zabbix服務器:

一、打開瀏覽器訪問:http://zabbix服務器IP地址/zabbix
搭建zabbix監控系統詳解

二、檢查先決條件,以下:

搭建zabbix監控系統詳解

三、配置數據庫鏈接,根據以前建立好的zabbix數據庫填寫受權信息,若根據我以前的配置,這裏均可以保持默認,只輸入密碼便可(感受下面圖中中文介紹有些多餘了,谷歌瀏覽器能夠自動翻譯):

搭建zabbix監控系統詳解

四、填寫鏈接zabbix服務信息,以下:

搭建zabbix監控系統詳解

五、確認無誤後,開始安裝:

搭建zabbix監控系統詳解

六、安裝完成:

搭建zabbix監控系統詳解

七、在登陸界面輸入默認的用戶名「Admin」,密碼「zabbix」,便可登陸到zabbix服務器,以下所示:

搭建zabbix監控系統詳解

八、zabbix首頁(默認爲英文,能夠更改默認語言):
搭建zabbix監控系統詳解

九、zabbix用戶管理(依次點擊以下):

搭建zabbix監控系統詳解

十、修改用戶屬性:

搭建zabbix監控系統詳解

(四)配置各個被監控設備:

一、交換機配置:

switch#conf t
switch(config)#in vlan 1
switch(config-if)#ip add 192.168.1.1 255.255.255.0
switch(config-if)#no sh
switch(config-if)#exit
switch(config)#snmp-server community centos RO   
#設置被服務器輪詢的只讀共同體
switch(config)#snmp-server enable traps         
#容許發送trap消息,可能會出兩行提示信息,無視便可
switch(config)#snmp-server host 192.168.1.2 centos
#設置發送trap消息的共同體

二、路由器配置(注意共同體名不要和交換機配置的衝突):

Route#conf t
Route(config)#in f0/0
Route(config-if)#ip add 192.168.1.254 255.255.255.0
Route(config-if)#no sh
Route(config-if)#exit
Route(config)#snmp-server community centos1 RO
Route(config)#snmp-server enable traps 
Route(config)#snmp-server host 192.168.1.2 centos1

三、Linux服務器配置(首先下載所需的agent代理包,提取碼:sklc ,而後上傳至Linux服務器):

[root@client src]# ls               #查看上傳的agent包
debug  kernels  zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@client src]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm          #安裝
[root@client src]# vim /etc/zabbix/zabbix_agentd.conf     #編輯配置文件,改動下面幾行
Server=192.168.1.2       #指定zabbix服務端IP
ServerActive=192.168.1.2            #同上
Hostname=linux-server002          
#修改規範的名稱,一會在zabbix  web的配置必須和這裏的名字同樣。
[root@localhost ~]# systemctl start zabbix-agent         #啓動agent服務
[root@localhost ~]# systemctl enable zabbix-agent          #設置開機自啓動
Created symlink from nt.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost ~]# netstat -anpt | grep "agent"        #查看端口是否在監聽,齊活
tcp        0      0 0.0.0.0:10050    0.0.0.0:*      LISTEN      3708/zabbix_agentd  
tcp6       0      0 :::10050         :::*           LISTEN      3708/zabbix_agentd

四、Windows server2008R2配置(下載Windows的agent代理軟件,提取碼:s49p ):

(1)將下載的agent代理軟件包解壓後,會看到下面這兩個文件,其中「bin」目錄中有兩個子目錄,「win32」和「win64」,分別對應不一樣的系統版本,根據本身系統的版原本看本身所須要的:
搭建zabbix監控系統詳解

(2)如今建立一個文件夾,專門用於存放agent代理的配置文件,我這裏的系統是64位的,因此就把上面提到的「win64」中全部的文件複製到zabbix文件夾下,而且把「conf」目錄下的配置文件也複製過來,最後zabbix目錄下的文件以下:

搭建zabbix監控系統詳解

(3)使用寫字板編輯zabbix_agentd.win.conf這個文件,注意不要使用記事本,那樣打開亂七八糟的:

搭建zabbix監控系統詳解搭建zabbix監控系統詳解

(4)修改下面三項:

Server=192.168.1.2
ServerActive=192.168.1.2
Hostname=windows-server001

(5)使用cmd命令進行安裝及啓動,經常使用的參數有:-c,指定配置文件;-i安裝;-s啓動;-x中止;-d卸載。

C:\Users\Administrator>e:      #進入zabbix目錄所在盤符
E:\>cd zabbix                #進入zabbix目錄
E:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -i       #安裝agent
zabbix_agentd.exe [2320]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [2320]: event source [Zabbix Agent] installed successfully
E:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -s    #指定agent配置文件並啓動
zabbix_agentd.exe [2888]: service [Zabbix Agent] started successfully

(五)配置zabbix web端,添加被監控設備:

一、添加交換機:
1)按照如下依次點擊:
搭建zabbix監控系統詳解

2)以下配置:

搭建zabbix監控系統詳解

3)配置模板(標註序號的依次點擊便可):
搭建zabbix監控系統詳解

搭建zabbix監控系統詳解
必定要單擊「添加」:
搭建zabbix監控系統詳解
依次點擊:
搭建zabbix監控系統詳解
按下面配置:
搭建zabbix監控系統詳解

配置完成(注意網絡設備使用的SNMP,因此最後是現實SNMP變綠,Linux服務器和Windows服務器使用的agent代理,因此ZBX會變綠):
搭建zabbix監控系統詳解

二、添加Linux服務器:

1)建立主機:

搭建zabbix監控系統詳解

2)以下所示:

搭建zabbix監控系統詳解

2)看圖依次點擊:
搭建zabbix監控系統詳解

3)看圖:
搭建zabbix監控系統詳解

搭建zabbix監控系統詳解

OK了,添加完成。以下,第一個添加的交換機的「SNMP」變綠了,說明配置沒問題。

三、添加Windows server 2008R2:

1)和添加Linux服務器差很少,以下(寫的就簡單些了):

搭建zabbix監控系統詳解

2)定義基本信息(很差意思,作完發現下面的IP地址寫成zabbix服務器的了,最後沒有成功,我又改爲了192.168.1.4,失誤):

搭建zabbix監控系統詳解

3)添加模板:

搭建zabbix監控系統詳解

4)以下:

搭建zabbix監控系統詳解

搭建zabbix監控系統詳解

四、又OK了,還有最後一個路由器設備:

1)建立主機:

搭建zabbix監控系統詳解

2)定義基本信息:

搭建zabbix監控系統詳解

3)選擇模板:

搭建zabbix監控系統詳解

4)設置共同體,centos1是在路由器上配置的共同體名(感受耐心被消耗完了,本身看圖來吧,不解釋了):

搭建zabbix監控系統詳解

最後添加的主機以下所示(若ZBX或SNMP沒變爲綠色,只要沒顯示紅色,就表示配置沒問題,耐心等一會,或刷新再試試看):

搭建zabbix監控系統詳解

安裝zabbix服務器方法二:使用Internet做爲yum源,搭建zabbix 4.2版本:

一、配置前準備:

(1)配置zabbix服務器可鏈接Internet;
(2)系統自帶的/etc/yum.repo/ 目錄下的文件必需要有。

二、開始搭建:

[root@zabbix ~]# rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
#安裝存儲庫配置包
[root@zabbix ~]# yum-config-manager --enable rhel-7-server-optional-rpms
#啓用可選rpms的存儲庫
[root@zabbix ~]# yum -y install mariadb-server mariadb
#安裝mariadb數據庫
[root@zabbix ~]# systemctl start mariadb         #啓動數據庫
[root@zabbix ~]# systemctl enable mariadb         #設置爲開機自啓動
[root@zabbix ~]# mysqladmin -u root password "pwd123"         #設置數據庫root用戶密碼
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
#安裝zabbix服務器及agent代理,若要使用代理,能夠把zabbix-proxy-mysql也yum安裝上
[root@zabbix ~]# mysql -u root -ppwd123               #登陸數據庫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#建立數據庫
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'pwd456';
#建立zabbix服務鏈接數據庫的用戶,並設置密碼。
MariaDB [(none)]> exit           #退出數據庫
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.2.4/create.sql.gz | mysql -uzabbix -p zabbix  
#導入數據庫SQL腳本
Enter password:                          #輸入數據庫用戶zabbix密碼
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf            #編輯zabbix服務端配置文件
#注意刪除註釋符號
DBHost=localhost         #去掉註釋符號
DBName=zabbix          #數據庫名稱,根據實際修改,默認不用修改
DBUser=zabbix            #數據庫用戶名,默認不用修改
DBPassword=pwd456          #數據庫密碼,修改此行
#修改完畢保存,保存退出便可。

接下來編輯zabbix agent的配置文件,必須指定zabbix server的IP地址,在每檯安裝了agent的主機上都要配置。這裏要指定zabbix服務器的IP地址,如今是在同一臺服務器上,因此能夠不作修改:

[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf    #編輯agentd配置文件
#編輯此配置文件的目的是能夠監控該Zabbix服務器。
Server=127.0.0.1            #客戶端被動等待指定服務器來查詢數據
ServerActive=127.0.0.1           #客戶端主動提交數據到指定的服務器
Hostname=linux-server001         #建議修改此行,配置規範的主機名

配置zabbix web接口並啓動相關服務:

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf           #編輯http配置文件
php_value date.timezone Asia/Shanghai     #設置爲上海時區,並該行刪除註釋符號
[root@zabbix ~]# systemctl start httpd              #啓動httpd服務
[root@zabbix ~]# systemctl enable httpd         #設置開機自啓動
[root@zabbix ~]# systemctl start zabbix-server            #啓動zabbix服務端
[root@zabbix ~]# systemctl enable zabbix-server          #設置開機自啓動
[root@zabbix ~]# systemctl start zabbix-agent       #啓動agent代理
[root@zabbix ~]# systemctl enable zabbix-agent          #設置開機自啓動

若訪問web頁面出現部分中文亂碼的話,能夠參考上面的安裝方法一,有解決中文亂碼的方法。

如今服務已經搭建完成了,直接參考方法一的配置,去訪問web頁面進行配置便可。

基本配置就這些,關於更多的功能,好比,繪製圖表、設置報警等功能,如有時間我再寫吧,建議本身研究吧!!!

4、搭建過程當中遇到有些服務沒法正常啓動的解決辦法

我在配置Linux服務器上的agent代理時,遇到以下問題:

[root@localhost ~]# systemctl restart zabbix-agent           #以前啓動失敗了,因此使用了restart
Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.

當使用systemctl status zabbix-agent進行查詢時,並無查詢到有用的信息,而後使用journalctl -xe命令進行查詢,嘿嘿,查詢到了有用的信息,以下:

[root@localhost ~]# journalctl -xe   #執行該命令進行查詢
-- Unit zabbix-agent.service has begun starting up.
7月 15 00:51:18 localhost.localdomain systemd[1]: PID file /run/zabbix/zabbix_agentd.pid not readable (yet?) after start.
7月 15 00:51:18 localhost.localdomain systemd[1]: zabbix-agent.service never wrote its PID file. Failing.
7月 15 00:51:18 localhost.localdomain systemd[1]: Failed to start Zabbix Agent.
-- Subject: Unit zabbix-agent.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit zabbix-agent.service has failed.
-- 
-- The result is failed.
7月 15 00:51:18 localhost.localdomain systemd[1]: Unit zabbix-agent.service entered failed state.
7月 15 00:51:18 localhost.localdomain systemd[1]: zabbix-agent.service failed.
7月 15 00:51:21 localhost.localdomain setroubleshoot[88576]: SELinux is preventing /usr/sbin/zabbix_agentd from using the setrlimit access on a p
7月 15 00:51:21 localhost.localdomain python[88576]: SELinux is preventing /usr/sbin/zabbix_agentd from using the setrlimit access on a process.

                                                      *****  Plugin catchall (100. confidence) suggests   **************************

                                                      If you believe that zabbix_agentd should be allowed setrlimit access on processes labeled z
                                                      Then you should report this as a bug.
                                                      You can generate a local policy module to allow this access.
                                                      Do
                                                      allow this access for now by executing:
                                                      # ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
                                                      # semodule -i my-zabbixagentd.pp

結合翻譯軟件,大概看到是Selinux禁止訪問了什麼東西,而後執行上面註釋掉的兩行命令便可容許訪問,就試了試,以下:

[root@localhost ~]# ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
#執行第一條命令
libsepol.sepol_string_to_security_class: unrecognized class process 
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i my-zabbixagentd.pp

[root@localhost ~]# semodule -i my-zabbixagentd.pp
#執行第二條命令
[root@localhost ~]# systemctl restart zabbix-agent              #重啓就沒再報錯了
[root@localhost ~]# netstat -antp | grep agent                   #查看端口是否在監聽
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      88727/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      88727/zabbix_agentd

問題解決了,OK

相關文章
相關標籤/搜索