一、zabbix簡介
zabbix(音同 z?bix)是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡監(jiān)視功能的企業(yè)級的開源解決方案。
zabbix能監(jiān)視各種網(wǎng)絡參數(shù),保證服務器系統(tǒng)的安全運營;并提供靈活的通知機制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。
zabbix由2部分構(gòu)成,zabbix server與可選組件zabbix agent。
zabbix server可以通過SNMP,zabbix agent,ping,端口監(jiān)視等方法提供對遠程服務器/網(wǎng)絡狀態(tài)的監(jiān)視,數(shù)據(jù)收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,F(xiàn)ree BSD,Open BSD,OS X等平臺上。
二、zabbix安裝使用
zabbix agent需要安裝在被監(jiān)視的目標服務器上,它主要完成對硬件信息或與操作系統(tǒng)有關的內(nèi)存,CPU等信息的收集。zabbix agent可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系統(tǒng)之上。
zabbix server可以單獨監(jiān)視遠程服務器的服務狀態(tài);同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監(jiān)視數(shù)據(jù)(agent方式),同時還可被動接收zabbix agent發(fā)送的數(shù)據(jù)(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),可以與SNMP軟件(例如:net-snmp)等配合使用。
2.1 zabbix安裝
2.1.1 zabbix WEB環(huán)境搭建
zabbix的安裝需要LAMP或者LNMP環(huán)境。
需要其它的軟件包
yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm
2.1.2 zabbix 數(shù)據(jù)庫設置
zabbix數(shù)據(jù)庫可以和zabbix服務器分離,采用用專門的mysql服務器存儲數(shù)據(jù),此時要給zabbix數(shù)據(jù)庫受相應的權(quán)限。
grant all privileges on zabbix.* to zabbix_user@'ip' identified by '123456';
注:ip為zabbix服務器的IP地址。
關于數(shù)據(jù)庫的安裝,可以查看Mysql安裝,我習慣使用二進制包。
啟動數(shù)據(jù)庫
/usr/local/mysql/bin/mysqld_safe --user=mysql &
登錄數(shù)據(jù)庫,創(chuàng)建帳號和設置權(quán)限:
- mysql> use mysql;
- mysql>create database zabbix character set utf8;
- mysql>grant all privileges on zabbix.* to zabbix_user@'192.168.10.197' identified by '123456';
2.1.3安裝zabbix服務
增加zabbix用戶和組
#groupadd zabbix
#useradd -g zabbix -m zabbix
官網(wǎng)下載解壓軟件包:點擊下載
#wget http://fossies.org/unix/misc/zabbix-2.0.3.tar.gz
# tar -zxvf zabbix-2.0.3.tar.gz
#cd zabbix-2.203
導入數(shù)據(jù)庫表
#cd zabbix-2.0.3/database/mysql
#mysql -uroot -pmysql zabbix < mysql.sql
#mysql -uroot -pmysql zabbix < images.sql
#mysql -uroot -pmysql zabbix < schema.sql
編譯安裝zabbix
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
編譯報錯checking for main in -lmysqlclient ... no
yum 安裝mysql-devel即可
#make
#make install
添加服務端口
1. vim /etc/services
2. zabbix-agent 10050/tcp # Zabbix Agent
3. zabbix-agent 10050/udp # Zabbix Agent
4. zabbix-trapper 10051/tcp # Zabbix Trapper
5. zabbix-trapper 10051/udp # Zabbix Trapper
添加配置文件
# mkdir -p /etc/zabbix
# cp -r zabbix-2.203/conf/* /etc/zabbix/
# chown -R zabbix:zabbix /etc/zabbix
修改server配置文件
添加zabbix數(shù)據(jù)庫密碼
vim /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=123456 #指定zabbix數(shù)據(jù)庫密碼
ListenIP=192.168.10.197 #服務器IP地址
修改Agentd配置文件
更改HOSTNAME為本機的hostname
vim /etc/zabbix/zabbix_agentd.conf
1. PidFile=/tmp/zabbix_agentd.pid #進程PID
2. LogFile=/tmp/zabbix_agentd.log #日志保存位置
3. EnableRemoteCommands=1 #允許執(zhí)行遠程命令
4. Server=192.168.10.197 #agent端的ip
5. Hostname=client1 #必須與zabbix創(chuàng)建的host name相同
設置hostname

