最近研究了下群裡談論比較火的一個國外開源網路監控系統ZABBIX,玩過一遍後就深深被他的介面簡潔,後台配置邏輯分類清晰,易於配置上手的優點給吸引,立即將單位的系統統一換成這個平台監測,測試了一段時間,效果良好。
之前玩過cacti和nagios,算是一個大家耳熟能詳的業內常用的的網管互補組合,但個人感覺前者由於調用snmp協議,導致有時候在網路不太穩定時會有資料丟失情況,後者nagios雖然不依賴於SNMP,但用戶端的複雜的安裝,初始配置以及需要讀懂外掛程式文法導致會讓很多初學者望而卻步。
zabbix不僅吸取了兩者的製圖和動態監測的優點,而且很多外掛程式以及常用指令碼模板都是系統內建,最重要的配置相對於前兩者簡潔了很多,所以省去了很多學習成本,加之該監控系統是利用PHP語言寫的,系統個人定製就無需使用者修改底層代碼,而可以直接在WEB介面去按照自己的喜好設定,支援字型修改以及簡體中文,強烈推薦大家線上上使用這套網管平台。
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主動接收監視資料(trapping方式),同時還可被動接收zabbix agent發送的資料(trapping方式)。另外zabbix server還支援SNMP (v1,v2),可以與SNMP軟體(例如:net-snmp)等配合使用。
zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支援多語言(包括中文)
- 免費開源
- 自動探索服務器與網路裝置
- 分布式監視以及WEB集中管理功能
- 可以無agent監視
- 使用者安全認證和柔軟的授權方式
- 通過WEB介面設定或查看監視結果
- email等通知功能等等
Zabbix主要功能:
- CPU負荷
- 記憶體使用量
- 磁碟使用
- 網路狀況
- 連接埠監視
- 日誌監視
配置前先關閉iptables和SELINUX,避免安裝過程中報錯。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
一.安裝LAMP環境
本博傳送門:http://showerlee.blog.51cto.com/2047005/1174141
二、zabbix(server,agent)配置:
server: 192.168.7.201
agent: 192.168.7.249
簡單提下,其實是服務端安裝zabbix_server,zabbix_agentd兩個服務,用戶端只需安裝zabbix_agentd一個服務,監控原理其實就是zabbix_agentd服務將從系統中擷取的相關資料傳送給zabbix_server服務,然後zabbix_server服務將資料以PHP頁面顯示出來,很好理解。
(server)表示僅服務端配置
(agent)表示僅用戶端配置
(server,agent)表示用戶端與服務端都需配置
1.下載zabbix(server,agent)
註:本人下載的是官方2.06的服務端與用戶端的穩定整合編譯包,所以後面編譯的時候注意,以 --enable-server --enable-agent 參數編譯的為伺服器端,以 --enable-agent參數編譯的為用戶端。
官方提供的另外一種下載方式是服務端與用戶端單獨區分的編譯包,編譯方法與本博的方法不同,這裡請注意區分。
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
2.安裝zabbix所需的組件(server,agent)
# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
3.建立使用者帳號(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
4.建立zabbix資料庫並匯入zabbix資料庫資料(server)
# mysql -u root -p123456
> grant all on zabbix.* to zabbix@localhost identified by '123456';
> create database zabbix;
# tar zxvf zabbix-2.0.6.tar.gz
# cd zabbix-2.0.6
# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
5.編譯安裝(server,agent)
server: (192.168.7.201)
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make install
agent: (192.168.7.249)
# ./configure --enable-agent
# make install
這裡筆者由於當時編譯時間忘記自訂安裝目錄導致zabbix設定檔使用了預設路徑,在/usr/local/etc/下,這裡若重新編譯則下面更改的地方較多,後面的內容都以此路徑為準。
參照本博配置的朋友,建議編譯時間加 --prefix=/usr/local/zabbix 參數,則zabbix設定檔預設在 /usr/local/zabbix/etc目錄下。
6.編輯設定檔(server,agent)
# cd /usr/local/etc/
去掉設定檔注釋:
# cat zabbix_server.conf |grep -v "#" |grep -v "^$" > zabbix_server.conf.bak
# cp zabbix_server.conf.bak zabbix_server.conf
# cat zabbix_agentd.conf |grep -v "#" |grep -v "^$" > zabbix_agentd.conf.bak
# cp zabbix_agentd.conf.bak zabbix_agentd.conf
server: (192.168.7.201)
# vi /usr/local/etc/zabbix_server.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
-------------
# vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,192.168.7.201
UnsafeUserParameters=1
-------------
agent: (192.168.7.249)
# vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=192.168.7.201
UnsafeUserParameters=1
-------------