Zabbix簡介 Zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix能監視各種網路參數,保證伺服器系統 的安全運營;並提供柔軟的通知機制以讓系統管理員快速定位/解決存在的各種問題。zabbix由2部分構成,zabbix server與可選組件za ...
Zabbix簡介
Zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix能監視各種網路參數,保證伺服器系統 的安全運營;並提供柔軟的通知機制以讓系統管理員快速定位/解決存在的各種問題。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)等系統之上。zabbix server可以單獨監視遠程伺服器的服務狀態;同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監視數據(trapping方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。另外zabbix server還支持SNMP (v1,v2),可以與SNMP軟體(例如:net-snmp)等配合使用。
Zabbix特點
安裝與配置簡單,學習成本低 支持多語言(包括中文) 免費開源 自動發現伺服器與網路設備 分散式監視以及WEB集中管理功能 可以無agent監視 用戶安全認證和柔軟的授權方式 通過WEB界面設置或查看監視結果 支持手機簡訊、email等通知功能等等
Zabbix主要功能
CPU負荷 記憶體使用 磁碟使用 網路狀況 埠監視 日誌監視
安裝fping
由於 zabbix 使用 fping 替代了 ping 作為 icmp 的工具,所以要安裝 fping可以從 http://fping.sourceforge.net/ 上下載 fping 的源代碼,解壓編譯安裝。
fping是加強版的ping工具,可以同時ping多個主機。
fping的官網是:http://www.fping.com
wget http://fping.sourceforge.net/download/fping.tar.gz
tar -xvf /nfs/pkg/fping.tar.gz
cd fping-2.4b2_to/
./configure
make && make install
安裝完畢後,一起就2個文件:
/usr/local/sbin/fping #執行文件 /usr/local/man/man8/fping.8 #man文件
設置fping許可權:
chown root:zabbix /usr/local/sbin/fping
chmod 710 /usr/local/sbin/fping
chmod ug+s /usr/local/sbin/fping
然後再安裝traceroute:
yum install traceroute -y
Zabbix安裝
①環境
1)關閉iptables
[root@k zabbix]# iptables -F
[root@k zabbix]# /etc/init.d/iptables save
2)關閉selinux
編輯文件/etc/sysconfig/selinux 將設置 SELINUX=enforcing 修改為: SELINUX=disabled
3)安裝相關依賴包
yum -y install gcc mysql-server httpd php php-mysql php-gd php-bcmath php-xml php-mbstring mysql-devel php-snmp net-snmp-devel net-snmp net-snmp-utils OpenIPMI-devel curl-devel
②下載解壓 tar xvf zabbix-2.4.5.tar.gz -C /usr/local 增加zabbix用戶和組 groupadd zabbix useradd zabbix -g zabbix -s /sbin/nologin ③配置zabbix資料庫 啟動MySQL資料庫: service mysqld start 修改MySQL root用戶密碼(預設密碼為空) mysqladmin –u root –p password 123456 進入資料庫: mysql -u root -p mysql> create database zabbix default charset utf8;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123456';
mysql> grant all on zabbix.* to zabbix@'127.0.0.1' identified by '123456';
mysql> flush privileges; (刷新許可權配置)
quit
導入表和數據: cd /usr/local/zabbix-2.4.5/database/mysql mysql -u zabbix -p123456 zabbix< schema.sql (將zabbix中的mysql.sql文件重定向到zabbix資料庫中)
mysql -u zabbix -p123456 zabbix < images.sql (有先後順序)
mysql -u zabbix -p123456 zabbix < data.sql
④編譯安裝zabbix
cd /usr/local/zabbix-2.4.5;
./configure --sysconfdir=/etc/zabbix --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmi
make && make install
配置文件
vi /etc/zabbix/zabbix_server.conf 修改如下:
DBName=zabbix <---zabbix使用的資料庫 DBUser=zabbix <---zabbix連接mysql所使用的用戶名 DBPassword=123456 <----zabbix連接mysql所使用的密碼
DBSocket=/var/lib/mysql/mysql.sock <---如果鏈接的是本機的資料庫,必須確定socket路徑正確
FpingLocation=/usr/local/sbin/fping <---修改預設的icmp工具為fping
vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.66.16 <----指向zabbix伺服器的ip
ServerActive=192.168.66.16 <----指向zabbix伺服器的ip
Hostname=192.168.66.16 <---本機(zabbix客戶端)的hostname或者ip
添加web前端php文件
cd /usr/local/zabbix-2.4.5/frontends/
cp -rf php /var/www/html/zabbix
chown -R zabbix:zabbix /var/www/html/zabbix
web前端安裝配置
vi /etc/php.ini 修改php相關參數 max_execution_time = 600 max_input_time = 600 date.timezone = Asia/Shanghai post_max_size = 32M memory_limit = 256M vi /etc/httpd/conf/httpd.conf DirectoryIndex index.php index.html # LoadModule foo_module modules/mod_foo.so LoadModule php5_module modules/libphp5.so
啟動服務
/etc/init.d/httpd start /etc/init.d/mysqld start /usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_agentd start
配置Zabbix伺服器端
在本地瀏覽器上訪問Zabbis Serve地址開始web前端配置,http://192.168.66.16/zabbix 按提示一步步next,其中Step 3 Check of pre-requisites 必須全部項目OK後 才能繼續配置,如有提示fail,去server上檢查是否安裝這個包或配置是否按上述更改。共需6步,如下圖:
a) 進入安裝界面點擊Next
b) 確保所有的監測項都是OK,點擊Next
c) 填寫zabbix資料庫的用戶名、密碼、地址等信息,點擊Test connection,OK後點擊Next
(上圖中 Database name 為前面創建的資料庫名,User為前面創建的連接MySQL的資料庫用戶zabbix,Password為前面創建的連接MySQL資料庫所使用的密碼,本實驗所使用的密碼為123456;Test connection必須OK 才能進行下一步)
d) 填寫zabbix伺服器的信息,主機名,server程式監聽的的埠,主機IP地址等,如果server跟web在一臺伺服器上保持預設即可,點擊Next
e) 確認前面幾部填寫的信息沒有問題的話點擊Next
f) 檢查web程式的config文件,如果沒問題會顯示OK,直接點擊finish即可完成安裝(如果此處有問題一般是zabbix虛擬主機目錄文件的許可權問題,上面已經有設置的過程一般不會出現問題)
如果出現下圖的錯誤,則按照其提示操作即可(點擊
按鈕下載配置文件,將下載後的文件拷貝到/var/www/html/zabbix/conf/下,改名為zabbix.conf.php,在修改文件的相關擁有者為zabbix{命令 chown zabbix.zabbix /var/www/html/zabbix/conf/zabbix.conf.php},在點擊Retry按鈕,變成上圖所示後點擊Finish即安裝成功了)
如果因為手誤,資料庫密碼或者用戶名等的填寫錯了,後面會一直報錯,我們可以手動的去編輯配置文件vim /var/www/html/zabbix/conf/zabbix.conf.php 手動定義相關的參數即可g) 進入登錄界面點擊登錄,預設賬號密碼為admin / zabbix h) 添加監控項 進入Configuration -》Hosts 選擇 Zabbix Server 然後 Activate Select,Zabbix Server (本機)的監控激活。進入 Monitoring Dashboard,可以看到 Zabbix Server 的監控結果(這必須保持zabbix_agentd.conf配置文件為預設才會生效);有一點要註意:agent端配置好之後,添加host,需要添加模板才會顯示綠色成功連接喲。 新建監控項: 1) 進入Configuration -》Hosts 選擇按鈕 2)執行第一步操作後,會進入下圖所示界面,修改紅色部分的內容為agent端的ip地址,其中Host name處的值必須與agent端zabbix_agentd.conf裡面的值相同 3)添加模板(必須添加相關模板後,才能獲取到監控數據),點擊上圖中的選項,會進入到下圖所示界面 4)點擊上圖中的select選項就會將zabbix所有的模板列出來,選擇需要添加的模板後,在點擊add選項添加模板,最後點擊Update按鈕即完成了監控的添加。 zabbix客戶端的配置: 最好保持伺服器時間同步
通過root用戶解壓、編譯及安裝
tar -xvf /nfs/pkg/zabbix-2.0.3.tar.gz;cd zabbix-2.0.3 ./configure --prefix=/usr/local/zabbix/ --sysconfdir=/etc/zabbix/ --enable-agent make make install
為了便於監控IO,安裝上sysstat,執行如下命令:
yum install sysstat -y
sed -i s/10.71.xx.xx/$HOST_IP/g /etc/zabbix/zabbix_agentd.conf 將配置文件/etc/zabbix/zabbix_agentd.conf中的 Hostname= 10.71.xx.xx 修改成現在主機的IP,例如241 Hostname=$HOST_IP 將DisableActive=0修改為#DisableActive=0 將ServerPort=10051修改為#ServerPort=10051
添加計劃任務,收集監控數據:
執行命令: crontab -e -u zabbix 加入: # run zabbix data gathering for custom checks every min */3 * * * * /usr/bin/sudo /etc/zabbix/scripts/zabbix_tomcat_cron.sh > /dev/null 2>&1 * * * * * /etc/zabbix/scripts/zabbix_vmstat_cron.sh > /dev/null 2>&1 * * * * * /etc/zabbix/scripts/zabbix_iostat_cron.sh > /dev/null 2>&1 * * * * * /etc/zabbix/scripts/zabbix_tcpConStat_cron.sh > /dev/null 2>&1 * * * * * /usr/bin/sudo /etc/zabbix/scripts/zabbix_fileSocket_cron.sh > /dev/null 2>&1 * * * * * /etc/zabbix/scripts/zabbix_DbConnStat_cron.sh > /dev/null 2>&1
設置一些特殊腳本的許可權:
執行如下命令: visudo 修改 Defaults requiretty 為 #Defaults requiretty 並加入: Cmnd_Alias SU = /bin/su - Cmnd_Alias SUWWW = /bin/su - www xujing ALL=(root) NOPASSWD: SU,SUWWW,SERVICES Cmnd_Alias FILESOCKET = /etc/zabbix/scripts/zabbix_fileSocket_cron.sh,/etc/zabbix/scripts/zabbix_tomcat_cron.sh,/etc/zabbix/scripts/file_socket.sh,/usr/bin/sudo,/bin/su,/bin/kill zabbix ALL=(root) NOPASSWD: FILESOCKET
設置開機啟動服務:
執行如下命令: cp /nfs/script/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_agentd chkconfig --add zabbix_agentd chkconfig zabbix_agentd on
啟動zabbix_agentd:
執行如下命令: /etc/init.d/zabbix_agentd start
檢查日誌確認啟動無異常:
tail -100 /tmp/zabbix_agentd.log 220.web.lg-9-8.zwc.com<2013-04-21 01:26:10> ~/zabbix-2.0.3 root># tail -100 /tmp/zabbix_agentd.log 19506:20130421:012610.832 Starting Zabbix Agent [10.0.0.220]. Zabbix 2.0.3 (revision 30485). 19507:20130421:012610.832 agent #0 started [collector] 19509:20130421:012610.833 agent #1 started [listener] 19510:20130421:012610.833 agent #2 started [listener] 19511:20130421:012610.834 agent #3 started [listener]
Zabbix Proxy伺服器安裝配置
zabbix支持分散式監控,通過zabbix_proxy部署,將一集中區域的監控數據收集並轉發到Zabbix Server。原理如圖:
安裝前準備
創建zabbix用戶:
groupadd zabbix -g 504;useradd zabbix -u 504 -g zabbix
安裝依賴軟體包:
yum install -y net-snmp-devel curl-devel mysql-devel traceroute net-snmp-utils OpenIPMI-devel
創建運行時需要的相關目錄,並配置好許可權:
mkdir /var/log/zabbix;chown -R zabbix.zabbix /var/log/zabbix/mkdir /var/run/zabbix; chown -R zabbix.zabbix /var/run/zabbix/
另外還需要準備一個mysql資料庫以存儲zabbix_proxy收集的監控數據。
安裝
編譯安裝fping
參考編譯安裝fping
編譯安裝zabbix_proxy
tar -zxvf zabbix-1.8.10.tar.gz;cd zabbix-1.8.10./configure --prefix=/usr/local/zabbix --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmimake make install
配置
啟動腳本
常見問題
zabbix 圖片亂碼解決
1.上傳本地windown系統的C:\WINDOWS\Fonts\simhei.ttf文件到zabbixweb目錄的zabbix/fonts下. 2.vi zabbix/include/defines.inc.php把所有的DejaVuSans替換成simhei
zabbix 模版
官方配置有很多的模版,參考http://www.zabbix.com/