CENTOS安裝部署zabbix,centos部署zabbix
參考原文:http://www.showerlee.com/archives/13
RHCE過的EMAIL已經下來,所以最近閑了就準備把先前的文檔更新下。
我更新的內容主要是把自己當時的理解加到配置裡,告訴大家我當時的一些思路想法,而不會像網上的很多文檔只會把一大堆命令貼出來,搞得很多本身對該知識點不瞭解的朋友更加暈頭轉向。
搞了LINUX大半年,真心是興趣所致,變成LINUX大牛是我未來事業的目標,對此我樂此不彼,但也深信不疑。。
最近研究了下群裡談論比較火的一個國外開源網路監控系統ZABBIX,玩過一遍後就深深被他的介面簡潔,後台配置邏輯分類清晰,易於配置上手的優點給吸引,立即將單位的系統統一換成這個平台監測,測試了一段時間,效果良好。
之前玩過cacti和nagios,算是一個大家耳熟能詳的業內常用的的網管互補組合,但個人感覺前者由於調用snmp協議,導致有時候在網路不太穩定時會有資料丟失情況,後者nagios雖然不依賴於SNMP,但用戶端的複雜的安裝,初始配置以及需要讀懂外掛程式文法導致會讓很多初學者望而卻步。
zabbix不僅吸取了兩者的製圖和動態監測的優點,而且很多外掛程式以及常用指令碼模板都是系統內建,最重要的配置相對於前兩者簡潔了很多,所以省去了很多學習成本,加之該監控系統是利用PHP語言寫的,系統個人定製就無需使用者修改底層代碼,而可以直接在WEB介面去按照自己的喜好設定,支援字型修改以及簡體中文,強烈推薦大家線上上使用這套網管平台。
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負荷
- 記憶體使用量
- 磁碟使用
- 網路狀況
- 連接埠監視
- 日誌監視
配置前先關閉iptables和SELINUX,避免安裝過程中報錯。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
一.安裝LAMP環境
本博傳送門:http://www.showerlee.com/archives/6
二、zabbix(server,agent)配置:
server: 192.168.7.201
agent: 192.168.7.249
簡單提下,其實是服務端安裝zabbix_server,zabbix_agentd兩個服務,用戶端只需安裝zabbix_agentd一個服務,監控原理其實就是zabbix_agentd服務將從系統中擷取的相關資料傳送給zabbix_server服務,然後zabbix_server服務將資料以PHP頁面顯示出來,很好理解。
(server)表示僅服務端配置
(agent)表示僅用戶端配置
(server,agent)表示用戶端與服務端都需配置
1.下載zabbix(server,agent)
註:本人下載的是官方2.06的服務端與用戶端的穩定整合編譯包,所以後面編譯的時候注意,以 --enable-server --enable-agent 參數編譯的為伺服器端,以 --enable-agent參數編譯的為用戶端。
官方提供的另外一種下載方式是服務端與用戶端單獨區分的編譯包,編譯方法與本博的方法不同,這裡請注意區分。
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
2.安裝zabbix所需的組件(server,agent)
# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
3.建立使用者帳號(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
4.建立zabbix資料庫並匯入zabbix資料庫資料(server)
# mysql -u root -p123456
> grant all on zabbix.* to zabbix@localhost identified by '123456';
> create database zabbix;
# tar zxvf zabbix-2.0.6.tar.gz
# cd zabbix-2.0.6
# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
5.編譯安裝(server,agent)
server: (192.168.7.201)
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make install
agent: (192.168.7.249)
# ./configure --enable-agent
# make install
這裡筆者由於當時編譯時間忘記自訂安裝目錄導致zabbix設定檔使用了預設路徑,在/usr/local/etc/下,這裡若重新編譯則下面更改的地方較多,後面的內容都以此路徑為準。
參照本博配置的朋友,建議編譯時間加 --prefix=/usr/local/zabbix 參數,則zabbix設定檔預設在/usr/local/zabbix/etc目錄下,後面啟動服務前需載入zabbix目錄下bin與sbin目錄的環境變數
預設zabbix安裝路徑/usr/local/下的bin與sbin目錄因為與系統合并,所以無需載入環境變數
遇到錯誤文章最後有解答
6.編輯設定檔(server,agent)
# cd /usr/local/etc/
去掉設定檔注釋:
# cat zabbix_server.conf |grep -v "#" |grep -v "^$" > zabbix_server.conf.bak
# cp zabbix_server.conf.bak zabbix_server.conf
# cat zabbix_agentd.conf |grep -v "#" |grep -v "^$" > zabbix_agentd.conf.bak
# cp zabbix_agentd.conf.bak zabbix_agentd.conf
server: (192.168.7.201)
# vi /usr/local/etc/zabbix_server.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
-------------
# vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,192.168.7.201
UnsafeUserParameters=1
-------------
agent: (192.168.7.249)
# vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=192.168.7.201
UnsafeUserParameters=1
-------------
# touch /var/log/zabbix_server.log
# chmod 777 /var/log/zabbix_server.log
# touch /var/log/zabbix_agentd.log
# chmod 777 /var/log/zabbix_agentd.log
7、啟動守護進程(server,agent)
在伺服器端運行啟動zabbix_server
# zabbix_server
server啟動連接埠為10051
在所有被監控的機器上運行zabbix_agentd 。
# zabbix_agentd
agentd啟動連接埠為10050
注意若伺服器開啟iptables服務,則需添加該兩個連接埠通行。
# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
# iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
註:重啟服務可直接kill掉zabbix進程再重新按照以上方法啟動
# pkill zabbix
# ps -ef |grep zabbix
或配置開機啟動指令碼:
# cd zabbix-2.0.6
# cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
# cd /etc/init.d/
# chmod 755 zabbix_*
# vi zabbix_server
# vi zabbix_agentd
在檔案頭部的#!/bin/sh行下分別添加如下兩行:
--------------
#chkconfig: 35 95 95
#description:zabbix Agent server
--------------
注:如果之前編譯時間自訂了zabbix的路徑,需要找到如下行
DAEMON=/usr/local/sbin/zabbix_server
將後面的參數改成你自訂的路徑,本篇文檔使用預設路徑,這裡不需要修改
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
重啟服務:
# service zabbix_server restart
------------------------------------------------------------------------------
注: 啟動zabbix_server如果報如下錯誤
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
需要將mysql lib庫加入系統庫
# locate libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18.1.0
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
# ldconfig
# service zabbix_server restart
--------------------------------------------------------------
# service zabbix_agentd restart
8.安裝zabbix web介面(server)
複製ZABBIX PHP原始碼檔案
zabbix的服務端程式是用php寫的,因此需要一個支援LAMP架構的伺服器平台
現在將ZABBIX安裝目錄下 frontends/php 下面的php原始碼檔案拷貝到web伺服器html檔案目錄下面。
這裡建議用子目錄替換APACHE HTML根目錄或使用APACHE虛擬機器主機
這裡測試環境我為了方便就選擇了前者。
先建立一個子目錄,將zabbix終端php檔案拷貝到該子目錄裡面,執行下面的命令:
# mkdir /usr/local/apache2/htdocs/zabbix
# cd frontends/php
# cp -a . /usr/local/apache2/htdocs/zabbix
安裝前端
step 1
在你的瀏覽器中,輸入url:http://192.168.7.201/zabbix,你將看到前端安裝嚮導的第一個畫面。
step 2
確保所有依賴的軟體都正確安裝。
查看到幾處不符合要求
需修改該PHP檔案設定檔參數:
# vi /usr/local/php5/lib/php.ini
尋找如下參數並修改為:
----------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----------------
載入PHP下gettext模組
# cd /root/php-5.4.13/ext/gettext
# /usr/local/php5/bin/phpize
# ./configure --with-php-config=/usr/local/php5/bin/php-config
# make && make install
載入該模組
# vi /usr/local/php5/lib/php.ini
添加如下行:
extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"
重啟apache服務
# service httpd restart
重新整理頁面:
step 3
輸入之前在MYSQL後台設定的zabbix資料庫資訊:
DBName=zabbix
DBUser=zabbix
DBPassword=123456
測試連接時若報錯,添加如下命令:
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
step 4
輸入zabbix伺服器端的詳細資料
step 5
檢查一下設定情況。
step 6
下載設定檔,並把他放置在/usr/local/apache2/htdocs/zabbix/conf/ 目錄下
step 8
zabbix前端已經安裝就緒,預設的使用者名稱是Admin,密碼是zabbix。
註:如下報錯是因為zabbix資料未匯入MYSQL資料庫:
zabbix主介面,server端配置完畢。
手動添加主機
大功告成。。。
註:
1.顯示簡體中文介面
點擊:右上方Profile
按照選擇Chinese(zh_CN),儲存:
2.解決zabbix繪圖中出現中文亂碼問題:
a.從windows下控制台->字型->選擇一種中文字型檔,例如“微軟雅黑”
b.把它拷貝到zabbix的web端的fonts目錄下例如:/usr/local/apache2/htdocs/zabbix/fonts,並且把TTF尾碼改為ttf
c.修改zabbix的web端 include/defines.inc.php
# cd /usr/local/apache2/htdocs/zabbix
# vi include/defines.inc.php
搜尋 'DejaVuSans'
用"//"注釋掉系統預設行,並添加新的字型參數行。
其中msyh為字型檔名字,不包含ttf尾碼
----------------------
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'msyh');
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
define('ZBX_GRAPH_FONT_NAME', 'msyh');
3.監控windows主機:
:http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip
在C:\Program Files\下建立zabbix檔案夾
解壓zip包後:將包內bin/win64/下的所有檔案複製到 C:\Program Files\zabbix下
並在該目錄下建立一個zabbix_agentd.conf檔案,內容為
-------------------
LogFile=C:\Program Files\zabbix\zabbix_agentd.log
Server=192.168.7.11
UnsafeUserParameters=1
-------------------
進入cmd命令列:
# cd C:\Program Files\zabbix
安裝zabbix用戶端:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -i
啟動zabbix服務:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -s
參數含義:
-c 制定設定檔所在位置
-i 安裝用戶端
-s 啟動用戶端
-x 停止用戶端
-d 卸載用戶端
:
在服務端添加用戶端主機監控同上。。
---------------大功告成-----------------
zabbix在configure時候遇到的問題(CentOS)為你解答:
在CentOS系統中,安裝zabbix進行configure時會遇到以下4個主要問題
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
1 configure: error: MySQL library not found
the problem is not installed mysql-devel
- #yum install mysql-devel
-
2 configure: error: Jabber library not found
the problem is not installed jabber lib
- #wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
-
下載完成後解壓、配置、安裝:
- tar zxvf iksemel-1.4.tar.gz
-
- cd iksemel-1.4
-
- configure
-
- make
-
- make install
-
之後對zabbix進行configure還是會遇到這個問題,那麼將jabber目錄指定即可:#./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber=/usr/local/ --with-libcurl
3 configure: error: Not found curl Library
- #yum install curl-devel (此項未經測試)
-
4 configure: error : Not found NET-SNMP library
- yum install net-snmp-devel
-
看完上面四點是不是一起也遇到相同的問題,那就按上的辦法解決吧!
部署了zabbix伺服器監控以後,咱更改磁碟空間警示的值,預設貌似是磁碟空間小於10%就警示,想更改為10G
修改trigger就可以了。
zabbix中預定義的key存放位置在哪
zabbix.agentd.conf裡面的,末尾的那些語句就是key,根據你自己的需要來添加。