開源監控系統------Zabbix

Zabbix簡介php


   zabbix是一個基於web界面的提供分佈式系統監控以及網絡監控功能的企業級的開源解決方案。前端

   zabbix能夠監控各類網絡參數,保證服務器系統的安全正常運行;並提供柔軟的通知機制以讓系統管理員快速的定位並解決問題。zabbix由兩部分組成,zabbix server與可選組件zabbixagent。java

zabbix  server能夠經過SNMP、zabbix agent、ping、端口監視等方法 提供對遠程服務器或者網絡狀態的監視,進行數據採集、數據存儲、數據展現等功能;mysql


   zabbix能夠運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。zabbix agent須要安裝在被 的目標服務器上。它主要完成對硬件信息或與操做系統有關的內存,CPU等信息的收集;zabbix server 能夠單獨監視遠程服務器的服務狀態;也能夠與zabbix agent配合,能夠輪詢zabbix agetn 主動接受監視數據(trapping方式),同時還能夠被動接受zabbix agent發送的數據(trapping方式)。另外zabbix server 還支持SNMP協議,能夠與SNMP軟件(如net-snmp)配合使用ios



Zabbix架構
web


        wKioL1Nyy12hc0fLAADgZX1duDo780.jpg


           以上架構中的組件描述sql

           

Zabbix Server:負責接受agent發送的報告信息的核心組件,因此配置、配置數據集操做數據均由其組織進行;
Database Storage: 專用於存儲全部配置信息,以及由zabbix收集的數據;
Web interface: zabbix的GUI接口,一般與Server運行在同一個主機上;
Proxy:可選組件,經常使用於分佈式監控環境中,代理Server收集部分被監控端的監控數據並同一發往Server;
Agent:部署在被監控主機上,負責收集本地數據併發往Server端或Porxy端

             


Zabbix經常使用術語數據庫


 

主機(host)
#要監控的網絡設備,可由IP或DNS名稱指定;
主機組(host group)
#主機的邏輯容器,能夠包含主機和模板,但同一個組內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用;
監控項(item)
#一個特定監控指標的相關數據,這些數據來自於被監控對象;對於item時zabbix進行數據收集的核心,沒有item,將沒有數據;相對某監控對象來講,每一個item都由「key」進行標識
觸發器(trigger)
#一個表達式,用於評估某監控對象的某特定item內所接受到的數據時否在合理範圍內,即閾值;接受到的數據量大於閾值時,觸發器狀態從「OK」轉變爲"problem",當數據量再次迴歸到合理範圍時,其狀態將從"problem"轉換回「OK「
事件(event)
#即發生一個值得關注的事情,例如觸發器的狀態轉變,新的agent或從新上線的agent的自動註冊等;
動做(action)
#指對特定事件事先定義的處理方法,經過包含操做(如發送通知)和條件(什麼時候執行操做);
報警升級(escalation)
#發送警報或執行遠程命令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等;
媒介(media)
#發送通知的手段或通道,如Email、Jabber或SMS等;
通知(notification)
#經過選定的媒介向用戶發送的有關某事件的信息;
遠程命令(remote command)
#預約義的命令,可在被監控主機處於某特定條件下時自動執行;
模板(template)
#用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level  discovery rule;模板能夠直接連接至單個主機;
應用程序(application)
#一組item的集合
web場景(web scennario)
#用於檢測web站點可用性的一個或多個HTTP請求;
前端(frontend)
#Zabbix的web接口


Zabbix監控系統的核心功能vim


   

數據採集---->數據存儲(根據時間序列)----->數據展現和分析----->報警
1)數據採集
#SNMP
#agent
#ICMP/SSH/IPMI (無agent端的)
#web 
2)數據存儲
#cacti: rrd
#nagios:只注重狀態轉換(並不保存數據),若是使用數據庫則使用mysql
#zabbix :mysql/pgsql/oracle
3)數據展現
  數據展現: --------通常在其對應的web平臺展現
#java
#php    
#移動app
4)報警
# mail(smtp)
# Chat Message
# SMS




Zabbix的安裝方式
centos


    一、編譯安裝zabbix

       源碼包下載地址

       http://www.zabbix.com/download.php

       