添加web前段php文件
# cd zabbix-2.203/frontends/
# cp -rf php /home/httpd/zabbix #虛擬主機目錄
# chown -R zabbix:zabbix zabbix
web前端安裝配置
修改PHP相關參數(shù)
vim php.ini
1. max_execution_time = 300
2. max_input_time = 300
3. memory_limit = 128M
4. post_max_size = 32M
5. date.timezone = Asia/Shanghai
6. mbstring.func_overload=2
PHP還必須支持一下模塊,在php源碼包直接編譯安裝。具體模塊需求在安裝時會提示。
bcmath.so、gettext.so
在客戶端瀏覽器上面訪問zabbix,開始WEB的前端配置,http://ZabbixIP/zabbix ,按提示點擊下一步
Step1:下一步。
Step2:如果全部OK的話才能進行下一步的安裝,如果有錯誤請返回到server端檢查相關的軟件包是否安裝。
Step3:需要輸入mysql數(shù)據(jù)庫帳號密碼,如果數(shù)據(jù)庫不在zabbix服務器上面,在Host里面添加數(shù)據(jù)庫服務器的地址,并且要用grant命令給數(shù)據(jù)庫授權(quán)。
Step4:輸入服務器端 host name or host IP addres;
最后會自動寫入配置文件:zabbix.conf.php,配置完成后出現(xiàn)登陸界面,默認的用戶名為:admin,密碼為:zabbix。
啟動zabbix服務
在zabbix安裝目錄下面可以直接啟動
#/usr/local/zabbix/sbin/zabbix_server start
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7140/zabbix_agentd
設置開機自啟動
vim /etc/rc.d/rc.local
最后添加下面兩行
1. /usr/local/zabbix/sbin/zabbix_server start
2. /usr/local/zabbix/sbin/zabbix_agentd start
至此,zabbix server端的安裝完畢,我們可以通過瀏覽器來訪問。
接下來會介紹關于客戶端監(jiān)控的使用,以及監(jiān)控模版的新建,自定義監(jiān)控服務等。
三、搭建Zabbix監(jiān)控環(huán)境
在一個數(shù)據(jù)中心里,了解某個主機正在發(fā)生什么是非常重要的一件事。適當?shù)乇O(jiān)控一些網(wǎng)絡節(jié)點能夠幫助防止發(fā)生網(wǎng)絡功能問題。在這一系列的文章中,你能夠?qū)W到如何用Zabbix來實現(xiàn)。
Zabbix是一個開源網(wǎng)絡監(jiān)控工具,并采用一臺基于Linux為中心的Zabbix服務器。服務器與那些本機代理相互聯(lián)系,目前所適用的操作系統(tǒng)包括Linux、 UNIX和Windows。如果沒有安裝代理的操作系統(tǒng),可采用通用的監(jiān)控協(xié)議如SNMP或IPMI。
使用Zabbix監(jiān)控工具有許多優(yōu)點。作為初學者,Zabbix能夠在特定預先定義的事件發(fā)生時發(fā)出告警和提醒。還提供圖像功能,幫助系統(tǒng)管理員對當前特殊節(jié)點和整個網(wǎng)絡有一個大致了解。
要想搭建一個Zabbix的工作環(huán)境,需要從服務器入手。與服務器通信,管理員需要使用一個Zabbix前端界面,與Zabbix服務器和數(shù)據(jù)庫進行通信。三個關鍵(界面、服務器和數(shù)據(jù)庫)可以安裝在同一臺服務器上,但是如果你擁有一個更大更復雜的環(huán)境,將它們安裝在不同的主機上也是一個選項。Zabbix服務器能夠直接監(jiān)控到同一網(wǎng)絡中的設備,如果其他網(wǎng)絡的設備也需要被監(jiān)控,那還需要一臺Zabbix代理服務器。
3.1 Zabbix安裝選項
安裝Zabbix有兩種方法:下載安裝包并把它安裝在你Zabbix的linux服務器主機上,或者使用包含一些Linux發(fā)行版的安裝包。使用發(fā)行版的安裝包使得安裝和更新Zabbix更方便,但是編譯你自己的Zabbix意味著需要針對每一個Linux發(fā)行版,包括最新和最棒的功能。
預先編譯的安裝包對某些Linux發(fā)行版還不支持,比如SUSE。如果你不想和那些底層的Linux系統(tǒng)打交道,F(xiàn)edora或者Ubuntu可能是你的最佳選擇。它們從安裝儲存庫開始就包含了Zabbix安裝包。編譯你自己的Zabbix同樣可行,但是那樣則需要更多的Linux技術(shù)知識。在本篇中,我們將使用預先編譯的Fedroa 17的安裝包來安裝Zabbix,完全免費。
3.2 安裝基礎包
確保你的Fedora Linux服務器至少有10GB的有效磁盤空間。在初期進行Zabbix安裝時并不需要,但是當Zabbix開始在一個大環(huán)境下產(chǎn)生數(shù)據(jù)時就會需要。
下一步,使用Yellow Dog更新修改(YUM)命令yum install zabbix zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql mysql zabbix-agent來安裝Zabbix和所有需要的組件。在安裝軟件之后,你需要開啟Zabbix服務并確保他們在你重啟服務器之后仍然開啟。要想完成這個,運行以下命令并重啟服務器:
systemctl enable mysqld.service
systemctl enable zabbix-server-mysql.service
systemctl enable httpd.service
在繼續(xù)之前,你需要創(chuàng)建一個MySQL數(shù)據(jù)庫。使用mysql -u root 作為Root用戶登錄。這樣就打開了一個mysql提示。鍵入以下命令來創(chuàng)建需要的數(shù)據(jù)庫:
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by ‘password';
mysql> quit
數(shù)據(jù)庫的默認名字是zabbix,管理員用戶名也是zabbix,密碼是password。現(xiàn)在你需要使用zabbix模式和一些初始數(shù)據(jù)來填充數(shù)據(jù)庫。要想這樣做,你可以使用默認的安裝在/usr/share/doc/zabbix-server-mysql-/create/schema下的SQL文件。從Linux的shell中使用以下mysql命令來導入文件:
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-/create/schema/mysql.sql
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-/create/data/data.sql
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-/create/data/images_mysql.sql
這些命令會將SQL文件導入MySQL數(shù)據(jù)庫中,使用用戶名“zabbix”。選項 –p 告訴mysql命令提示需要輸入密碼,接下去用戶zabbix告訴MySQL將所有數(shù)據(jù)添加至zabbix數(shù)據(jù)庫中。下一步,輸入的文件被特指使用輸入重定向(<),在文件名之后被用來當作輸入文件。
在你繼續(xù)下一步配置之前,確保Zabbix能夠連接到你剛剛創(chuàng)建的數(shù)據(jù)庫。想要這樣做,打開配置文件/etc/zabbix/zabbix_server.conf并確保以下內(nèi)容在其中。
DBHost=localhost
DBName=zabbix
DBPassword=password
重啟你的服務器并確保所有信息都顯示正確。在重啟之后,使用命令systemctl status zabbix-server.service。這會顯示所有已經(jīng)開啟的Zabbix進程。
3.3 與Web界面對連
一旦所有系統(tǒng)都已經(jīng)開啟,你可以打開一個瀏覽頁面至Zabbix Web前端http://yourzabbixserver/zabbix, 這里你可以配置你的Zabbix服務器。
在繼續(xù)之前,確保你滿足了最低系統(tǒng)要求。
第一個導入的屏幕是為了檢查先決條件。在許多情況下,你會發(fā)現(xiàn)系統(tǒng)分配使用的默認PHP設置是不完整的,所以記錄下有關的設置并打開/etc/php.ini來進行調(diào)整。在完成調(diào)整之后,重啟Fedora 17的Apache服務,可以輸入systemctl restart httpd.service命令來完成。
3.4 配置數(shù)據(jù)庫連接
在下一個窗口中,配置Zabbix和數(shù)據(jù)庫之間的連接。在這個屏幕里,默認用戶名為root;確保將用戶名改為zabbix。
在建立數(shù)據(jù)庫連接之后,鍵入Zabbix服務器的網(wǎng)絡地址和你正使用的端口。如果Web前端正從服務器進程運行,指定Zabbix服務器所擁有的IP地址或者直接點擊"next"繼續(xù)。現(xiàn)在你會看到一個預安裝的摘要。確認各個參數(shù)都正確再結(jié)束整個安裝流程。一個進入Zabbix的登錄窗口就會打開,你可以使用默認的用戶Admin和密碼zabbix進行登錄?,F(xiàn)在你的zabbix環(huán)境已經(jīng)可以開始使用。
四、特點
4.1 zabbix的主要特點
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發(fā)現(xiàn)服務器與網(wǎng)絡設備
- 分布式監(jiān)視以及WEB集中管理功能
- 可以無agent監(jiān)視
- 用戶安全認證和柔軟的授權(quán)方式
- 通過WEB界面設置或查看監(jiān)視結(jié)果
- email等通知功能
等等
4.2 Zabbix主要功能
- CPU負荷
- 內(nèi)存使用
-磁盤使用 - 網(wǎng)絡狀況
- 端口監(jiān)視
- 日志監(jiān)視。
五、Zabbix版本發(fā)布
2012年07月31日,ZABBIX 2.0.2 正式版發(fā)布。
2012年08月01日 ,ZABBIX 2.0.2 正式版發(fā)布,分布式系統(tǒng)監(jiān)控。
2012年08月09日,ZABBIX 1.8.15 RC1 發(fā)布,該版本修復很多 bug ,其中包括一個安全相關的問題。
2012年08月21日,ZABBIX 1.8.15 正式版發(fā)布,該版本包含很多 bug 修復,其中有一個是安全相關的。
2012年09月11日,ZABBIX 2.0.3 RC1 發(fā)布,該版本包含前端的一些改進,以及引入 flicker free screens。
2012年11月28日,ZABBIX 2.0.4 RC1 發(fā)布,企業(yè)級監(jiān)控系統(tǒng)。
2013年2月12日,ZABBIX 2.0.5 正式版發(fā)布,分布式系統(tǒng)監(jiān)控
2013年4月15日,ZABBIX2.0.6 RC1發(fā)布,分布式系統(tǒng)監(jiān)控。
2013年4月22日,ZABBIX2.0.6 正式版發(fā)布,企業(yè)級分布式監(jiān)控系統(tǒng)。
2016年2月16日,ZABBIX3.0.0 正式版發(fā)布,企業(yè)級分布式監(jiān)控系統(tǒng)。
2016年7月15日,ZABBIX3.0.4 RC1發(fā)布,企業(yè)級分布式監(jiān)控系統(tǒng)。