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
以上架構中的組件描述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監控警報的實現
環境搭建
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
Zabbix frontend 即Zabbix web前段接口初始化配置完成!
登陸
帳戶:admin
密碼:zabbix
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
Save保存
Morniting查看已添加的主機
二、爲host添加Item
添加Item1
添加Item2
Save保存
三、爲item建立graph
Configuriation --->Hosts--->Graph 點擊Create Graph建立
####添加item後,點擊Save保存
查看建立好的Graph
四、建立Screen
Configuration--->Screens 點擊Create Screen建立
Save
Save 保存
查看Screen
五、建立觸發器(trigger)
Configuration--->Hosts---Trigger
點擊Create Trigger
保存退出
查看Triggers
Trigger設置完成後,查看各個Item的變化圖
Motitoring---->Latest data --->Host----->Graph
看到觸發到觸發器設置的函數條件後 生成的閾值線了吧!!!
六、建立media
Administration---->Media types
七、建立action
而後配置Oprations
###Update
而後配置Conditions
Save保存,action配置完成!
八、再次查看Item狀態
Montoring--->Latest data
######已經達到咱們觸發器trigger的觸發條件conditons,接下來將執行動做oprations 發送消息
九、查看警告信息(郵件)
監控警告郵件已通過來了~~
咱們已經成功實現了監控的完整的一個流程:
數據採集---->數據存儲---->數據存儲----->報警
PS:我的水平有限,不妥之處請指出!