(1)同時安裝server和agent,並支持將數據放入mysql數據中,可以使用相似以下配置命令:
#./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2
(2)若是僅安裝server,並支持將數據放入mysql數據中,可以使用相似以下配置命令:
#./configure --enable-server --with-mysql --with-net-snmp --with-libcurl
(3)若是僅安裝proxy,並支持將數據放入mysql數據中,可以使用相似以下配置命令:
# ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2
(4)若是僅安裝agent,可以使用相似以下配置命令:
# ./configure --enable-agent
而後執行 make  && make install 便可


   二、rpm包安裝

      http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/


       


Zabbix監控警報的實現


    環境搭建

         

     wKiom1Ny2R3gv-T2AACggT6sJMY190.jpg

     

Zabbix Server服務器 172.16.13.2

rpm包安裝

zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-get-2.0.8-3.el6.x86_64.rpm  
zabbix-server-2.0.8-3.el6.x86_64.rpm
zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm

zabbix-web-2.0.8-3.el6.noarch.rpm  

zabbix-web-mysql-2.0.8-3.el6.noarch.rpm

httpd-2.2.15-29.el6.centos.x86_64

php-5.3.3-26.el6.x86_64

MySQL  服務器 172.16.13.13 編譯安裝
Zabbix agent 服務器 172.16.13.3
 zabbix-agent-2.0.8-3.el6.x86_64.rpm  
 zabbix-sender-2.0.8-3.el6.x86_64.rpm

   


1、MySQL的編譯安裝

   172.16.13.13服務器編譯安裝mysql

   關於MariDB的編譯安裝請移步個人博客:

   http://jungege.blog.51cto.com/4102814/1394924

   

   


2、Zabbix server配置


    一、安裝

       

下載rpm包 放在root家目錄
zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-get-2.0.8-3.el6.x86_64.rpm 
zabbix-server-2.0.8-3.el6.x86_64.rpm
zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
zabbix-web-2.0.8-3.el6.noarch.rpm 
zabbix-web-mysql-2.0.8-3.el6.noarch.rpm
zabbix-agent-2.0.8-3.el6.x86_64.rpm 
zabbix-sender-2.0.8-3.el6.x86_64.rpm

   

#mkdir agent  -----將angent包先存放起來
#mv zabbix-agent-2.0.8-3.el6.x86_64.rpm  zabbix-sender-2.0.8-3.el6.x86_64.rpm agent/  
#yum -y localinstall *.rpm ------只安裝zabbix-server ,zbbix-web,zbbix-web-mysql  zbbix-get  zabbix-server-mysql  php  httpd 

   

   二、初始化數據庫


# rpm -ql  zabbix-server-mysql
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
   /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
  /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql
 /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
 將以上三個關於zabbix的mysql文件拷貝到mysql服務器上並導入
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
MariaDB [(none)]> create database zabbix;
MariaDB [(none)]> grant all on *.* to root@'172.16.%.%' identified by 'mypass' with grant option;   
MariaDB [(none)]> flush privileges;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
直接在zabbix server服務器上來導入
#yum -y install  mysql  安裝mysql客戶端
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql   
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
受權一個普通用戶 對zabbix數據庫的訪問
MariaDB [zabbix]> grant all zabbix.* to 'zbxuser'@'172.16.%.%' identified by 'zbxpass';
MariaDB [zabbix]> flush privileges;

 

    三、編輯zabbix配置文件

# cd  /etc/zabbix
# vim zabbix_server.conf
   DBHost=172.16.13.13
   DBName=zabbix
   DBUser=zbxuser
   DBPassword=zbxpass
   DBPort=3306 
# service  zabbix-server  start
# ss -ntlpu
 默認偵聽在10051端口


    四、配置zabbix-web

   

# vim /etc/php.ini 修改一下時區
  a.timezone = Asia/Shanghai
# service httpd restart
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
Web訪問路徑
# cat  /etc/httpd/conf.d/zabbix.conf 
  Alias /zabbix /usr/share/zabbix---  使用的是別名  /zabbix
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 


   五、zabbix-web訪問

     http://172.16.13.2/zabbix

     wKiom1Ny4tXjkoBpAAIiIxvHSmw787.jpg

     

     wKioL1Ny4sSBKA3yAAHtJd0jz1U437.jpg

     

     wKiom1Ny4wLSXosnAAF-cSDxD-0089.jpg


     

   wKioL1Ny4uzDoWSgAAGCTn8stdY658.jpg

     

   Zabbix frontend 即Zabbix web前段接口初始化配置完成!

   登陸

   帳戶:admin

   密碼:zabbix


   wKiom1Ny5NCBEYhrAANB2hrPHoE206.jpg

   


