在平常運維工做中,不免會遇到這樣或那樣的故障,如何能在第一時間發現故障,並及時定位故障緣由,保證業務不受影響,我想這應該是作好一個運維必需要掌握的技能。但人力不可能實時掌控系統的變化,因而監控系統應運而生,監控即是運維的眼睛,把監控和性能管理作好後,運維就是一件很輕鬆的事情。目前比較流行的開源監控工具備Cacti、Nagios(Icinga)、Zabbix等。本文帶來的是Zabbix基於Proxy分佈式部署實現Web監控。php
Zabbix是一個基於Web界面提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。它能監視各類網絡參數,保證服務器系統的安全運營,並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。node
數據採集方式:zabbix agent,agent(active),SNMP,SSH等mysql
數據存儲方式:RDBMS,如MySQL,Pgsql等linux
數據展現方式:php,web,guiios
報警功能:支持報警升級web
Zabbix主要由zabbix server和zabbix agent組成sql
server端負責從agent端收集監控數據,並存儲在數據庫中,同時對數據進行分析展現,並觸發相關報警數據庫
agent端負責監控數據的採集,併發送給server端apache
數據採集方式除了在被監控主機上部署agent程序外,還可經過ICMP/IPMI/SNMP等協議對網絡設備進行監控,同時配置web監控方式能夠監控web頁面的下載速率和響應時間等重要參數vim
Zabbix proxy是在大規模分佈式監控場景中,採用的一種用以分擔server端壓力的分層結構,Proxy只負責必定區域內的數據採集工做,而後按期將數據一次性發送給server,極大的減輕了server的負載壓力,使得能夠支持更大規模的監控需求
一些Zabbix相關教程集合:
Ubuntu 14.04下Zabbix2.4.5 源碼編譯安裝 http://www.linuxidc.com/Linux/2015-05/117657.htm
安裝部署分佈式監控系統Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm
《安裝部署分佈式監控系統Zabbix 2.06》 http://www.linuxidc.com/Linux/2013-07/86942.htm
CentOS 6.3下Zabbix安裝部署 http://www.linuxidc.com/Linux/2013-05/83786.htm
Zabbix分佈式監控系統實踐 http://www.linuxidc.com/Linux/2013-06/85758.htm
CentOS 6.3下Zabbix監控apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 6.3下Zabbix監控MySQL數據庫參數 http://www.linuxidc.com/Linux/2013-05/84800.htm
64位CentOS 6.2下安裝Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
#系統環境:CentOS6.6
#Zabbix Server爲LAMP環境 #Zabbix Proxy需數據庫支持 #Zabbix Server與Zabbix Proxy需時間同步,所有節點已作同步
快速構建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
安裝檢測,若有錯誤,安裝所需依賴包便可
填寫數據庫信息
Name可自定義
Next-Next-Finish便可完成安裝
登錄界面以下,默認用戶admin,密碼zabbix
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 ]
修改語言
Zabbix Server配置先到這裏,接下來咱們去配置Proxy和Agent
安裝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所需軟件包
[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節點都執行以上配置
添加代理
添加監控主機,選擇代理監控
添加模板
#兩臺監控主機都執行以上添加操做
查看監控圖表,驗證是否被監控
已經能夠獲取監控主機的信息,Proxy分佈式監控部署成功
建立web監控
點擊應用集(Applications),建立應用集
點擊web場景,自定義場景
建立相關步驟
#兩臺須要監控的web主機都需建立
查看web狀態
以上即是Zabbix基於Proxy分佈式部署實現Web監控的簡單過程,時間有限,就不往下繼續具體完善了,有興趣的朋友能夠繼續實現報警功能