最近研究了下群裡談論比較火的一個國外開源網絡監控系統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
-------------
# touch /var/log/zabbix_server.log
# chmod 777 /var/log/zabbix_server.log
# touch /var/log/zabbix_agentd.log
# chmod 777 /var/log/zabbix_agentd.log
7、啟動守護進程(server,agent)
在服務器端運行啟動zabbix_server
# zabbix_server
server啟動端口為10051
在所有被監控的機器上運行zabbix_agentd 。
# zabbix_agentd
agentd啟動端口為10050
注意若服務器打開iptables服務,則需添加該兩個端口通行。
# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
# iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
注:重啟服務可直接kill掉zabbix進程再重新按照以上方法啟動
# pkill zabbix
# ps -ef |grep zabbix
或配置開機啟動腳本:
# cd zabbix-2.0.6
# cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
# cd /etc/init.d/
# chmod 755 zabbix_*
# vi zabbix_server
# vi zabbix_agentd
在文件頭部的#!/bin/sh行下分別添加如下兩行:
--------------
#chkconfig: 35 95 95
#description:zabbix Agent server
--------------
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
重啟服務:
# service zabbix_server restart
# service zabbix_agentd restart
8.安裝zabbix web界面(server)
復制ZABBIX PHP源代碼文件
zabbix的服務端程序是用php寫的,因此需要一個支持LAMP架構的服務器平台
現在將ZABBIX安裝目錄下 frontends/php 下面的php源代碼文件拷貝到web服務器html文件目錄下面。
這裡建議用子目錄替換APACHE HTML根目錄或使用APACHE虛擬主機
這裡測試環境我為了方便就選擇了前者。
先建立一個子目錄,將zabbix終端php文件拷貝到該子目錄裡面,執行下面的命令:
# mkdir /usr/local/apache2/htdocs/zabbix
# cd frontends/php
# cp -a . /usr/local/apache2/htdocs/zabbix
安裝前端
step 1
在你的浏覽器中,輸入url:http://192.168.7.201/zabbix,你將看到前端安裝向導的第一個畫面。
step 2
確保所有依賴的軟件都正確安裝。
查看到幾處不符合要求
需修改該PHP文件配置文件參數:
# vi /usr/local/php5/lib/php.ini
查找如下參數並修改為:
----------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----------------
加載PHP下gettext模塊
# cd /root/php-5.4.13/ext/gettext
# /usr/local/php5/bin/phpize
# ./configure --with-php-config=/usr/local/php5/bin/php-config
# make && make install
加載該模塊
# vi /usr/local/php5/lib/php.ini
添加如下行:
extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"
重啟apache服務
# service httpd restart
刷新頁面:
step 3
輸入之前在MYSQL後台設置的zabbix數據庫信息:
DBName=zabbix
DBUser=zabbix
DBPassword=123456
測試連接時若報錯,添加如下命令:
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
step 4
輸入zabbix服務器端的詳細信息
step 5
檢查一下設置情況。
step 6
下載配置文件,並把他放置在/usr/local/apache2/htdocs/zabbix/conf/ 目錄下
step 8
zabbix前端已經安裝就緒,默認的用戶名是Admin,密碼是zabbix。
注:如下報錯是因為zabbix數據未導入MYSQL數據庫:
zabbix主界面如圖,server端配置完畢:
手動添加主機
大功告成。。。
注:
1.顯示簡體中文界面
點擊:右上角Profile
按照如圖選擇Chinese(zh_CN),保存:
2.解決zabbix繪圖中出現中文亂碼問題:
a.從windows下控制面板->字體->選擇一種中文字庫,例如“微軟雅黑”
b.把它拷貝到zabbix的web端的fonts目錄下例如:/usr/local/apache2/htdocs/zabbix/fonts,並且把TTF後綴改為ttf
c.修改zabbix的web端 include/defines.inc.php
# cd /usr/local/apache2/htdocs/zabbix
# vi include/defines.inc.php
搜索 'DejaVuSans'
用"//"注釋掉系統默認行,並添加新的字體參數行。
其中msyh為字庫名字,不包含ttf後綴
----------------------
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'msyh');
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
define('ZBX_GRAPH_FONT_NAME', 'msyh');
3.監控windows主機:
 
下載地址:http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip
在C:\Program Files\下創建zabbix文件夾
解壓zip包後:將包內bin/win64/下的所有文件復制到 C:\Program Files\zabbix下
並在該目錄下創建一個zabbix_agentd.conf文件,內容為
-------------------
LogFile=C:\Program Files\zabbix\zabbix_agentd.log
Server=192.168.7.11
UnsafeUserParameters=1
-------------------
進入cmd命令行:
# cd C:\Program Files\zabbix
安裝zabbix客戶端:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -i
啟動zabbix服務:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -s
參數含義:
-c 制定配置文件所在位置
-i 安裝客戶端
-s 啟動客戶端
-x 停止客戶端
-d 卸載客戶端
在服務端添加客戶端主機監控同上。。
-------大功告成--------
本文出自 “一路向北” 博客,請務必保留此出處http://showerlee.blog.51cto.com/2047005/1189484