3、Zabbix agent 配置


   

一、下載rpm包
zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-agent-2.0.8-3.el6.x86_64.rpm 
zabbix-sender-2.0.8-3.el6.x86_64.rpm   
二、安裝     
# yum -y localinstall *.rpm
三、編輯配置文件
# cd /etc/zabbix
# vim  zabbix_agentd.conf
  Server=172.16.13.3
四、啓動服務
# service  zabbix-agent  start
# ss -ntlp
默認偵聽在 10050端口

 

     配置OK,接下來咱們將Agent 添加到服務器的檢測主機列表中去



4、Zabbix server經過zabbix-web接口配置


一、添加host

   Configure---->hosts

   wKioL1Ny5yDRXZUwAAFpL2BlkrE927.jpg

    Save保存


    Morniting查看已添加的主機

    wKiom1Ny58exiIGMAAEz426V7rw520.jpg


二、爲host添加Item

 

   添加Item1

   wKioL1Ny6Q-wSPE_AAJ174Dz1SY888.jpg


   添加Item2

   wKioL1Ny6ZmzQzyqAAI-kKbI-Js926.jpg

 

   Save保存


三、爲item建立graph


   Configuriation --->Hosts--->Graph   點擊Create Graph建立


   wKioL1Ny61iR1ziVAAEy9N1qbKI318.jpg

   wKiom1Ny65SCaeVVAAEaYSVd5fI900.jpg


  ####添加item後,點擊Save保存

  查看建立好的Graph

  wKioL1Ny7MbSUK2wAAHeAbrZOO0787.jpg

 

四、建立Screen

   Configuration--->Screens 點擊Create Screen建立


   wKiom1Ny7t2TYPbmAADGCZ4pLiM621.jpg

Save

wKioL1Ny7sKxxOMmAAB7T4DW_yE593.jpg

wKioL1Ny7yfxwS_nAAGnN6GNZEU057.jpg


wKiom1Ny7wLRnTPUAAB30BG7JJk836.jpg


Save 保存


 查看Screen

 wKioL1Ny76WT4a2BAAJv5buC6js941.jpg


五、建立觸發器(trigger)


  Configuration--->Hosts---Trigger

  點擊Create  Trigger


  wKioL1Ny8JmBcU4_AAGHiMywo-8013.jpg  設置Expression constructor


wKiom1Ny9gmSJ0gYAAENaaP0upc010.jpg

wKiom1Ny9kKCUOEzAAHIvZ0xcqw909.jpg

保存退出

查看Triggers

wKiom1Ny9sOg6nyXAAGkZ90IGlo713.jpg


  Trigger設置完成後,查看各個Item的變化圖

 

  Motitoring---->Latest data --->Host----->Graph


wKioL1Ny96uwDtt9AAK-8jnhLoE889.jpg

  看到觸發到觸發器設置的函數條件後 生成的閾值線了吧!!!


六、建立media

  Administration---->Media types

 

  wKiom1Ny-KPydQRqAAIZ-KaAV1A645.jpg

wKioL1Ny-JTBlWSbAACVPwkTdtM759.jpg


七、建立action

  wKioL1Ny-ibj7imkAAJKKPAES9Q134.jpg

  而後配置Oprations

  wKioL1Ny-vzAcekrAAMxpV4_d_k170.jpg

  ###Update

而後配置Conditions

 

wKiom1Ny-3axuCjeAAIyjK6xpug201.jpg

Save保存,action配置完成!


八、再次查看Item狀態


  Montoring--->Latest data


wKiom1Ny_GDSy1a3AADEyOXxRAw751.jpg

wKioL1Ny_EWj4J66AAJdJfcv0mA070.jpg  

######已經達到咱們觸發器trigger的觸發條件conditons,接下來將執行動做oprations 發送消息


九、查看警告信息(郵件)


 wKioL1Ny_USgT8SsAANHBa1ges8881.jpg

 監控警告郵件已通過來了~~

 咱們已經成功實現了監控的完整的一個流程:

 數據採集---->數據存儲---->數據存儲----->報警


PS:我的水平有限,不妥之處請指出!

相關文章
相關標籤/搜索