果學網 -專一IT在線www.prismcollege.com
php
參考原文:http://www.showerlee.com/archives/13
html
RHCE過的EMAIL已經下來。因此近期閒了就準備把先前的文檔更新下。前端
我更新的內容主要是把本身當時的理解加到配置裏,告訴你們我當時的一些思路想法。而不會像網上的很是多文檔僅僅會把一大堆命令貼出來。搞得很是多自己對該知識點不瞭解的朋友更加暈頭轉向。mysql
搞了LINUX大半年,真心是興趣所致,變成LINUX大牛是我將來事業的目標。對此我樂此不彼,但也深信不疑。。linux
近期研究了下羣裏談論比較火的一個國外開源網絡監控系統ZABBIX。玩過一遍後就深深被他的界面簡潔,後臺配置邏輯分類清晰。易於配置上手的長處給吸引,立刻將單位的系通通一換成這個平臺監測,測試了一段時間。效果良好。ios
以前玩過cacti和nagios。算是一個你們耳熟能詳的業內常用的的網管互補組合。但我的感受前者由於調用snmp協議。致使有時候在網絡不太穩定時會有數據丟失狀況。後者nagios儘管不依賴於SNMP,但client的複雜的安裝。初始配置以及需要讀懂插件語法致使會讓很是多剛開始學習的人望而卻步。web
zabbix不只吸收了二者的製圖和動態監測的長處,而且很是多插件以及常用腳本模板都是系統自帶。最重要的配置相對於前二者簡潔了很是多,因此省去了很是多學習成本,加之該監控系統是利用PHP語言寫的,系統我的定製就無需使用者改動底層代碼,而可以直接在WEB界面去依照本身的偏好設置,支持字體改動以及中文簡體。強烈推薦你們在線上使用這套網管平臺。sql
zabbix簡單介紹(摘自百度百科)數據庫
zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方式。apache
zabbix能監視各類網絡參數。保證服務器系統的安全運營;並提供柔軟的通知機制以讓系統管理員高速定位/解決存在的各類問題。zabbix由2部分構成。zabbix server與可選組件zabbix agent。zabbix server可以經過SNMP。zabbix agent,ping,port監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以執行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平臺上。zabbix agent需要安裝在被監視的目標server上,它主要完畢對硬件信息或與操做系統有關的內存。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可以單獨監視遠程server的服務狀態;同一時候也可以與zabbix agent配合。可以輪詢zabbix agent主動接收監視數據(trapping方式),同一時候還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2)。可以與SNMP軟件(好比:net-snmp)等配合使用。
zabbix的主要特色:
- 安裝與配置簡單。學習成本低
- 支持多語言(包含中文)
- 免費開源
- 本身主動發現server與網絡設備
- 分佈式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的受權方式
- 經過WEB界面設置或查看監視結果
- email等通知功能等等
Zabbix主要功能:
- CPU負荷
- 內存使用
- 磁盤使用
- 網絡情況
- port監視
- 日誌監視
配置前先關閉iptables和SELINUX,避免安裝過程當中報錯。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
一.安裝LAMP環境
本博傳送門:http://www.showerlee.com/archives/6
2、zabbix(server,agent)配置:
server: 192.168.7.201
agent: 192.168.7.249
簡單提下,事實上是服務端安裝zabbix_server,zabbix_agentd兩個服務。client僅僅需安裝zabbix_agentd一個服務。監控原理事實上就是zabbix_agentd服務將從系統中獲取的相關數據傳送給zabbix_server服務,而後zabbix_server服務將數據以PHP頁面顯示出來,很是好理解。
(server)表示僅服務端配置
(agent)表示僅client配置
(server,agent)表示client與服務端都需配置
1.下載zabbix(server,agent)
注:本人下載的是官方2.06的服務端與client的穩定整合編譯包。因此後面編譯的時候注意。以 --enable-server --enable-agent 參數編譯的爲服務器端。以 --enable-agent參數編譯的爲client。
官方提供的第二種下載方式是服務端與client單獨區分的編譯包。編譯方法與本博的方法不一樣。這裏請注意區分。
# 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文件夾下,後面啓動服務前需載入zabbix文件夾下bin與sbin文件夾的環境變量
默認zabbix安裝路徑/usr/local/下的bin與sbin文件夾因爲與系統合併,因此無需載入環境變量
遇到錯誤文章最後有解答
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
七、啓動守護進程(server,agent)
在服務器端執行啓動zabbix_server
# zabbix_server
server啓動port爲10051
在所有被監控的機器上執行zabbix_agentd 。
# zabbix_agentd
agentd啓動port爲10050
注意若server打開iptables服務,則需加入該兩個port通行。
# 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
--------------
注:假設以前編譯時本身定義了zabbix的路徑,需要找到例如如下行
DAEMON=/usr/local/sbin/zabbix_server
將後面的參數改爲你本身定義的路徑,本篇文檔使用默認路徑,這裏不需要改動
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
從新啓動服務:
# service zabbix_server restart
------------------------------------------------------------------------------
注: 啓動zabbix_server假設報例如如下錯誤
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
需要將mysql lib庫增長系統庫
# locate libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18.1.0
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
# ldconfig
# service zabbix_server restart
--------------------------------------------------------------
# service zabbix_agentd restart
8.安裝zabbix web界面(server)
複製ZABBIX PHP源碼文件
zabbix的服務端程序是用php寫的。所以需要一個支持LAMP架構的server平臺
現在將ZABBIX安裝文件夾下 frontends/php 如下的php源碼文件複製到webserverhtml文件文件夾如下。
這裏建議用子文件夾替換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
step 5
檢查一下設置狀況。
step 6
下載配置文件,並把他放置在/usr/local/apache2/htdocs/zabbix/conf/ 文件夾下
step 8
zabbix前端已經安裝就緒。默認的username是Admin。password是zabbix。
注:例如如下報錯是因爲zabbix數據未導入MYSQL數據庫:
手動加入主機
大功告成。
。。
注:
1.顯示中文簡體界面
點擊:右上角Profile
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
安裝zabbixclient:
# 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 安裝client
-s 啓動client
-x 中止client
-d 卸載client
如圖:
在服務端加入client主機監控同上。。
---------------大功告成-----------------
zabbix在configure時候遇到的問題(CentOS)爲你解答:
在CentOS系統中。安裝zabbix進行configure時會遇到下面4個主要問題
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
1 configure: error: MySQL library not found
the problem is not installed mysql-devel
- #yum install mysql-devel
2 configure: error: Jabber library not found
the problem is not installed jabber lib
- #wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
下載完畢後解壓、配置、安裝:
- tar zxvf iksemel-1.4.tar.gz
- cd iksemel-1.4
- configure
- make
- make install
以後對zabbix進行configure仍是會遇到這個問題。那麼將jabber文件夾指定就能夠:#./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber=/usr/local/ --with-libcurl
3 configure: error: Not found curl Library
- #yum install curl-devel (此項未經測試)
4 configure: error : Not found NET-SNMP library
- yum install net-snmp-devel
看完上方四點不在一塊兒也遇到了一樣的問題,而後按上解決問題的方法!