*******需要配置網易YUM源來安裝相關依賴包: [local_yum] name=local_yum baseurl=http://mirrors.163.com/centos/6/os/x86_64/ enabled=1 gpgcheck=0 1》Zabbix介紹: zabbix是一個國外的 ...
*******需要配置網易YUM源來安裝相關依賴包:
[local_yum] name=local_yum
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enabled=1
gpgcheck=0
1》Zabbix介紹:
zabbix是一個國外的開源網路監控系統,後臺配置邏輯分類清晰,容易配置上手,我們都知道cacti和nagios,是運維圈內常用的監控和流量互補工具,那麼由於cacti依 賴於snmp協議,導致有網路波動的時候部分數據丟失,nagios雖然不依賴snmp,但是初始配置及需要讀懂插件的語法,導致很多初學者望而卻步,那麼zabbix集合了cacti以 及Nagios 兩者的製圖和動態監控的優點,而且大部分的插件以及常用的模板都是系統自帶的,最重要的是配置和功能分類清晰明瞭,省出很多學習的時間的,而且可以根據個 人愛好定義不同的語言支持;
1>特點
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現伺服器與網路設備
- 分散式監視以及WEB集中管理功能
- 可以無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
2>在被監控端定義KEY和腳本
# 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) 選擇告警媒介,添加->然後添加收件人,
測試、在QQ郵箱裡面,增加白名單
將[email protected]增加到白名單,然後停止一個服務,開始測試,可以將收件人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:[email protected];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為內容,否則簡訊將只收到一個告警頭部;