一、簡介
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主動接收監視資料(trapping方式),同時還可被動接收zabbix agent發送的資料(trapping方式)。另外zabbix server還支援SNMP (v1,v2),可以與SNMP軟體(例如:net-snmp)等配合使用。
zabbix的主要特點: - 安裝與配置簡單,學習成本低
- 支援多語言(包括中文)
- 免費開源
- 自動發現伺服器與網絡裝置
- 分布式監視以及WEB集中管理功能
- 可以無agent監視
- 使用者安全認證和柔軟的授權方式
- 通過WEB界面設定或檢視監視結果
- email等通知功能等等
Zabbix主要功能: - CPU負荷
- 記憶體使用
- 磁盤使用
- 網絡狀況
- 端口監視
- 日志監視
二、Zabbix的常用術語及監控模型
1.Zabbix元件概述
1)Zabbix Server:負責接收agent發送的報告資訊的核心元件,所有配置、統計資料及操作資料均由其組織進行
2)Datebase Storage:專用于存儲所有配置資訊,以及由zabbix收集的資料
3)Web interface:zabbix的GUI接口,通常與Server運作在同一個主機上
4)Proxy:可選元件,常用于分布式監控環境中,代理Server收集部分被監控端的監控資料并統一發往Server端
5)Agent:部署在被監控主機上,負責收集本地資料并發往Server端或Proxy端
2.Zabbix的常用術語
1)主機(host):要監控的網絡裝置,可由IP或DNS名稱指定
2)主機組(host group):主機的邏輯容器,可以包含主機和模闆,但同一個組内的主機和模闆不能互相連結,主機組通常在給使用者或使用者組指派監控權限時使用
3)監控項(item):一個特定監控名額的相關資料,這些資料來自于被監控對象;是以item是zabbix進行資料收集的核心,沒有item,将沒有資料;相對某監控對象來說,每個item都有“key”進行辨別
4)觸發器(trigger):一個表達式,用于評估某監控對象的某特定item内所就收到的資料是否在合理範圍内,即門檻值;接收到的資料量大于門檻值時,觸發器狀态将從“OK”轉換成“Probelm”,當資料量再次回顧到合理範圍時,其狀态将會由“Problem”轉換回“OK”
5)事件(event):即發生的一個值得關注的事情,例如觸發器的狀态轉變,新的agent或重新上線的agent的自動注冊等
6)動作(action):指對于特定事件事先定義的處理方法,通過包含操作(如發送通知)和條件(何時執行操作)
7)報警更新(escalation):發送警報或執行遠端指令的自定義方案,如每隔5分組發送一次警報,共發送5次等
8)媒介(media):發送通知的手段或通道,如Email、Jabber或SMS等有開發API的元件
9)通知(notification):通過標明的媒介向使用者發送的有關事件的通知
10)遠端指令(remote command):預定義的指令,可在被監控主機處于某特定條件下時自動執行
11)模闆(template):用于快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、screen、application已經low-level discovery rule;模闆可以直接連結至單個主機
12)應用場景(application):一組item的組合
13)web場景(web scennario):用于檢測web站點可用性的一個或多個HTTP請求
14)前段(frontend):Zabbix的web接口
3.zabbix的工作模式
4.Zabbix可以監控的對象
<a href="http://s3.51cto.com/wyfs02/M00/27/46/wKioL1NxkfjCOBAuAAOxqc8q8eY043.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/27/46/wKioL1NxlD3jkPEsAAXx5e8E40w375.jpg" target="_blank"></a>
三、實作步驟
1.環境規劃
ip位址
作業系統
安裝軟體
功用
192.168.1.201
centos6.5
zabbix-server、zabbix-web
服務端
192.168.1.202
zabbix-agent
被監控端
192.168.1.203
MariaDB、zabbix-agent
資料庫存儲、被監控端
192.168.1.204
192.168.1.205
windows
2.伺服器端安裝
zabbix的安裝可以有源碼安裝,rpm包安裝,epel源安裝,本處使用的為epel源的安裝方式,本處安裝的為2.2版本,如果使用源碼編譯安裝的話,步驟如下所示
1
2
3
4
5
6
7
8
9
10
11
<code>同時安裝server和agent,并支援将資料放入mysql資料中,可使用類似如下配置指令:</code>
<code>./configure --enable-server --enable-agent --</code><code>with</code><code>-mysql --enable-ipv6 --</code><code>with</code><code>-net-snmp --</code><code>with</code><code>-libcurl --</code><code>with</code><code>-ssh2</code>
<code>如果僅安裝server,并支援将資料放入mysql資料中,可使用類似如下配置指令:</code>
<code>./configure --enable-server --</code><code>with</code><code>-mysql --</code><code>with</code><code>-net-snmp --</code><code>with</code><code>-libcurl</code>
<code>如果僅安裝proxy,并支援将資料放入mysql資料中,可使用類似如下配置指令:</code>
<code>./configure --prefix=/usr --enable-proxy --</code><code>with</code><code>-net-snmp --</code><code>with</code><code>-mysql --</code><code>with</code><code>-ssh2</code>
<code>如果僅安裝agent,可使用類似如下配置指令:</code>
<code>./configure --enable-agent</code>
<code>而後編譯安裝zabbix即可:</code>
<code># make</code>
<code># make install</code>
安裝sever和web
<code>[root@node1 ~]# yum install zabbix22 zabbix22-server zabbix22-server-mysql zabbix22-web zabbix22-web-mysql -y</code>
3.資料庫的安裝及初始化.關于資料庫的安裝請移步至本人相關博文http://wangfeng7399.blog.51cto.com/3518031/1393146,本處使用的為yum安裝,偷懶了^_^!
初始化資料庫,建立zabbix庫
<code>[root@node3 ~]# yum install mysql mysql-server -y</code>
<code>mysql> grant all on *.* to </code><code>'root'</code><code>@</code><code>'192.168.1.%'</code> <code>identified by </code><code>'wangfeng7399'</code><code>;</code>
<code>Query OK, </code><code>0</code> <code>rows affected (</code><code>0.00</code> <code>sec)</code>
<code>mysql> create database zabbix;</code>
<code>Query OK, </code><code>1</code> <code>row affected (</code><code>0.00</code> <code>sec)</code>
<code>mysql> grant all on zabbix.* to </code><code>'zbxuse'</code><code>@</code><code>'192.168.1.%'</code> <code>identified by </code><code>'wangfeng7399'</code><code>;</code>
<code>mysql> flush privileges;</code>
導入資料表
<code>[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.</code><code>168.10</code><code>.</code><code>203</code> <code>zabbix < /usr/share/zabbix-mysql/schema.sql</code>
<code>[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.</code><code>168.10</code><code>.</code><code>203</code> <code>zabbix < /usr/share/zabbix-mysql/images.sql</code>
<code>[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.</code><code>168.10</code><code>.</code><code>203</code> <code>zabbix < /usr/share/zabbix-mysql/data.sql</code>
4.修改server的配置檔案
<code>[root@node1 ~]# vi /etc/zabbix/zabbix_server.conf</code>
<code>修改相關參數如下所示</code>
<code>DBHost=</code><code>192.168</code><code>.</code><code>1.203</code>
<code>DBUser=zbxuse</code>
<code>DBPassword=wangfeng7399</code>
<code>啟動zabbix</code>
<code>[root@node1 ~]# service zabbix-server start</code>
修改php的相關檔案,如下所示
<code>date.timezone = Asia/Shanghai</code>
<code>post_max_size = 32M</code>
<code>max_execution_time = </code><code>400</code>
<code>max_input_time = </code><code>400</code>
<code>重新開機http服務</code>
<code>[root@node1 ~]# service httpd restart</code>
<code>Stopping httpd: [ OK ]</code>
<code>Starting httpd: [ OK ]</code>
5.通過web-GUI配置zabbix,通路頁面為http://ip/zabbix,将會打開如下頁面
<a href="http://s3.51cto.com/wyfs02/M02/27/47/wKioL1Nxn0aDNyKvAALYjE49PW4365.jpg" target="_blank"></a>
單擊next,zabbix會檢查系統的狀态
<a href="http://s3.51cto.com/wyfs02/M01/27/47/wKioL1Nxn0niIzdHAAM1UER_uqE651.jpg" target="_blank"></a>
單擊next,輸入資料庫賬号密碼
<a href="http://s3.51cto.com/wyfs02/M01/27/47/wKiom1Nxn3fhZKfhAALrBh7TbzM535.jpg" target="_blank"></a>
如果賬号,密碼通過不了,将不能下一步,為目前server設定一個名稱
<a href="http://s3.51cto.com/wyfs02/M00/27/47/wKioL1Nxn1SB8mz7AAJYF4CYO6A379.jpg" target="_blank"></a>
安裝摘要,單擊next
<a href="http://s3.51cto.com/wyfs02/M00/27/47/wKiom1Nxn4LS_HgNAALHwzLbtPA363.jpg" target="_blank"></a>
安裝成功,單擊finish,登陸系統
<a href="http://s3.51cto.com/wyfs02/M01/27/47/wKioL1Nxn1qhXZKfAAIkoUvqH0U230.jpg" target="_blank"></a>
賬号為admin,密碼為zabbix
<a href="http://s3.51cto.com/wyfs02/M00/27/47/wKiom1Nxn4nz8iolAAGDZNinSLE540.jpg" target="_blank"></a>
zabbix的程式界面
<a href="http://s3.51cto.com/wyfs02/M02/27/47/wKioL1Nxn2DALUrAAARU0K2WCC8488.jpg" target="_blank"></a>
6.配置中文界面和中文字型.前提是作業系統安裝的時候安裝過中文,要不沒有下面的檔案夾的
<a href="http://s3.51cto.com/wyfs02/M00/27/61/wKioL1NyARqBR-IcAANVIrhU7B8480.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/27/61/wKiom1NyAUew9Ln8AAKXAoFli3g353.jpg" target="_blank"></a>
1、 在windows系統中的C:\windows\fonts目錄中複制一個自己喜歡的,如simfang.ttf(仿宋簡體);
2、 将simfang.ttf檔案上傳到Zabbix Server網站目錄中的fonts目錄下;
如:/usr/shar/zabbix/fonts中,可以通過/etc/httpd/conf.d/zabbix.conf找到zabbix的路徑
3、 将Zabbix Server網站目錄中的fonts目錄裡原來的“graphfont.ttf”改名
4、将上傳上去的檔案改為graphfont.ttf
5、 隻需要重新整理一下,無亂碼!
基本搭建完成,後續将推出如何添加伺服器,以後如何實作自動發現、及zabbix的分布式監控,敬請期待
本文轉自wangfeng7399 51CTO部落格,原文連結:http://blog.51cto.com/wangfeng7399/1410691,如需轉載請自行聯系原作者