一、Zabbix簡介:
1、zabbix的概述
Zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證伺服器系統的安全營運;并提供靈活的通知機制以讓系統管理者快速定位/解決存在的各種問題。Zabbix主要由2部分構成,分别是zabbix server端(一個)與zabbix agent端(多個)。它支援多種監控方式:agent(被動模式),agent(主動模式),snmp,ipmi,jmx等。
agent端:主機通過安裝agent方式采集資料。
server端:通過收集agent發送的資料,寫入資料庫(MySQL,ORACLE等),再通過php+apache在web前端展示.
監控系統的基本模型:
<a href="http://s3.51cto.com/wyfs02/M01/6E/7E/wKioL1V-g6ODwxfUAAExAOMbpjk224.jpg" target="_blank"></a>
2、zabbix的運作條件
server端:zabbixserver需運作在LAMP(Linux+Apache+Mysql+PHP)環境下(或者LNMP),對硬體要求低。
agent端:目前已有的agent基本支援市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows。
3、Zabbix的功能
zabbix具備常見的商業監控軟體所具備的功能,如主機的性能監控、網絡裝置性能監控、資料庫性能監控、多種告警方式、詳細的報表圖表繪制等等。
另外zabbix還有以下特點:
a、支援自動發現網絡裝置和伺服器(可以通過配置自動發現伺服器規則來實作);
b、編寫插件容易,可以自定義監控項,報警級别的設定;
c、支援snmp(包括trappingandpolling),IPMI,JMX,SSH,TELNET;
d、定義的檢測,自定義收集資料的頻率;
e、靈活的觸發器,高可定制的報警,發送通知,可定制的報警更新,收件人;
f、實時的繪圖功能,監控項實時的将資料繪制在圖形上面;
zabbix的監控項目
主機監控:CPU、記憶體、磁盤的剩餘空間/使用率和I/O、SWAP使用率、、程序數。
網卡監控:網卡流量,包括流入/流出量和錯誤的資料包數。
應用程式:端口和記憶體使用率、CPU使用率、服務狀态、請求數、并發連接配接數、消息隊列的位元組數、Client事務處理數、Service狀态等。
硬體:溫度、風扇轉速、電壓等。
4、zabbix的一些名詞解釋
項目(item) 定義收集被監控的資料的項,如收集被監控機記憶體使用情況
觸發器(trigger) 通過項目獲得的資料(或者通過計算)來判斷主機狀态的定義
圖形(graph) 通過項目獲得資料,以圖形方式展示
模闆(template) 可将項目,集合,觸發器,圖形彙總為一個模闆,直接連結到主機
主機(host) 被監控對象,伺服器或其他網絡裝置
低級自動發現(low_discovery) 通過低級自動發現可以簡單定義一種類型有多個項的的情況,如:對磁盤容量監控,通常磁盤會有多個分區,我們通過一次定義可以監控磁盤上的所有分區
最新資料
(last data) 可檢視主機項目獲得的最新資料
鍵值(key) 在配置項目時用到的重要參數,可以看做是一種映射關系,監控程式通過配置此參數來完成對特定資料的擷取
二、Zabbix的安裝
zabbix伺服器(server端)運作的環境必須為Linux(UNIX)+PHP+Web Service+DataBase,這裡的Web Service可以為Nginx、Apache,DataBase可以為MySQL、Oracle、PostgreSQL等。是以在安裝server端的時候必須先配置LAMP環境。
我們這采用在CentOS6.5作業系統下,以 Apache作為伺服器,Mysql做資料庫進行存儲。
環境:
CentOS 6.5 zabbix版本:2.4.4
server ip: 192.168.212.2 被監控端ip: 192.168.212.3
服務端的操作
1、 伺服器安裝LAMP平台
1
<code>yum -y </code><code>install</code> <code>gcc gcc-c++ autoconf httpd php mysqlmysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gdphp-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmathmysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-develOpenIPMI-devel java-devel libssh2-devel openldap openldap-devel</code>
2、 啟動mysql和http服務
2
3
4
<code>service httpd restart;</code>
<code>chkconfig httpd on;</code>
<code>service mysqld start;</code>
<code>chkconfig mysqldon;</code>
3、 下載下傳zabbix-server并安裝
a、 下載下傳并解壓
<code>#wget </code>
<code>#tar -zxf zabbix-2.4.4.tar.gz</code>
b、建立zabbix運作需要的使用者
<code>#groupadd zabbix;</code>
<code>#useradd zabbix -g zabbix</code>
c、建立資料庫并授權
1) 進入mysql資料庫;
<code>#mysql -uroot -p</code>
2) 建立zabbix資料庫,并設定為UTF8編碼;
<code>mysql>createdatabase zabbix </code><code>character</code> <code>set</code> <code>utf8;</code>
3) 把所有zabbix資料庫中的表的操作權限賦予zabbix使用者,密碼為zabbix;
<code>mysql>grantall </code><code>on</code> <code>zabbix.* </code><code>to</code> <code>zabbix@localhost identified </code><code>by</code> <code>'zabbix'</code><code>;</code>
d、導入zabbix自定義的表結構和資料
1) 進入zabbix自帶mysql 資料庫檔案目錄;
<code>cd</code> <code>zabbix-2.4.4</code><code>/database/mysql</code>
2) 把zabbixserver自帶的3個資料庫導入zabbix資料庫;
<code>mysql -uzabbix -pzabbix zabbix< schema.sql </code>
<code>mysql -uzabbix -pzabbix zabbix< images.sql </code>
<code>mysql -uzabbix -pzabbix zabbix< data.sql</code>
e、編譯安裝zabbix-server
# cd zabbix-2.4.4
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/zabbix</code> <code>--</code><code>enable</code><code>-server--</code><code>enable</code><code>-proxy --</code><code>enable</code><code>-agent --</code><code>enable</code><code>-ipv6 --with-mysql=</code><code>/usr/bin/mysql_config--with-net-snmp</code> <code>--with-libcurl --with-openipmi --with-unixodbc --with-ldap--with-ssh2 --</code><code>enable</code><code>-java</code>
f、服務端口定義
<code>#vim /etc/services 追加以下内容</code>
<code>zabbix-agent10050</code><code>/tcp</code> <code>#zabbixagent </code>
<code>zabbix-agent10050</code><code>/udp</code> <code>#zabbixagent</code>
g、 修改zabbix的配置檔案
5
6
7
8
<code>#vim/usr/local/zabbix/etc/zabbix_server.conf </code>
<code>LogFile=</code><code>/tmp/zabbix_server</code><code>.log </code><code>##日志位置,根據需求修改;</code>
<code>PidFile=</code><code>/tmp/zabbix_server</code><code>.pid </code><code>##PID所在位置</code>
<code>DBHost=localhost </code><code>##伺服器為本機</code>
<code>DBName=zabbix </code><code>##資料庫名稱</code>
<code>DBUser=zabbix </code><code>##資料庫使用者名</code>
<code>DBPassword=zabbix </code><code>##資料庫密碼</code>
<code>DBSocket=</code><code>/var/lib/mysql/mysql</code><code>.sock </code><code>##修改MYSQL路徑</code>
h、添加并修改啟動腳本
9
10
11
12
13
14
15
16
<code>#cp zabbix-2.4.4/misc/init.d/fedora/core/zabbix_server /etc/init.d</code>
<code>#chmod +x /etc/init.d/zabbix_server</code>
<code>#vim /etc/init.d/zabbix_server</code>
<code>BASEDIR=</code><code>/usr/local/zabbix</code> <code>##修改這個,zabbix的安裝目錄</code>
<code>CONFILE=$BASEDIR</code><code>/etc/zabbix_server</code><code>.conf </code><code>##添加這一行,定義配置檔案位置</code>
<code>action$</code><code>"Starting $BINARY_NAME: "</code> <code>$FULLPATH -c $CONFILE </code>
<code># service zabbix_serverstart </code>
<code>#chkconfigzabbix_server on</code>
<code>#cp -r zabbix-2.4.4/frontends/php /var/www/html/zabbix</code>
<code>#chown -R apache:root /var/www/html/zabbix</code>
<code>#vim /etc/php.ini </code>
<code>date</code><code>.timezone =Asia</code><code>/Shanghai</code> <code>##更改時區</code>
<code>post_max_size = 32M </code><code>##送出資料的最大值</code>
<code>max_execution_time= 300 </code><code>##php腳本的最長執行時間</code>
<code>max_input_time =300 </code><code>##php最長接受資料時間</code>
<code>#/etc/init.d/httpd reload</code>
通路http://192.168.212.2/zabbix登陸測試,預設賬号admin,密碼zabbix
<a href="http://s3.51cto.com/wyfs02/M00/6E/82/wKiom1V-g_Gz8iZYAAPcAiSpS5g748.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/6E/7E/wKioL1V-hZ6BsdfxAAOCVZzaxN4412.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/6E/82/wKiom1V-g_OiB6oFAALwcInOV8M802.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/6E/7E/wKioL1V-haDhLVL7AALAUcVW6lE307.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/6E/82/wKiom1V-g_TyW8icAAI61y5OAM4353.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/6E/7E/wKioL1V-haHyPkmEAASLEN8r9JI178.jpg" target="_blank"></a>
建議用英文,中文翻譯的不準确。
用戶端的操作:
Agented的監控方式(被動模式)
1、 下載下傳agent壓縮包
<code>wget http:</code><code>//www</code><code>.zabbix.com</code><code>/downloads/2</code><code>.4.4</code><code>/zabbix_agents_2</code><code>.4.4.linux2_6.amd64.</code><code>tar</code><code>.gz</code>
2、 建立zabbix的工作目錄
<code>mkdir</code> <code>/usr/local/zabbix</code>
3、 把下載下傳好的壓縮檔案解壓到工作目錄;
<code>tar</code> <code>-zxf zabbix_agents_2.4.4.linux2_6.amd64.</code><code>tar</code><code>.gz -C </code><code>/usr/local/zabbix</code>
4、 修改配置檔案
<code>#vim/usr/local/zabbix/conf/zabbix_agentd.conf</code>
<code>LogFile=</code><code>/tmp/zabbix_agentd</code><code>.log </code><code>##配置日志檔案路徑</code>
<code>#Server=192.168.212.2 ##agentd被動模式伺服器IP</code>
<code>Hostname=Zabbix server </code><code>##在zabbix server配置host時指定的主機名要相同,這樣主動模式才能擷取到資料</code>
注:使用主動模式時,StartAgents設為0,關閉被動模式!
5、 修改啟動腳本
下載下傳的agent安裝包裡面沒有啟動腳本,但在192.168.212.2的zabbix 源碼包裡有
<code>scp</code> <code>zabbix-2.4.4</code><code>/misc/init</code><code>.d</code><code>/fedora/core/zabbix_agentd</code> <code>192.168.212.3:</code><code>/etc/init</code><code>.d/</code>
<code># chmod +x/etc/init.d/zabbix_agentd</code>
<code># vim /etc/init.d/zabbix_agentd</code>
<code>BASEDIR=</code><code>/usr/local/zabbix</code> <code>##修改為agent的安裝目錄,添加以下兩行</code>
<code>CONFILE=$BASEDIR</code><code>/conf/zabbix_agentd</code><code>.conf</code>
<code>action $</code><code>"Starting $BINARY_NAME: "</code><code>$FULLPATH -c $CONFILE</code>
<code>#groupadd zabbix</code>
在服務端測試能否監控到用戶端
<code>[root@zabbix~]</code><code># /usr/local/zabbix/bin/zabbix_get -s 192.168.212.3-k"system.hostname"</code>
<code>Client</code>
至此,zabbix的服務端及用戶端agent主動模式的安裝已經完畢。
本文轉自Jacken_yang 51CTO部落格,原文連結:http://blog.51cto.com/linuxnote/1662051,如需轉載請自行聯系原作者