Zabbix基於Proxy分佈式部署實現Web監控

前言

在日常運維工作中,難免會遇到這樣或那樣的故障,如何能在第一時間發現故障,並及時定位故障原因,保證業務不受影響,我想這應該是做好一個運維必須要掌握的技能。但人力不可能實時掌控系統的變化,於是監控系統應運而生,監控便是運維的眼睛,把監控和性能管理做好後,運維就是一件很輕鬆的事情。目前比較流行的開源監控工具有Cacti、Nagios(Icinga)、Zabbix等。本文帶來的是Zabbix基於Proxy分佈式部署實現Web監控。

Zabbix

簡介

Zabbix是一個基於Web界面提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。它能監視各種網絡參數,保證服務器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

基本功能

數據採集方式:zabbix agent,agent(active),SNMP,SSH等

數據存儲方式:RDBMS,如MySQL,Pgsql等

數據展示方式:php,web,gui

報警功能:支持報警升級

組件及基礎架構

wKiom1Wd6kOSmW0yAAEJnYV-EBo167.jpg

Zabbix主要由zabbix server和zabbix agent組成

server端負責從agent端收集監控數據,並存儲在數據庫中,同時對數據進行分析展示,並觸發相關報警

agent端負責監控數據的採集,併發送給server端

數據採集方式除了在被監控主機上部署agent程序外,還可通過ICMP/IPMI/SNMP等協議對網絡設備進行監控,同時配置web監控方式可以監控web頁面的下載速率和響應時間等重要參數

Zabbix proxy是在大規模分佈式監控場景中,採用的一種用以分擔server端壓力的分層結構,Proxy只負責一定區域內的數據採集工作,然後定期將數據一次性發送給server,極大的減輕了server的負載壓力,使得可以支持更大規模的監控需求

實現過程

實驗拓撲

wKiom1Wd7s7xSJCSAADuZkDP2xc485.jpg

#系統環境:CentOS6.6
#Zabbix Server爲LAMP環境
#Zabbix Proxy需數據庫支持
#Zabbix Server與Zabbix Proxy需時間同步,全部節點已做同步

Zabbix Server配置

快速構建LAMP

