本文出自 “dongyahu_blog” 博客,請務必保留此出處http://www.dongyahui.cn
本人已操作完成。。操作過程 如有疑問或者錯誤無法解決,可留言本文,謝謝配合
一、 Zabbix簡介
Zabbix是一個企業級的開源分佈式監控解決方案,由一個國外的團隊持續維護更新,軟件可以自由下載使用,運作團隊靠提供收費的技術支持贏利。
Zabbix 1.8官方文檔:http://www.zabbix.com/documentation/1.8/start
Zabbix通過C/S模式採集數據,通過B/S模式在web端展示和配置。
被監控端:主機通過安裝agent方式採集數據,網絡設備通過SNMP方式採集數據
Server端:通過收集SNMP和agent發送的數據,寫入MySQL數據庫,再通過php+apache在web前端展示。
Zabbix運行條件:
Server:
Zabbix Server需運行在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬件要求低
Agent:
目前已有的agent基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows
SNMP:
支持各類常見的網絡設備
二. Zabbix功能
具備常見的商業監控軟件所具備的功能(主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪製)
支持自動發現網絡設備和服務器
支持分佈式,能集中展示、管理分佈式的監控點
擴展性強,server提供通用接口,可以自己開發完善各類監控
三、 優劣勢
優點:
開源,無軟件成本投入
Server對設備性能要求低(實際測試環境:虛擬機Redhat EL AS5,2GCPU 1G內存,監控5臺設備,CPU使用率基本保持在10%以下,內存剩餘400M以上)
支持設備多
支持分佈式集中管理
開放式接口,擴展性強
缺點:
全英文,界面不友好
無廠家支持,出現問題解決比較麻煩
需在被監控主機上安裝agent
部署安裝:
一、 服務端環境準備
Zabbix Server需要運行在CentOS、RedHat Linux、Debain等Linux系統上,這裏以RHEL AS5作爲部署環境。
Root用戶安裝必須的包,建議配置好yum,通過yum安裝下列包,解決包的依賴關係。
編譯環境安裝:
#yum -y install gcc openssl-devel zlib-devel pcre-devel libjpeg-devel libpng-devel libtool-ltdl-devel
#yum groupinstall "Development Tools" "Development Libraries" -y
LAMP環境
#yum install mysql-server httpd php
其他需要用到的包:
#yum install mysql-devel gcc net-snmp-devel libcurl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
下載最新的Zabbix安裝包(官網:http://www.zabbix.com)到本地,解壓
#tar zxvf zabbix-1.8.1.tar.gz
增加zabbix用戶和組
#groupadd zabbix
#useradd –g zabbix –m zabbix
一、 數據庫準備
啓動MySQL數據庫:
#service mysqld start
修改MySQL root用戶密碼(默認密碼爲空)
# mysqladmin -u root -p password redhat
輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改爲redhat。
測試能否正常登陸數據庫
#mysql –uroot –proot
創建Zabbix數據庫
Mysql> create database zabbix character set utf8;
導入數據庫sql腳本
#cd zabbix-1.8.1
# cat ./create/schema/mysql.sql |mysql -uroot -predhat zabbix
# cat ./create/data/data.sql |mysql -uroot -predhat zabbix
# cat ./create/data/p_w_picpaths_mysql.sql |mysql -uroot -predhat zabbix
編譯安裝
配置編譯,prefix是安裝後程序目錄
# ./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
# make install
配置文件及web前端文件修改
添加服務端口,添加後如下
# grep zabbix /etc/services
#vi /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
添加配置文件
# mkdir -p /etc/zabbix
# cp ./misc/conf/* /etc/zabbix
# chown -R zabbix:zabbix /etc/zabbix
修改Server配置文件
基本不用修改,用默認配置即可,只需修改一項DBPassword=密碼
# vi /etc/zabbix/zabbix_server.conf
修改Agentd配置文件,更改HOST NAME 爲本機的hostname就好了
#vi /etc/zabbix/zabbix_agentd.conf
添加web前端php文件
# cd frontends/
# cp -rf php /var/www/html/
# cd /var/www/html
# mv php zabbix
# chown -R zabbix:zabbix zabbix
一、 web前端安裝配置
修改php相關參數
# vi /etc/php.ini 找到如下幾項,改成下面的值,前面有;號的要刪掉
date.timezone = Asia/Shanghai
post_max_size = 32M
upload_max_filesize = 16M
max_execution_time = 600 ; Maximum execution time of each script, in seconds
max_input_time = 600 ; Maximum amount of time each script may spend parsing request data
memory_limit = 256M ; Maximum amount of memory a script may consume
重啓apache
#service httpd restart
在本地瀏覽器上訪問Zabbis Serve地址開始web前端配置,http://ServerIP/zabbix
按提示一步步next,其中Step 3 Check of pre-requisites 必須全部項目OK後才能繼續配置,如有提示fail,去server上檢查是否安裝這個包或配置是否按上述更改。
Step 4 填入Zabbix Server 登陸mysql的用戶和密碼
Step 7 按提示下載配置文件到Server的/var/www/html/zabbix/conf下,名字一定要是zabbix.conf.php
注: 此處需生成文件 zabbix.conf.php 拷貝至/var/www/html/zabbix/conf/
配置完成後,出現登陸界面,默認的用戶爲:admin,密碼爲:zabbix
PS:小技巧....ZABBIX支持中英文切換,選擇Chinese(CN)即可
啓動Server服務
安裝完成後的server程序在/usr/local/zabbix/sbin/目錄下,可以直接啓動
#/usr/local/zabbix/sbin/zabbix_server
爲了便於啓停Server,我們做一些小配置
複製控制程序
# cp ./misc/init.d/redhat/zabbix_* /etc/init.d/
修改配置目錄文件zabbix_server_ctl和 zabbix_agentd_ctl
/etc/init.d/zabbix_server_ctl
/etc/init.d/zabbix_agentd_ctl
兩個文件中的BASEDIR=改爲/usr/local/zabbix
# vi /etc/init.d/zabbix_server_ctl
修改其中ZABBIX_SUCKERD所在行:
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
修改後:
# base zabbix dir
BASEDIR=/usr/local/zabbix
# PID file
PIDFILE=/var/tmp/zabbix_server.pid
# binary file
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
# vi /etc/init.d/zabbix_agentd_ctl
修改其中ZABBIX_AGENTD所在行:
ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
修改後:
# base zabbix dir
BASEDIR=/usr/local/zabbix
# pid file (as of 1.0 beta 10)
PIDFILE=/var/tmp/zabbix_agentd.pid
# binary file
ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd
加入開機啓動
# echo '/etc/init.d/zabbix_server_ctl start &' >>/etc/rc
# echo '/etc/init.d/zabbix_agentd_ctl start &' >>/etc/rc
創建快鍵方式
# ln -s /etc/init.d/zabbix_server_ctl /usr/bin/zabbix_server_ctl
# ln -s /etc/init.d/zabbix_agentd_ctl /usr/bin/zabbix_agentd_ctl
啓動Server和Agentd(可以通過start stop restart來操作)
# zabbix_agentd_ctl start
# zabbix_server_ctl start
檢查啓動是否正常,查看進程是否起來,分server和agentd
#ps –ef|grep zabbix
如果進程沒起來,可以查看對應的日誌錯誤,默認在/tmp/zabbix-*.log
至此Zabbix Server的安裝已完成
在hosts上配置agent
Zabbix需要在被監控的host上安裝agent,在zabbix官網上下載相應平臺的agent包到各被監控端,按如下方式在被監控上運行agent
(注:官網上下載的agent包裏沒有運行agentd所必須的配置文件,可以從zabbix server上拷貝一份zabbix_agentd.conf,這個conf文件是所有平臺都通用的)
Linux、UX:
Linux、UX上的agent是編譯好了的,不用安裝
#cd /usr/local/zabbix
#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz
取一份server上的zabbix_agnetd.conf到本地,然後按說明修改,一般我們只需修改如下3個參數:
Hostname=本機名
Server=Zabbix Server IP
LogFile=本機agentd日誌保存文件
修改完成後,運行agentd
#/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &
#ps –ef|grep zabbix_agentd
如果進程沒起來,可查看agentd.log日誌來排查問題。
(注:啓動時建議用全路徑,否則可能會出錯)
加入開機運行
#echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &' >>/etc/rc
Windows:
Windows下解壓客戶端包到c:,
下載修改好的zabbix_agentd.conf文件也放到c:,
打開cmd命令行,執行
C:>zabbix_agentd –-install
安裝後會在系統服務裏添加一個zabbix_agentd服務,會自動開機運行
如果需要將客戶端和配置文件放在其他目錄,請執行
C:>DIR/zabbix_agentd –c DIR/zabbix_agentd.conf –-install
啓動agentd服務
C:>zabbix_agentd –-start
或是通過管理->服務找到zabbix_agentd來啓動
配置使用
通過本地瀏覽器訪問http://ServerIP/zabbix來開始配置和使用zabbix。
使用zabbix進行監控之前,要理解zabbix監控的流程。
一次完整的監控流程可以簡單描述爲:
Host Groups(設備組)->Hosts(設備)->Applications(監控項組)->Items(監控項)->Triggers(觸發器)->Actions(告警動作)->Medias(告警方式)->User Groups(用戶組)->Users(用戶)
一、 添加 Hosts
Host是Zabbix監控的基本載體,所有的監控項都是基於host的。
通過Configuration->Hosts->Create Host來創建監控設備
按提示填入Name、Groups、IP ,其他選項默認即可,Link Templates 處選擇一個模板,save即可成功添加設備。
(注:如果host上沒安裝agent,添加後的狀態會是unmonitor,會採集不到值,Zabbix自帶大量的設備監控模板,我們添加主機時通過link到這些模板,就可以快速添加主機的監控項和告警觸發條件。)
一類的hosts可以歸屬到同一個Host Group,便於分類管理同一類設備,在Configuration->Host Group->Create Host Group 可以添加設備組
二、 添加 Items
Item是監控項,是監控的基本元素,每一個監控項對應一個被監控端的採集值。
在Configuration->Hosts界面,我們能看到每個host所包含的items總數,點擊對應主機的items項,可以看到具體的每個item信息,這些items可以引用自templates,也可以自己創建。
通過點擊具體item名字可以修改已有監控項的屬性,點擊Satus的鏈接可以禁用/啓用這個監控項。(注:我們可以通過新建一個template,在template中禁用掉所有不需要用到的items,然後把同一類hosts link to這個template,就不用一臺臺主機去更改items)
新增item可以通過點擊右上角的create item來創建
按提示逐項填入相關信息即可,其中key是zabbix已經自帶的取值方法,Application類似於host groups,是item的組。(item key也可以自定義,後面會講到如何自定義監控項)
Zabbix自帶非常多的監控採集項及方法,基本能滿足當前所有的監控功能,這些都包含在item的 item key中了,更多的type和key的解釋請參考:
http://www.zabbix.com/documentation/1.8/manual/config/items
三.添加 Triggers
Trigger是觸發器,當Items採集值滿足triggers的觸發條件時,就會產生actions。
每一個trigger必須對應一個item,但一個item可以對應多個trigger。
同樣,通過點擊Configuration->Hosts->Triggers中某個trigger的名字,可以修改trigger的屬性。(注意:引用自template的trigger觸發值是不能單獨修改的,必須在template中修改,或是複製一個同樣的trigger再修改,然後禁用掉之前的)
新增trigger可以通過點擊右上角的create trigger來創建
Expression中選擇對應的item、觸發方式及觸發值,Severity是告警級別,根據trigger的嚴重性來選擇。
Zabbix 提供多種trigger觸發方式供選擇,常用的我們可以選擇last value </>/=/#/N(最近一次採集值),或是選擇maximal value for period of time (一段時間內的最大值),等等。可以根據實際需要來設定觸發方式。更多的解釋請參考:
http://www.zabbix.com/documentation/1.8/manual/config/triggers