一、zabbix概述
zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平臺上。
zabbix agent需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。zabbix agent可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系統之上。
zabbix server可以單獨監視遠程服務器的服務狀態;同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),可以與SNMP軟件(例如:net-snmp)等配合使用。
zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現服務器與網絡設備
- 分佈式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
-email等通知功能等等
(摘自百度百科)
二、zabbix的常用名詞
主機(host):要監控的網絡設備,可由IP或DNS名稱指定
主機組(host group):主機的邏輯容器,可以包含主機和模板,但同一個組內的主機和模板不能互相鏈接,主機組通常在給用戶或用戶組指派監控權限時使用
監控項(item):一個特定監控指標的相關數據,這些數據來自於被監控對象;因此item是zabbix進行數據收集的核心,沒有item,將沒有數據;相對某監控對象來說,每個item都有“key”進行標識
觸發器(trigger):一個表達式,用於評估某監控對象的某特定item內所就收到的數據是否在合理範圍內,即閾值;接收到的數據量大於閾值時,觸發器狀態將從“OK”轉換成“Probelm”,當數據量再次回顧到合理範圍時,其狀態將會由“Problem”轉換回“OK”
事件(event):即發生的一個值得關注的事情,例如觸發器的狀態轉變,新的agent或重新上線的agent的自動註冊等
動作(action):指對於特定事件事先定義的處理方法,通過包含操作(如發送通知)和條件(何時執行操作)
報警升級(escalation):發送警報或執行遠程命令的自定義方案,如每隔5分組發送一次警報,共發送5次等
媒介(media):發送通知的手段或通道,如Email、Jabber或SMS等有開發API的組件
通知(notification):通過選定的媒介向用戶發送的有關事件的通知
遠程命令(remote command):預定義的命令,可在被監控主機處於某特定條件下時自動執行
模板(template):用於快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、screen、application已經low-level discovery rule;模板可以直接鏈接至單個主機
應用場景(application):一組item的組合
web場景(web scennario):用於檢測web站點可用性的一個或多個HTTP請求
前段(frontend):Zabbix的web接口
三、實驗環境
IP地址 | 角色 | 安裝軟件 | 操作系統 |
172.16.88.2 | 服務器端+被監控端+數據庫存儲 | zabbix-server、zabbix-web、zabbix-agent、mysql,php,httpd | centos6.5 |
172.16.88.4 | 被監控端 | zabbix-agent | centos6.5 |
四、zabbix安裝
zabbix可以採用rpm,yum,源碼編譯安裝3種,我們這裏採用編譯安裝!
下載源碼包:
在172.16.88.2服務器端安裝:
[root@mogilefs2 ~]# yum install mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql php-mbstring php-bcmath httpd [root@mogilefs2 ~]# tar xf zabbix-2.0.9.tar.gz [root@mogilefs2 ~]# cd zabbix-2.0.9 [root@mogilefs2 zabbix-2.0.9]# groupadd zabbix [root@mogilefs2 zabbix-2.0.9]# useradd -g zabbix zabbix
創建數據庫(使用mysql數據庫)
[root@mogilefs2 zabbix-2.0.9]# mysql mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; mysql> flush privileges;
數據庫文件在zabbix-2.0.6/database/mysql目錄下,導入進去
[root@mogilefs2 ~]# cd zabbix-2.0.9/database/mysql/ [root@mogilefs2 mysql]# mysql -uzabbix -pzabbix zabbix <schema.sql [root@mogilefs2 mysql]# mysql -uzabbix -pzabbix zabbix <p_w_picpaths.sql [root@mogilefs2 mysql]# mysql -uzabbix -pzabbix zabbix <data.sql
編譯安裝
[root@mogilefs2 ~]# cd zabbix-2.0.9 [root@mogilefs2 zabbix-2.0.9]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl [root@mogilefs2 zabbix-2.0.9]# make &&make install
修改server配置文件
[root@mogilefs2 etc]# vim /usr/local/zabbix/etc/zabbix_server.conf //修改如下: LogFile=/tmp/zabbix_server.log DBName=zabbix DBUser=zabbix DBPassword=zabbix DBSocket=/var/lib/mysql/mysql.sock
啓動
[root@mogilefs2 sbin]# cd /usr/local/zabbix/sbin/ [root@mogilefs2 sbin]# ./zabbix_server [root@mogilefs2 sbin]# netstat -tnlp
配置php
[root@mogilefs2 sbin]# vim /etc/php.ini date.timezone =Asia/Shanghai post_max_size = 32M max_execution_time = 400 max_input_time = 400 //重啓http服務 [root@mogilefs2 sbin]# service httpd restart
複製web interface到www目錄
[root@mogilefs2 sbin]# mkdir /var/www/html/zabbix [root@mogilefs2 sbin]# cd /root/zabbix-2.0.9/frontends/php/ [root@mogilefs2 php]# cp -a . /var/www/html/zabbix/
確認好web服務器配置並開啓,就輸入http://172.16.88.2/zabbix來進行web的安裝!
選擇next
1、查看哪個不ok就解決
我這個是全部ok,直接next
2、輸入的數據庫連接信息
3、輸入你的zabbix服務信息
4、之前操作的彙總
沒有問題,選擇next
5、先下載這個文件,然後在傳到服務器裏,給與777權限,修改用戶與組爲zabbix
6、沒有問題了,選擇finish
7、默認的賬戶爲Admin,密碼爲zabbix,之後就進入zabbix界面了
8、修改語言爲簡體中文
改成中文時,有時候可能會出現亂碼,我們可以通過以下操作來解決!
1、在windows系統中的C:\windows\fonts目錄中複製一個自己喜歡的,如simfang.ttf(楷體簡體);
2、將simfang.ttf文件上傳到Zabbix Server網站目錄中的fonts目錄下;如:/var/www/html/zabbix/fonts中
3、將Zabbix Server網站目錄中的fonts目錄裏原來的“DejaVuSans.ttf”改名。
4、將上傳上去的文件改爲DejaVuSans.ttf。
5、只需要刷新一下,無亂碼!
五、zabbix的簡單配置
首先添加主機:
配置如下:
添加主機完成後,添加監控項目:
繼續添加3個項目:
項目添加完成後,我們來添加圖形!
在主機列表上,找到對應的主機,然後點擊圖形按鈕,再點擊創建圖形!
再來定義篩選
定義觸發器
創建新的媒介
定義動作
配置>動作>創建動作
查看狀態
測試下,看是否會報警:
通過ping 172.16.88.2來增加網卡流量
爲了演示修改,把觸發器改成流量大於1024時,觸發動作!
我們來看下管理員有沒有收到郵件通知
當流量正常時,狀態就變成正常了
六、爲zabbix創建模塊
大家是不是發現上面爲主機創建這些項目,圖形,觸發器非常麻煩,我們可以定義一個模塊,讓創建主機時,關聯這個模塊就可以了!
另一臺agent服務器的安裝:
172.16.88.4上同樣通過編譯安裝zabbix
[root@www ~]# tar xf zabbix-2.0.9.tar.gz [root@www ~]# cd zabbix-2.0.9 [root@www zabbix-2.0.9]# groupadd zabbix [root@www zabbix-2.0.9]# useradd -g zabbix zabbix [root@www zabbix-2.0.9]# ./configure --prefix=/usr/local/zabbix --enable-agent [root@www zabbix-2.0.9]# make && make install
修改配置文件
[root@www ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf //修改如下: Server=172.16.88.2
啓動agent服務
[root@www ~]# cd /usr/local/zabbix/sbin/ [root@www sbin]# ./zabbix_agent zabbix_agent zabbix_agentd [root@www sbin]# ./zabbix_agentd
查看端口:
連接新增主機:
當流量超了,依然會有報警
至此,zabbix的安裝與簡單應用已經介紹完畢,後期我們會來介紹下zabbix的高級應用!