*******須要配置網易YUM源來安裝相關依賴包: php
name=local_yum
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enabled=1
gpgcheck=0html
1》Zabbix介紹: java
zabbix是一個國外的開源網絡監控系統,後臺配置邏輯分類清晰,容易配置上手,咱們都知道cacti和nagios,是運維圈內經常使用的監控和流量互補工具,那麼因爲cacti依 賴於snmp協議,致使有網絡波動的時候部分數據丟失,nagios雖然不依賴snmp,可是初始配置及須要讀懂插件的語法,致使不少初學者望而卻步,那麼zabbix集合了cacti以 及Nagios 二者的製圖和動態監控的優勢,並且大部分的插件以及經常使用的模板都是系統自帶的,最重要的是配置和功能分類清晰明瞭,省出不少學習的時間的,並且能夠根據個 人愛好定義不一樣的語言支持;mysql
1>特色 linux
- 安裝與配置簡單,學習成本低ios
- 支持多語言(包括中文)sql
- 免費開源shell
- 自動發現服務器與網絡設備數據庫
- 分佈式監視以及WEB集中管理功能apache
- 能夠無agent監視
- 用戶安全認證和柔軟的受權方式
- 經過WEB界面設置或查看監視結果
- email等通知功能等等
2>功能:
- CPU負荷
- 內存使用
- 磁盤使用
- 網絡情況
- 端口監視
- 日誌監視
3>工做原理與架構:
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等系統之上;-
Server:指安裝zabbix服務的服務器(如下簡稱服務器端),是最重要的部份,主要安裝在linux系統上(支持多種操做系統),採用mysql存儲監.控數據並使用apache+php 的方式呈現;
Agent:指安裝在被監.控設備上的zabbix代理(如下簡稱代理),被監.控設備上的數據由代理收集後統一上傳到服務器端由服務器端收集、整理並呈現;
SNMP:也是agent的一種,指支持SNMP協議的設備(也能夠是服務器),經過設定SNMP的參數將相關監.控數據傳送至服務器端(大部份的交換機、防火牆等網絡設備 都支持SNMP協議);
IPMI:Agent的另外一種方式,主要應用於設備的物理性能監.控,例如設備的溫度、風扇的轉速等;
Zabbix體系結構圖:
2》前期準備:
1>安裝軟件:
1)打開http://www.zabbix.com/download.php下載statble穩定源碼包(用於安裝Zabbix Server)
2)找到和2.2對應的Agen包,而且下載(用戶被監控端安裝),選擇內核版本爲2.6 架構爲adm X86_64位安裝包;
2>安裝依賴包
# yum -y install make mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
# useraddzabbix
3>啓動Mysql
# /etc/init.d/mysql start
# mysqladmin–u root –p password ‘123456’
# mysql–uroot–p
4>建立zabbix數據庫
Mysql> create database zabbix character set utf8;
Mysql> grant all on zabbix.* TO zabbix@'localhost' identified by 'zabbixpass';
Mysql> flush privileges;
5>導入zabbix數據
# tar -xvf zabbix-2.2.2.tar.gz
# cd zabbix-2.2.2/database/mysql
# mysql -uroot -p123456 -h localhostzabbix<schema.sql
# mysql -uroot -p123456 -h localhostzabbix<images.sql
# mysql -uroot -p123456 -h localhostzabbix<data.sql
6>調整服務器時間
# date -s "2014-3-11 11:22:35"若是時間正確的話,這一步直接跳過;
3》Zabbix服務器安裝部署
1>安裝Zabbix
#cd zabbix-2.2.2
# ./configure --enable-java--with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
# make&&mamke install
2>增長端口
#vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
3>修改apache配置文件
# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.varindex.php
4>修改zabbix配置文件
# vim/usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix鏈接數據庫的帳號,與Mysql受權帳號對應
DBPassword=zabbixpass鏈接數據庫的密碼,與Mysql受權帳號的密碼對應
5>修改服務啓動文件
回到編譯安裝目錄
# cd zabbix-2.2.2/misc/init.d/fedora/core5
# cp zabbix_* /etc/init.d/
# chmod 700 /etc/init.d/zabbix_*
# vim /etc/init.d/zabbix_server
安裝路徑修改成
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
# vim /etc/init.d/zabbix_agentd
安裝路徑修改成
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
6>啓動服務並設置開機啓動
# /etc/init.d/zabbix_server start
# /etc/init.d/zabbix_agentd start
# chkconfigzabbix_server on
# chkconfigzabbix_agentd on
7>修改php相關參數
# vim /etc/php.ini 找到以下幾項,改爲下面的值,前面有;號的要刪掉
max_execution_time = 300
max_input_time = 300
date.timezone = PRC
post_max_size = 32M
8>啓動apache
# /etc/init.d/httpd restart
# cd zabbix-2.2.2/frontends
# cp -rf php /var/www/html/zabbix
# chown -R zabbix:zabbix /var/www/html/zabbix
9>登錄WEB進行配置Zabbix
(1)出現Welcome to Zabbix 2.2 Next下一步
(2)Check of pre-requisties檢查配置環境是否OK,Next下一步
(3)配置Configure DB connetcion配置DB,主要此處和受權時要同樣
(4)Zabbix服務器地址及端口和名稱
(5) Pre-Installation summary 信息確認
(6)zabbix會根據5步的信息生成一個zabbix.conf.php配置文件,咱們須要手工把這個配置文件放入apache的默認WEB目錄/var/www/html/zabbix/conf
(7)Zabbix配置完成
默認用戶admin 密碼爲:zabbix
4》Linux被監控端部署
1>建立用戶
# groupadd zabbix
# useradd –g zabbix zabbix –s /sbin/nologin
2>解壓Agent包
zabbix_agents_2.2.1.linux2_6.amd64.tar.gz都是官方已經編譯好的。直接解壓到目錄就好了。
# mkdir /usr/loca/zabbix
# tar -xvf zabbix_agents_2.2.1.linux2_6.amd64.tar.gz -C /usr/local/zabbix/
# chown–R zabbix:zabbix /usr/local/zabbix
3>配置agent文件
只要這4個參數。其它的所有註釋掉
# vim /usr/local/zabbix/conf/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log #日誌文件
SourceIP=127.0.0.1 #agen本機IP
Server=192.168.100.214 #zabbix_server IP地址
ListenPort=10050 #agent 監聽端口
Hostname=DB206 #本機hostname
#ServerActive=127.0.0.1註釋掉
4>啓動服務
# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf
# cat/tmp/zabbix_agentd.log
# echo 「/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf」>> /etc/rc.d/rc.local
# ps–ef | grepzabbix
5》Windows被監控端部署
1>下載Agent安裝包
http://www.zabbix.com/download.php
2>解壓配置
(1)在C:\Program Files\下建立zabbix文件夾
(2)解壓到 C:\Program Files\zabbix下,根據操做系統刪除不對應的目錄,若是是win64的系統就把win32目錄刪除掉。只保留win64 ,若是是32位的那麼就刪除 掉win64目錄,
(3)並在該目錄下建立一個zabbix_agentd.conf文件,內容爲
LogFile=C:\Program Files\zabbix\zabbix_agentd.log #日誌文件
SourceIP=127.0.0.1 #agen本機IP
Server=192.168.100.214 #zabbix_server IP地址
ListenPort=10050 #agent 監聽端口
Hostname=testwindows #本機hostname
UnsafeUserParameters=1 #開啓定義KEY
3>安裝並啓動服務
(1)開始運行輸入CMD
(2)安裝客戶端
C:\>cd C:\Program Files\zabbix\bin\win32
C:\Program Files\zabbix\bin\win32>zabbix_agentd.exe -c "c:\Program Files\zabbix
conf\zabbix_agentd.conf" -i
zabbix_agentd.exe [2024]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [2024]: event source [Zabbix Agent] installed successfully
(3)啓動服務
C:\Program Files\zabbix\bin\win32>zabbix_agentd.exe -c "c:\Program Files
conf\zabbix_agentd.conf" -s
zabbix_agentd.exe [2044]: service [Zabbix Agent] started successfully
zabbix_agentd.exe參數含義:
-c 制定配置文件所在位置
-i 安裝客戶端
-s 啓動客戶端
-x 中止客戶端
-d 卸載客戶端
4>檢查服務
6》Zabbix默認模板應用
1>修改默認模板
(1)選擇組態à模板àTemplate OS Linux 模板(系統自帶)
(2) Template OS Linux說明
(3)CPU項目分解
(4)filesystem文件系統分解
(5)General基本信息
(6)Memory內存信息
(7)Network interfaces網絡接口
(8)OS 項目信息
(9)Performance 項目信息
由於CPU和Performance都包含這些項目,在CPU裏面已經有應用全部這裏所有中止掉;
(10)Processes 進程信息
OK。模板分析完成,咱們接下來定義主機;
2>建立一個主機
(1)選擇-->組態->主機->建立主機
3>爲主機添加模板
4>查看監控後的事實數據
7》Zabbix定義模板應用
說明:根據企業的業務內容來自定義合適的模板,全部主機均可以使用這個定義模板,這樣方便管理。
1>首先建立我的模板
這裏名稱能夠隨意。我這裏定義爲:alvin_check_all
# mkdir /usr/local/zabbix/scripts
# vim /usr/local/zabbix/scripts/httpd.sh 編輯一個檢測httpd狀態的腳本,而且返回值爲1
#!/bin/bash
aa=`/etc/init.d/httpd status |grep "pid" |wc -l` #若是htttp服務正常這個值爲1,不爲1表示錯誤
echo $aa
# chownzabbix:zabbix–R /usr/local/zabbix/scripts
3>在被監控端開始定義KEY的使用
# cd /usr/local/zabbix/conf/
# vimzabbix_agentd.conf
UnsafeUserParameters=1 #開啓定義KEY的參數
UserParameter=check.http.serivces,/usr/local/zabbix/scripts/httpd.sh
#key值爲check.http. services應用腳本爲:/usr/local/zabbix/scripts/httpd.sh
#語法爲:UserParameter=KEY, <腳本/命令>腳本或者命令均可以,以上應用是腳本
4>重啓被監控端的agent服務
# ps -ef | grepzabbix |grep -v "grep " |xargs kill -9
# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf
5>回到主Zabbix服務器命令測試
# cd /usr/local/zabbix/bin/
# ./zabbix_get -s 192.168.100.206 -p 10050 -k "check.http.serivces"查看返回值是否爲腳本的正確值。
若是返回值不對,在agetn被監控端,切換zabbix用戶嘗試執行這個腳本,看看到底哪裏出問題了。
好比:su - zabbix
bbix@slave scripts]$ /etc/init.d/httpd status
httpd已死,可是subsys被鎖
解決:在監控端agent,將apache組加入到zabbix
usermod–G apache zabbix
6>回WEB界面本身定義模板添加應用集
(1)建立一個名爲httpd的應用集
7>爲應用集添加一個監控項目
8>爲項目添加一個觸發報警器
(1)開始建立
(2)定義項目值
(3)保存退出
9>爲主機DB206增長一個自定義模板
(1)添加一個自定義模板
(2)驗證自定義模板是否成功
8》Zabbix定義郵件報警通知
1>修改zabbix server hostname
聲明:在配置zabbix的Email報警以前,須要將sendmail使用的域名進行相應的修改,系統默認爲localhost.localdomain,其實不改也行,不過有些pop3服務器會過濾掉來 自localhost.localdomain的郵件,致使郵件不能正常查收,因此,最好是改一下 hostname,確保郵件發送的成功率;
# vim /etc/hosts
127.0.0.1 zabbix.alvin.comlocalhost.localdomainlocalhost
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zabbix.alvin.com
# hostname zabbix.alvin.com
# exit 從新登陸終端。生效
2>安裝sendmail
# yum -y install sendmail
3>修改mail access
# vim /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1
Connect:zabbix.alvin.com RELAY
4>修改maill hostname
# vim /etc/mail/local-host-names
zabbix.alvin.com
5>重啓動sendmail
# /etc/init.d/sendmail
6>測試smtp域名是否爲zabbix.alvin.com
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 zabbix.alvin.com ESMTP Postfix
7>建立一個告警媒介
(1)建立一個告警媒介類型
(2)設置詳細內容
8>建立一個告警動做
(1)組態->動做->建立一個動做
(2)設置動做
(3)設置操做
9>修改一個用戶組
(1)管理->用戶->選擇組->點擊對應的用戶
(2)點擊Admin
(3) 選擇告警媒介,添加->而後添加收件人,
將zabbix@zabbix.alvin.com增長到白名單,而後中止一個服務,開始測試,能夠將收件人QQ郵箱改爲139郵箱。能夠實現短信提示+郵件報警;
在觸發器裏面若是不勾選次項,那麼系統在遇到故障的時候發一次郵件,若是勾選上了將根據觸發器的更新時間來不停地發送錯誤郵件或者短信
# yum –y install mail 安裝mail客戶端
# /etc/init.d/postfix stop關閉postfix
# /etc/init.d/sendmail restart
# cat /var/log /maillog郵件日誌
9》Zabbix定義短信報警通知
聲明:fetion針對對6.0以上的系統支持很很差,建議監控系統使用Centos 5.5 或者centos 5.4
1>飛信安裝
http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1&page=1下載機器人和庫文件
# unzip fetion.zip
# mkdir /usr/local/fetion
# cpfetion /usr/local/fetion
# mv lib /usr/local/fetion
# cd /usr/local/fetion
# ls
# export LD_LIBRARY_PATH=/usr/local/fetion/lib
./fetion --mobile=13692xxx096 --pwd=xxxxxxx --to=1369xxxx6096 --msg-utf8=測試
這個會產生一個手機名的驗證碼圖片,打開另一個終端;
這個136ddddd.jpg 下載下來。而後查看驗證碼多少。輸入驗證碼這個第一次須要輸入。之後就不要了
2>自定義飛信報警腳本
# mkdir /usr/local/sms
# vim /usr/loca/sms/fetionsms.sh
#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/fetion/lib
aa=$@
/usr/local/fetion/fetion --mobile=136xxxxxx096 --pwd=zmypaswd --to=$1 --msg-utf8="$aa"
# chwon–R zabbix:zabbix /usr/local/sms/
測試:
# cd /usr/local/sms/
# ./fetionsms.sh 1369xxxx096 test test2 test3 test 4
SIP-C/4.0 280 Send SMS OK
T: sip:900869406@fetion.com.cn;p=2823
I: 2
Q: 1 M
RQ: 24808655073
L: 112
XI: 8f64794cbd524ebabaffc980e9a38d56
3>建立一個告警媒介
4>編輯配置文件定義腳本路徑
# vim /usr/local/zabbix/etc/zabbix_server.conf
找到AlertScriptsPath參數並修改爲AlertScriptsPath=/usr/local/sms
# /etc/init.d/zabbix_server重啓服務
5>建立一個告警動做
(1)設置動做
(2)設置操做
6>修改一個用戶組
(1)管理->用戶->選擇組->點擊對應的用戶
(2)點擊Admin
(3)編輯媒介,選擇上面定義的媒介類型Fetion,而後收件人寫入XXXX手機號碼
中止一個服務,開始測試。在觸發器裏面勾選這個項目,根據觸發更新時間發送屢次信息,不然之發送一次
7>小技巧
(1)若是短信和郵件一塊兒使用,此動做須要兩個動做步驟,一個短信,一個郵件,不然發送短信將失敗;
(2)封裝的py腳本或者shell腳本,傳遞參數有規定,參數1爲手機號碼,參數2爲空,參數3爲內容,不然短信將只收到一個告警頭部;