1 Zabbix概述
1.1 什麼是Zabbix
Zabbix由Alexei Vladishev編寫,目前由Zabbix SIA積極開發和維護
Zabbix是一個企業級的開源分佈式監控解決方案
Zabbix是一款用於監控衆多服務器的健康情況、完整狀態的軟件,採用了靈活的預警通知機制,比如它允許用戶設定通過email示警任何網絡活動,從而使得服務器的問題能夠被迅速反映出來
Zabbix具備出色的報告和數據可視化功能,所有的數據存儲的在數據庫中,這使得Zabbix具備很好的規劃能力
Zabbix支持投票和陷阱(polling and trapping)。通過參數配置,所有Zabbix報告和統計資料都可以通過基於Web的前端訪問到
通過正確的配置,您可以從任何地點評估您的服務器狀態,這一點無論對於小企業還是大企業都是非常重要的
Zabbix是免費的,遵循GPL公共許可證第二版,這意味着其源代碼是免費地分發提供給廣大公衆,並可以從Zabbix公司獲得商業支持
1.2 Zabbix的功能
自動發現服務器和網絡設備,分佈式監控網絡,集中式管理,支持polling和trapping機制,服務器端支持Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X系統,高性能本地代理(客戶端軟件支持Linux ,Solaris, HP-UX, AIX,Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000,Windows 2003, Windows XP, Windows Vista系統),無代理監控,有安全的用戶認證功能,可靈活地分配用戶權限,基於web的接口,可靈活地預定網絡事件並使用郵件通知,高等級的資源監控,日誌審計功能等...
1.3 Zabbix的優勢
它是開源解決方案,提供類unix和win32平臺的高效率代理,操作直觀易於掌握,投入成本很低,配置簡單,集中式監控管理,所有信息存儲在關係型數據庫中,高級別服務樹,安裝簡便,支持snmp(v1和v2都支持),支持trapping和polling機制,可視化能力,支持多語言(包括中文) 等...
2 Zabbix Server的安裝配置流程
2.1 LAMP/LNMP環境安裝配置
LAMP/LNMP基礎環境的安裝和配置請參看我的其他博文(http://rolandqu.blog.51cto.com/3477736/d-3)
2.2 Zabbix Server安裝
1. 首先從zabbix官方網站下載zabbix-1.8.14版(http://www.zabbix.com/download2.php):
2. 解壓縮並進入zabbix源碼目錄:
- tar zxf zabbix-1.8.14.tar.gz
- cd zabbix-1.8.14
3. 創建zabbix用戶和組:
- groupadd zabbix
4. 創建zabbix數據庫:
- create database zabbix character set utf8;
5. 爲zabbix用戶授權
- grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
- grant all on zabbix.* to [email protected] identified by 'zabbix';
6. 導入zabbix表及數據
- mysql -uroot -p zabbix < create/schema/mysql.sql
- mysql -uroot -p zabbix < create/data/data.sql
- mysql -uroot -p zabbix < create/data/p_w_picpaths_mysql.sql
7. Zabbix編譯參數
- /configure –prefix=/usr/local/zabbix \
- --enable-server \
- --enable-proxy \
- --enable-agent \
- --with-mysql=/usr/local/mysql/bin/mysql_config
- --with-net-snmp
- --with-libcurl
8. 編譯和安裝
- make && make install
9. Zabbix編譯參數說明
- --enable-server 安裝 Zabbix Server
- --enable-proxy 安裝 Zabbix Proxy
- --enable-agent 安裝 Zabbix Agent
- --with-mysql 使用 mysql 做數據庫服務器
- --with-net-snmp 支持 SNMP
- --with-libcurl 支持curl,用於web監控
2.3 Zabbix Server配置
1. 創建zabbix配置文件
- mkdir /etc/zabbix; mkdir /var/log/; chmod 777 –R /var/log/
- cp misc/conf/zabbix_server.conf /etc/zabbix/
- cp misc/conf/zabbix_proxy.conf /etc/zabbix/
- cp misc/conf/zabbix_agent.conf /etc/zabbix/
2. 修改zabbix server配置文件如下內容
- LogFile=/var/log/zabbix/zabbix_server.log
- PidFile=/var/log/zabbix/zabbix_server.pid
- DBName=zabbix
- DBUser=zabbix
- DBPassword=zabbix
- DBSocket=/tmp/mysql.sock //根據my.cnf配置進行修改
3. 安裝zabbix啓動腳本
- cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server
- chmod +x /etc/init.d/zabbix_server
4. 修改 zabbix_server 頭部變量定義
- 在 #!/bin/bash 後添加
- # chkconfig: - 95 95
- # description: Zabbix Server
- 修改以下變量
- BASEDIR=/usr/local/zabbix
- PIDFILE=/var/log/zabbix/zabbix_server.pid
5. 建立zabbix log和pid目錄
- mkdir -p /var/log/zabbix && chmod 777 /var/log/zabbix
6. 添加zabbix到服務並設置開機啓動
- chkconfig --add zabbix_server
- chkconfig zabbix_server on
7. 啓動zabbix server
- /etc/init.d/zabbix_server start
8. Zabbix Server啓動後進程如下圖
2.4 Zabbix WEB頁面配置
1. 複製zabbix頁面文件
- cp -fr zabbix-1.8.14/frontends/php/* /date/website/htdocs/
2. 修改php.ini配置文件
- date.timezone = Asia/Shanghai
- post_max_size = 128M
- max_execution_time = 600
3. 通過web登錄zabbix,根據提示進行初始化配置,直到出現登錄窗口代表安裝和配置完成。
默認用戶名和密碼是:admin/zabbix
界面如下圖所示:
2.5 關於Zabbix分佈式部署的基礎配置(詳細解釋請參看官方技術文檔)
如果需要增加分佈式功能,則需要設置主節點或子節點參數(NodeID是唯一的,1爲主節點,其他爲子節點)
修改zabbix_server配置文件,增加如下配置
- NodeID=1
關閉zabbix_server服務,執行轉換命令
- ./zabbix_server -n 1 -c /etc/zabbix/zabbix_server.conf
啓動 zabbix_server服務
最後在zabbix web頁面配置各節點項。
3 Zabbix Agentd的安裝配置流程
3.1 Zabbix Agentd安裝
1. 如果沒有安裝過zabbix server程序,請先先從zabbix官方網站下載zabbix-1.8.14版(http://www.zabbix.com/download2.php):
2. 解壓縮:tar zxf zabbix-1.8.14.tar.gz ,並進入zabbix源碼目錄 cd zabbix-1.8.14
3. 創建zabbix用戶和組:groupadd zabbix
4. Zabbix編譯參數
- /configure –prefix=/usr/local/zabbix \
- --enable-agent
5. 編譯和安裝
- make && make install
6. Zabbix編譯參數說明
- --enable-agent 安裝 Zabbix Agent
3.2 Zabbix Agentd配置
1. 定義服務端口(非必要,只用於顯示端口對應的服務別名)
編輯 /etc/service 配置文件,在文件末尾追加
- zabbix-agent 10050/tcp Zabbix Agent
- zabbix-agent 10050/udp Zabbix Agent
- zabbix-trapper 10051/tcp Zabbix Trapper
- zabbix-trapper 10051/udp Zabbix Trapper
2. 創建zabbix配置文件
- mkdir /etc/zabbix
- cp misc/conf/zabbix_agentd.conf /etc/zabbix/
3. 修改zabbix agentd配置文件如下內容
- PidFile=/var/log/zabbix/zabbix_agentd.pid
- LogFile=/var/log/zabbix/zabbix_agentd.log
- Server=192.168.1.1 //此爲zabbix server的IP地址
- Hostname=192.168.1.2 //此處添加本機IP地址,也就是zabbix添加監控對象時的IP地址,否則zabbix server log會有很多注意信息
4. 在zabbix agentd配置文件最後加入自定義監控項(關於自定義監控項將在今後博文中詳細介紹)
- UserParameter=memory.status[*],/bin/bash /usr/local/zabbix/shell/zabbix_memory_status.sh $1
- UserParameter=disk.health[*],/usr/bin/sudo /usr/local/zabbix/shell/zabbix_disk_status.sh $1
- UserParameter=partion.readonly,/usr/bin/sudo /usr/local/zabbix/shell/zabbix_partion_readonly.sh
5. 安裝zabbix啓動腳本
- cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd
- chmod +x /etc/init.d/zabbix_agentd
6. 修改 zabbix_agentd 頭部變量定義
- 在 #!/bin/bash 後添加
- # chkconfig: - 95 95
- # description: Zabbix Agentd
- 修改以下變量
- BASEDIR=/usr/local/zabbix
- PIDFILE=/var/log/zabbix/zabbix_agentd.pid
7. 建立zabbix log和pid目錄
- mkdir -p /var/log/zabbix && chmod 777 /var/log/zabbix
8. 添加zabbix到服務並設置開機啓動
- chkconfig --add zabbix_agentd
- chkconfig zabbix_agentd on
9. 啓動zabbix agentd
- /etc/init.d/zabbix_agentd start
10. Zabbix agentd啓動後進程如下
結束
至此Zabbix安裝和配置的流程都已基本介紹完成。Zabbix還有很多高階應用值得我們去認真研究,例如分佈式監控,proxy代理監控,web監控,以及自定義監控項配置等。這些進階配置將在今後的博文中陸續進行詳細介紹。