[root@node4 ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath
php-gd php-mbstring -y

安裝Zabbix Server所需軟件包

[root@node4 ~]# cd zabbix-2.4/
[root@scholar zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node4 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-se* zabbix-web-* -y

數據庫準備

[root@node4 ~]# vim /etc/my.cnf

[mysqld]
default-character-set = utf8   #此項可確保zabbix中文界面不亂碼

[root@node4 ~]# service mysqld start
Starting mysqld:                                           [  OK  ]

#授權
mysql> create database zabbix;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on zabbix.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#導入zabbix數據
[root@node4 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/
[root@node4 create]# mysql --default-character-set=utf8 zabbix < schema.sql 
[root@node4 create]# mysql --default-character-set=utf8 zabbix < images.sql 
[root@node4 create]# mysql --default-character-set=utf8 zabbix < data.sql

#--default-character-set=utf8 此項爲防止中文亂碼,不用中文則可忽略

配置Zabbix Server

[root@node4 ~]# vim /etc/zabbix/zabbix_server.conf 

DBHost=localhost        #指定數據庫
DBName=zabbix           #數據庫名
DBUser=zbuser           #數據庫用戶
DBPassword=zbpass       #數據庫密碼

#其他參數根據實際需求修改即可

[root@node4 ~]# vim /etc/zabbix/zabbix_agentd.conf 
#配置本身agent用以監控自己

Server=127.0.0.1,172.16.10.126
ServerActive=127.0.0.1,172.16.10.126
Hostname=node4.scholar.com

[root@node4 ~]# vim /etc/php.ini   #配置時區

date.timezone = Asia/Shanghai

[root@node4 ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@node4 ~]# service zabbix-server start
Starting Zabbix server:                                    [  OK  ]
[root@node4 ~]# service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

開始安裝

訪問http://172.16.10.126/zabbix

wKiom1WeImnDq673AAJKFk4ZD7o071.jpg

安裝檢測,如有錯誤,安裝所需依賴包即可

wKiom1WeInqDRjXVAAKul3Pzoyo934.jpg

填寫數據庫信息

wKiom1WehMTSqZ7-AAJ2v1LBWEA546.jpg

Name可自定義

wKioL1WeJJmxqba6AAIFRHfgbZM906.jpg

Next-Next-Finish即可完成安裝

登陸界面如下,默認用戶admin,密碼zabbix

wKioL1WeJb-zsJ-IAAF2NlXdK9s301.jpg

zabbix2.4默認屏蔽了中文顯示,設置顯示中文

[root@node4 ~]# vim /usr/share/zabbix/include/locales.inc.php
#將false改爲true
'zh_CN' => array('name' => _('Chinese (zh_CN)'),        'display' => true),

#爲防止亂碼用楷體替換默認字體
[root@node4 ~]# mv simkai.ttf /usr/share/zabbix/fonts/
[root@node4 ~]# vim /usr/share/zabbix/include/defines.inc.php

define('ZBX_GRAPH_FONT_NAME', 'simkai');
define('ZBX_FONT_NAME', 'simkai');

[root@node4 ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

修改語言

wKiom1WeOoLClgRGAAGeC8aZhWo027.jpg

Zabbix Server配置先到這裏,接下來我們去配置Proxy和Agent

Zabbix Proxy配置

安裝Zabbix Proxy所需軟件包

[root@node3 ~]# cd zabbix-2.4/
[root@node3 zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node3 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6
.x86_64.rpm zabbix-proxy-* -y

數據庫準備

#Proxy端已有數據庫
mysql> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix_proxy.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

#導入數據
[root@node3 ~]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.0/create/schema.sql

配置Zabbix Proxy

[root@node3 ~]# vim /etc/zabbix/zabbix_proxy.conf 

Server=172.16.10.126             #指向Zabbix Server
Hostname=node3.scholar.com       #主機名
DBHost=localhost                 #指定數據庫
DBName=zabbix_proxy              #數據庫名
DBUser=zbuser                    #數據庫用戶
DBPassword=zbpass                #數據庫密碼
ConfigFrequency=60               #配置文件同步間隔
DataSenderFrequency=5            #數據同步間隔

#其他參數根據自己實際需求修改即可

[root@node3 ~]# service zabbix-proxy start
Starting Zabbix proxy:                                     [  OK  ]

Zabbix Agent配置

安裝Zabbix Agent所需軟件包

[root@node1 ~]# cd zabbix-2.4/
[root@node1 zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node1 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm -y

#兩個Agent端都執行此安裝操作

配置Zabbix Agent

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.10.125           #指向proxy
ServerActive=172.16.10.125   
Hostname=node1.scholar.com

[root@node1 ~]# service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

#全部Agent節點都執行以上配置

添加監控

添加代理

wKioL1WeeiWTWp2jAAGKq4YtYPQ383.jpg

添加監控主機,選擇代理監控

wKiom1WeeJGw-FbRAAI3PfUfVKk651.jpg

wKioL1Weeq3TB9aiAABaOHkx0Xs761.jpg

添加模板

wKiom1WeeQDQRI23AAM2whsCBPg125.jpg

#兩臺監控主機都執行以上添加操作

查看監控圖表,驗證是否被監控

wKioL1WefLWhdG9lAAJz6_YFMSc864.jpg

已經可以獲取到監控主機的信息,Proxy分佈式監控部署成功

創建web監控

點擊應用集(Applications),創建應用集

wKioL1WeevuivCTyAAHEtAfFBiw285.jpg

點擊web場景,自定義場景

wKiom1Wee0-Si4HmAAFtiLr0pzE387.jpg

創建相關步驟

wKioL1WefZqzaelxAAEcM8PsaBk002.jpg

#兩臺需要監控的web主機都需創建

查看web狀態

wKiom1WeffbyfKLDAAGm8u-bNjg783.jpg

wKiom1Wef2_iqUH2AAI3NZUN3Lk098.jpg

wKioL1WegVrR0IWOAAF1_aydMCQ265.jpg

以上便是Zabbix基於Proxy分佈式部署實現Web監控的簡單過程,時間有限,就不往下繼續具體完善了,有興趣的朋友可以繼續實現報警功能

The end

Zabbix是一個很強大且開源的監控系統,於由個人水平有限,很多功能還有待了解,通過以上配置大概實現了基於Proxy的Web監控。有興趣的朋友可繼續完善,部署過程中遇到問題可留言交流。以上僅爲個人學習整理,如有錯漏,大神勿噴~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章