1、Zabbix簡介:php
最近研究了下比較火的一個國外開源網絡監控系統ZABBIX,它的界面簡潔,後臺配置邏輯分類清晰,易於配置上手。html
以前有玩過cacti和nagios,算是一個你們耳熟能詳的業內經常使用的的網管互補組合,但感受前者因爲調用snmp協議,致使有時候在網絡不太穩定時會有數據丟失狀況,後者nagios雖然不依賴於SNMP,但客戶端的複雜的安裝,初始配置以及須要讀懂插件語法致使會讓不少初學者望而卻步。前端
zabbix不只吸收了二者的製圖和動態監測的優勢,並且不少插件以及經常使用腳本模板都是系統自帶,最重要的配置相對於前二者簡潔了不少,因此省去了不少學習成本,加之該監控系統是利用PHP語言寫的,系統我的定製就無需使用者修改底層代碼,而能夠直接在WEB界面去按照本身的偏好設置,支持字體修改以及簡體中文,強烈推薦你們在線上使用這套網管平臺mysql
zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。linux
zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供柔軟的通知機制以讓系統管理員快速定位/解決存在的各類問題。ios
zabbix由2部分構成,zabbix server與可選組件zabbix agent。c++
zabbix server能夠經過SNMP、zabbix agent、ping、端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux, Solaris,HP-UX, AIX, Free BSD, Open BSD, OS X等平臺上。web
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)等系統之上。sql
zabbix server能夠單獨監視遠程服務器的服務狀態;同時也能夠與zabbixagent配合,能夠輪詢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
——————————————————————————————
2、安裝LAMP環境
1.安裝Apahce, PHP, MySQL以及php鏈接mysql庫組件。
#yum -y install httpd php mysql mysql-server php-mysql
2. 安裝apache擴展
#yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
讓apache更好的支持其餘的軟件。
3. 安裝php的擴展
#yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath
apache自己並不支持php文件,要安裝對應的php軟件,而後進行http.conf配置;讓apache能解析.php文件。
4. 安裝MySQL的擴展
#yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
更好的實現mysql的功能。
3、zabbix(server,agent)配置:
server: 192.168.137.185
agent: 192.168.137.188
說明一下,實際上是服務端安裝zabbix_server,zabbix_agentd兩個服務,客戶端只需安裝zabbix_agentd一個服務,監控原理其實就是zabbix_agentd服務將從系統中獲取的相關數據傳送給zabbix_server服務,而後zabbix_server服務將數據以PHP頁面顯示出來,很好理解。
(server)表示僅服務端配置
(agent)表示僅客戶端配置
(server,agent)表示客戶端與服務端都需配置
1.下載zabbix(server,agent)
下載網站:http://sourceforge.net/projects/zabbix/files或在官網:http://www.zabbix.com/download.php
注:這裏下載的是官方2.08的服務端與客戶端的穩定整合編譯包,因此後面編譯的時候注意,以--enable-server --enable-agent參數編譯的爲服務器端,以--enable-agent參數編譯的爲客戶端。
官方提供的另一種下載方式是服務端與客戶端單獨區分的編譯包,編譯方法與本博的方法不一樣,這裏請注意區分。
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.8/zabbix-2.0.8.tar.gz/download
2.安裝zabbix所需的組件(server,agent)
yum -y install curl libcurl-develnet-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql mysql-devel
yum install -y gcc gcc++ make
3.建立用戶帳號(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
4.建立zabbix數據庫並導入zabbix數據庫數據(server)
啓動MySQL數據庫:
#service mysqld start
修改MySQL root用戶密碼(默認密碼爲空):
# mysqladmin –u root –p password 123456
登陸數據庫:
# mysql -u root -p123456
建立Zabbix數據庫:
mysql> create database zabbix;
mysql> grant all on zabbix.* tozabbix@localhost identified by '123456';
mysql> flush privileges;
導入數據庫sql腳本:
# tar zxvf zabbix-2.0.8.tar.gz
# cd zabbix-2.0.8
在解壓的zabbix目錄下,將database/mysql目錄下三個sql文件導入到zabbix數據庫裏。(下面用的是zabbix用戶來導入文件,這個用戶在數據庫是默認存在的)
# mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix <database/mysql/p_w_picpaths.sql
# mysql -uzabbix -p123456 zabbix <database/mysql/data.sql
5.編譯安裝(server,agent)
server: (192.168.137.185)服務端
# cd zabbix-2.0.8
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make && make install
agent: (192.168.137.188)客戶端
# ./configure --prefix=/usr/local/agent --enable-agent
# make && make install
編譯時加 --prefix=/usr/local/zabbix 參數,則zabbix配置文件默認在/usr/local/zabbix/etc目錄下。(若編譯時沒有指定路徑,則zabbix配置文件使用的默認路徑,在/usr/local/etc/下)
6.編輯配置文件(server,agent)
# cd /usr/local/zabbix/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.137.185)
# vi /usr/local/zabbix/etc/zabbix_server.conf
修改以下內容並刪除其餘未修改參數條目:
---------------------------------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
---------------------------------------
# vi /usr/local/zabbix/etc/zabbix_agentd.conf
修改以下內容並刪除其餘未修改參數條目:
---------------------------------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,192.168.137.185
UnsafeUserParameters=1
---------------------------------------
agent: (192.168.137.188)
# vi /usr/local/zabbix/etc/zabbix_agentd.conf
修改以下內容並刪除其餘未修改參數條目:
---------------------------------------
LogFile=/var/log/zabbix_agentd.log
Server=192.168.137.185
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/sbin目錄下
# cd /usr/local/zabbix/sbin //在zabbix編譯的路徑的sbin目錄下啓動服務
[root@localhost zabbix]# ls
bin etc sbin share
★ 在服務器端運行啓動zabbix_server
# zabbix_server start|stop
server啓動端口爲10051
★ 在全部被監控的機器上運行zabbix_agentd 。
# zabbix_agentd start|stop
agentd啓動端口爲10050
注意若服務器打開iptables服務,則需添加該兩個端口通行。
# iptables -A INPUT -p tcp --dport10050 -j ACCEPT
# iptables -A INPUT -p tcp --dport10051 -j ACCEPT
配置開機啓動腳本:
# cd zabbix-2.0.8
# cp misc/init.d/tru64/zabbix_server /etc/init.d/
# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
# 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
建立軟連接
ln -s /usr/local/zabbix/sbin/zabbix_server/usr/local/sbin/
ln -s /usr/local/zabbix/sbin/zabbix_agentd/usr/local/sbin/
重啓服務:
# 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文件拷貝到該子目錄裏面,執行下面的命令:
拷貝zabbix安裝目錄下"frontends/php"下面的php源代碼文件拷貝到web服務器html文件目錄下面
#mkdir /var/www/html/zabbix //在網頁的根目錄建立zabbix目錄
#cd zabbix-2.0.8
# cd frontends/
#cp -r php/* /var/www/html/zabbix/
4、安裝前端
step 1
在你的瀏覽器中,輸入url:http://192.168.137.185/zabbix,你將看到前端安裝嚮導的第一個畫面。
step 2
確保全部依賴的軟件都正確安裝。
查看到幾處不符合要求
需修改該PHP文件配置文件參數:
# vi /etc/php.ini
查找以下參數並修改成:
----------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----------------
重啓apache服務
# service httpd restart
刷新頁面,其中Step2 Check of pre-requisites 必須所有項目OK後才能繼續配置:
step 3
輸入以前在MYSQL後臺設置的zabbix數據庫信息(/usr/local/zabbix/etc/zabbix_server.conf):
DBName=zabbix
DBUser=zabbix
step 4
輸入zabbix服務器端的詳細信息
step 5
檢查一下設置狀況。
step 6
下載配置文件,並把他放置在/var/www/html/zabbix/conf/ 目錄下
將下載好的zabbix.conf.php文件放到var/www/html/zabbix/conf目錄下後,點一下」Retry」按鈕就能夠了
step 8
zabbix前端已經安裝就緒,默認的用戶名是Admin,密碼是zabbix。
安裝完成。。。
注:
1.顯示簡體中文界面
點擊:右上角Profile
按照如圖選擇Chinese(zh_CN),保存: