一、Zabbix簡介
1.1 Zabbix簡介
Zabbix是一個企業級的開源分佈式監控解決方案,由一個國外的團隊持續維護更新,軟件可以自由下載使用,運作團隊靠提供收費的技術支持贏利。官方網站:http://www.zabbix.com官方文檔:http://www.zabbix.com/documentation/2.4/manual/quickstart。Zabbix通過C/S模式採集數據,通過B/S模式在web端展示和配置。
Zabbix運行條件:
Server:Zabbix Server需運行在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬件要求低。
Agent:目前已有的agent基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows。
SNMP:支持各類常見的網絡設備
1.2 Zabbix功能
具備常見的商業監控軟件所具備的功能(主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪製)支持自動發現網絡設備和服務器;支持分佈式,能集中展示、管理分佈式的監控點;擴展性強,server提供通用接口,可以自己開發完善各類監控。
1.3 優劣勢
優點:開源,無軟件成本投入;Server對設備性能要求低(實際測試環境:虛擬機CentOS5,2GCPU 1G內存,監控5臺設備,CPU使用率基本保持在10%以下,內存剩餘400M以上);支持設備多;支持分佈式集中管理;開放式接口,擴展性強。
缺點:中文資料較少。
二、Zabbix配置文件
2.1 說明
Server:指安裝zabbix服務的服務器(以下簡稱服務器端),是最重要的部份,主要安裝在linux系統上(支持多種操作系統),採用mysql存儲監控數據並使用apache+php的方式呈現。
Agent:指安裝在被監控設備上的zabbix代理(以下簡稱代理),被監控設備上的數據由代理收集後統一上傳到服務器端由服務器端收集、整理並呈現。
SNMP:也是agent的一種,指支持SNMP協議的設備(也可以是服務器),通過設定SNMP的參數將相關監控數據傳送至服務器端(大部份的交換機、防火牆等網絡設備都支持SNMP協議)。
IPMI:Agent的另一種方式,主要應用於設備的物理性能監控,例如設備的溫度、風扇的轉速等。
2.2 Zabbix架構
Zabbix支持多種網絡方式下的監控,可通過分佈式的方式部署和安裝監控代理,整個架構如下
三、Zabbix_server的安裝
1、首先我們需要先安裝操作系統
我這裏安裝的是CentOS 6.4 64位的linux系統,使用的是basic基礎軟件套餐,請提前關閉SELinux;
[root@zabbix ~]# uname -r 2.6.32-358.el6.x86_64 [root@zabbix ~]# cat /etc/redhat-release CentOS release 6.4 (Final)
2、搭建LNMP環境
因爲監控也不是需要特殊的WEB服務,rpm包提供的功能已經夠用,沒有必要源碼安裝LAMP,我的博客裏面有源碼編譯LAMP,我這裏是yum源安裝的;
#安裝apache yum install httpd #安裝php yum install php php-bcmath php-gd php-mbstring php-xml #安裝mysql yum install mysql-server php-mysql yum install libcurl-devel net-snmp-devel mysql-devel
啓動各項服務,併爲數據庫設置密碼
3、從zabbix官網下載最新的軟件包
1、添加用戶:
groupadd zabbix useradd -g zabbix -M zabbix
2、創建數據庫,添加授權賬號
數據庫配置文件增加如下內容
[mysqld] character-set-server = utf8 default-storage-engine = INNODB innodb_file_per_table = 1
創建數據庫
mysql> create database zabbix character set utf8; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
3、編譯安裝
tar zxf zabbix-2.2.0.tar.gz cd zabbix-2.2.0 ./configure \ --prefix=/usr/local/zabbix \ --sysconfdir=/etc/zabbix \ --enable-server \ --enable-agent \ --enable-java \ --with-mysql \ --with-net-snmp \ --with-libcurl \ --with-ssh2 make make install
注:--enable-java是需要監控JVM的時候需要的,如果不需要監控tomcat等java容器的可以不選擇這項,如果需要的話就需要安裝jdk,具體可以看http://wangzan18.blog.51cto.com/8021085/1692444
--with-ssh2 是不需要在客戶端服務器上面安裝Zabbix agent,如果需要使用ssh檢查,需要在編譯的時候加上這項,最低需要libssh2 1.0.0版本,需要安裝ssh開發包。
4、導入數據庫
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
6、修改配置文件
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ cp -R frontends/php /var/www/zabbix sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.conf sed -i 's/^.*DBPassword=.*$/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
7、添加服務端口:
cat >>/etc/services <<EOF zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper EOF
8、啓動服務
/etc/init.d/zabbix_server start /etc/init.d/zabbix_agentd start chkconfig zabbix_agentd on chkconfig zabbix_server on
4、然後打開web進行安裝
安裝過程中可能會出現一些配置不合格,我們適當的修改php配置文件裏面的一些配置就可以,還有web目錄的權限修改爲apache,一切安裝好之後我們就可以正常登錄了。
php配置修改的參數有這些:
post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone =Asia/Shanghai
在zabbix初始安裝完成後,管理界面上的“configuration”中還有一個頁面是“install”選項,存在誤操作重新安裝的風險,通過修改menu.inc.php文件可以禁用該顯示項目;
vi /var/www/zabbix/include/menu.inc.php
四、zabbix客戶端的安裝
既然要監控我們就要添加要監控的主機,在添加主機之前我們首先要在被檢測主機上面安裝agent,安裝agent比較簡單,我們也是按照安裝server的流程,下載軟件包,在編譯的時候,我們只選擇agent
useradd -M -s /sbin/nologin zabbix tar xf zabbix-2.4.4.tar.gz cd zabbix-2.4.4 ./configure --prefix=/usr/local/zabbix --enable-agent --sysconfdir=/etc/zabbix make make install
修改agent的配置文件
# vim zabbix_agentd.conf
server=server的IP等其他一些配置信息
配置啓動腳本,設爲開機啓動,和server的設置差不多。
五、zabbix_proxy的安裝
1、安裝數據庫及一些依賴軟件
yum install mysql-server mysql-devel net-snmp-devel libcurl-devel
2、添加用戶
groupadd zabbix useradd -g zabbix -M zabbix
3、創建數據庫,添加授權賬號
mysql> create database zabbix_proxy character set utf8; mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
4、編譯安裝
tar xf zabbix-2.4.4.tar.gz cd zabbix-2.4.4 ./configure \ --prefix=/usr/local/zabbix \ --sysconfdir=/etc/zabbix \ --enable-proxy \ --enable-agent \ --enable-java \ --with-mysql \ --with-net-snmp \ --with-libcurl \ --with-ssh2 make make install
注:--enable-java是需要監控JVM的時候需要的,如果不需要監控tomcat等java容器的可以不選擇這項,如果需要的話就需要安裝jdk,具體可以看http://wangzan18.blog.51cto.com/8021085/1692444
--with-ssh2 是不需要在客戶端服務器上面安裝Zabbix agent,如果需要使用ssh檢查,需要在編譯的時候加上這項,最低需要libssh2 1.0.0版本。
5、導入數據庫
mysql -uzabbix -pzabbix -hlocalhost zabbix_proxy < database/mysql/schema.sql
6、配置zabbix_proxy.conf
# vim /etc/zabbix/zabbix_proxy.conf
Server=xxx.xxx.xxx.xxx #zabbix server的ip地址或主機名 Hostname=Zabbix_proxy #z該主機名的配置需被zabbix server知道,並且在zabbix server前端配置時會用到 LogFile=/tmp/zabbix_proxy.log #pid文件的存放位置 DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix ConfigFrequency=60 #zabbix proxy 想服務器檢索配置數據信息的頻率,在被動模式下該參數將被忽略 DataSenderFrequency=60 #zabbix proxy發送收集的數據給zabbix server的頻率
7、修改配置文件
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd cp misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_proxy sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_proxy sed -i 's/zabbix_server/zabbix_proxy/g' /etc/init.d/zabbix_proxy
8、啓動代理服務
service zabbix_proxy start
9、進行web配置
六、Zabbix 3.x版本安裝注意問題
1、php版本
其他的軟件安裝都按照上面的進行,如果也使用yum安裝php,那安裝後打開的頁面是空白頁,並且錯誤日誌裏面提示index.php語法錯誤,查看了一下官方文檔,官方php要求是5.4以後的版本,這裏使用編譯安裝php高版本就可以。
2、安裝截圖