1、Zabbix組件概述
php
一、Zabbix Server:負責接收agent發送的報告信息的核心組件,全部配置,統計數據及操做數據均由其組織進行;
前端
二、Database Storage:專用於存儲全部配置信息,以及由zabbix收集的數據;node
三、Web interface:zabbix的GUI接口,一般與Server運行在同一臺主機上;mysql
四、Proxy:可選組件,經常使用於分佈監控環境中,代理Server收集部分被監控端的監控數據並統一發往Server端;linux
五、Agent:部署在被監控主機上,負責收集本地數據併發往Server端或Proxy端;web
2、Zabbix經常使用術語sql
一、主機(host):要監控的網絡設備,可由IP或DNS名稱指定;數據庫
二、主機組(host group):主機的邏輯容器,能夠包含主機和模板,但同一個組織內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用;centos
三、監控項(item):一個特定監控指標的相關的數據;這些數據來自於被監控對象;item是zabbix進行數據收集的核心,相對某個監控對象,每一個item都由"key"標識;瀏覽器
四、觸發器(trigger):一個表達式,用於評估某監控對象的特定item內接收到的數據是否在合理範圍內,也就是閾值;接收的數據量大於閾值時,觸發器狀態將從"OK"轉變爲"Problem",當數據再次恢復到合理範圍,又轉變爲"OK";
五、事件(event):觸發一個值得關注的事情,好比觸發器狀態轉變,新的agent或從新上線的agent的自動註冊等;
六、動做(action):指對於特定事件事先定義的處理方法,如發送通知,什麼時候執行操做;
七、報警升級(escalation):發送警報或者執行遠程命令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等;
八、媒介(media):發送通知的手段或者通道,如Email、Jabber或者SMS等;
九、通知(notification):經過選定的媒介向用戶發送的有關某事件的信息;
十、遠程命令(remote command):預約義的命令,可在被監控主機處於某特定條件下時自動執行;
十一、模板(template):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;模板能夠直接連接至某個主機;
十二、應用(application):一組item的集合;
1三、web場景(web scennario):用於檢測web站點可用性的一個活多個HTTP請求;
1四、前端(frontend):Zabbix的web接口;
3、實驗環境
192.168.30.116 OS:CentOS 6.4 x86_64 zabbix_server.luojianlong.com
192.168.30.117 OS:CentOS 6.4 x86_64 node1.luojianlong.com
192.168.30.119 OS:CentOS 6.4 x86_64 node2.luojianlong.com
須要的軟件包:
zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-get-2.0.8-3.el6.x86_64.rpm
zabbix-server-2.0.8-3.el6.x86_64.rpm
zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
zabbix-web-2.0.8-3.el6.noarch.rpm
zabbix-web-mysql-2.0.8-3.el6.noarch.rpm
首先安裝zabbix server端
# 設置epel源 [root@zabbix_server ~]# cat /etc/yum.repos.d/epel.repo [epel] name=epel baseurl=http://mirrors.sohu.com/fedora-epel/6/x86_64/ gpgcheck=1 gpgkey=http://mirrors.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-6 [root@zabbix_server ~]# yum -y localinstall zabbix-2.0.8-3.el6.x86_64.rpm zabbix-get-2.0.8-3.el6.x86_64.rpm zabbix-server-2.0.8-3.el6.x86_64.rpm zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm zabbix-web-2.0.8-3.el6.noarch.rpm zabbix-web-mysql-2.0.8-3.el6.noarch.rpm
在zabbix server上安裝mysql
[root@zabbix_server ~]# useradd mysql -r [root@zabbix_server ~]# tar zxvf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local/ [root@zabbix_server ~]# ln -s /usr/local/mysql-5.5.33-linux2.6-x86_64 /usr/local/mysql [root@zabbix_server ~]# cd /usr/local/mysql [root@zabbix_server mysql]# mkdir /mydata/data -p [root@zabbix_server mysql]# chown -R root.mysql ./* [root@zabbix_server mysql]# chown -R mysql.mysql /mydata/data/ [root@zabbix_server mysql]# cp support-files/my-large.cnf /etc/my.cnf [root@zabbix_server mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [root@zabbix_server mysql]# chmod +x /etc/rc.d/init.d/mysqld [root@zabbix_server mysql]# chkconfig --add mysqld [root@zabbix_server mysql]# chkconfig mysqld on [root@zabbix_server mysql]# vi /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH [root@zabbix_server mysql]# . /etc/profile.d/mysql.sh [root@zabbix_server mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ [root@zabbix_server mysql]# vi /etc/my.cnf datadir = /mydata/data innodb_file_per_table = 1 [root@zabbix_server mysql]# service mysqld start Starting MySQL...... SUCCESS!
建立zabbix數據庫,並導入表
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON zabbix.* TO zbuser@'192.168.30.%' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) [root@zabbix_server ~]# mysql -u zbuser -p123456 -h 192.168.30.116 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql [root@zabbix_server ~]# mysql -u zbuser -p123456 -h 192.168.30.116 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql [root@zabbix_server ~]# mysql -u zbuser -p123456 -h 192.168.30.116 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
修改zabbix_server.conf配置文件
[root@zabbix_server ~]# vi /etc/zabbix/zabbix_server.conf # 修改 DBHost=192.168.30.116 DBUser=zbuser DBPassword=123456
啓動zabbix_server
[root@zabbix_server ~]# service zabbix-server start Starting Zabbix server: [ OK ] [root@zabbix_server ~]# ss -anptl | grep zabbix LISTEN 0 128 :::10051 :::* users:(("zabbix_server",19539,5),("zabbix_server",19541,5),("zabbix_server",19542,5),("zabbix_server",19543,5),("zabbix_server",19544,5),("zabbix_server",19545,5),("zabbix_server",19546,5),("zabbix_server",19547,5),("zabbix_server",19548,5),("zabbix_server",19549,5),("zabbix_server",19550,5),("zabbix_server",19552,5),("zabbix_server",19554,5),("zabbix_server",19555,5),("zabbix_server",19557,5),("zabbix_server",19559,5),("zabbix_server",19562,5),("zabbix_server",19563,5),("zabbix_server",19566,5),("zabbix_server",19567,5),("zabbix_server",19569,5),("zabbix_server",19570,5),("zabbix_server",19572,5),("zabbix_server",19574,5),("zabbix_server",19576,5),("zabbix_server",19577,5),("zabbix_server",19580,5)) LISTEN 0 128 *:10051 *:* users:(("zabbix_server",19539,4),("zabbix_server",19541,4),("zabbix_server",19542,4),("zabbix_server",19543,4),("zabbix_server",19544,4),("zabbix_server",19545,4),("zabbix_server",19546,4),("zabbix_server",19547,4),("zabbix_server",19548,4),("zabbix_server",19549,4),("zabbix_server",19550,4),("zabbix_server",19552,4),("zabbix_server",19554,4),("zabbix_server",19555,4),("zabbix_server",19557,4),("zabbix_server",19559,4),("zabbix_server",19562,4),("zabbix_server",19563,4),("zabbix_server",19566,4),("zabbix_server",19567,4),("zabbix_server",19569,4),("zabbix_server",19570,4),("zabbix_server",19572,4),("zabbix_server",19574,4),("zabbix_server",19576,4),("zabbix_server",19577,4),("zabbix_server",19580,4))
修改php時區
[root@zabbix_server ~]# vi /etc/php.ini # 啓動並修改 date.timezone = Asia/Shanghai [root@zabbix_server ~]# service httpd restart
打開瀏覽器訪問http://192.168.30.116/zabbix
點擊Next
檢測都正常,Next
鏈接數據庫正常,Next
設置zabbix server 名稱端口,Next
Next
Next
登陸,默認帳號Admin,密碼:zabbix
下面開始安裝zabbix agent,先登陸node1安裝
# 設置epel源 [root@node1 yum.repos.d]# cat epel.repo [epel] name=epel baseurl=http://mirrors.sohu.com/fedora-epel/6/x86_64/ gpgcheck=1 gpgkey=http://mirrors.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-6 [root@node1 ~]# yum -y localinstall zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm
修改agent配置文件
[root@node1 ~]# vi /etc/zabbix/zabbix_agentd.conf # 修改 Server=192.168.30.116
啓動agent
[root@node1 ~]# service zabbix-agent start Starting Zabbix agent: [ OK ] [root@node1 ~]# ss -antp | grep zabbix LISTEN 0 128 :::10050 :::* users:(("zabbix_agentd",18997,5),("zabbix_agentd",18999,5),("zabbix_agentd",19000,5),("zabbix_agentd",19001,5),("zabbix_agentd",19002,5),("zabbix_agentd",19003,5)) LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",18997,4),("zabbix_agentd",18999,4),("zabbix_agentd",19000,4),("zabbix_agentd",19001,4),("zabbix_agentd",19002,4),("zabbix_agentd",19003,4))
添加監控主機
點擊Configuration裏面Hosts
點擊creat host
添加hostname ,visiable name 屬於的group,agent interfaces,而後保存
添加成功
接着,爲添加host建立item,點擊item
點擊create item
添加item名稱,類型爲agent,key選擇爲網卡eth0出去的流量,添加監控的時間段爲週一到周七天天的00:00-24:00,沒隔10分鐘採集一次數據,store value:選擇爲Delta(speed per second),後面採集到的減去前面採集到的數據,新建 NetTraffic應用,而後保存
Delta (speed per second):保存爲(value-prev_value)/(time-prev_time的計算結果,即當前值減去前一次獲取的數據值,除以當前時間戳減去前一次值獲取時的時間戳獲得的結果;若是當前值小於前一次的值,其將會被丟棄;
Delta (simple change):保存爲 (value-prev_value)的計算結果;
每新建一個item,會自動建立一個graph,能夠在Monitoring ---> Latest data下面看到
如上步驟,繼續新建一個item爲eth0入站的流量
接下來建立自定義graph,點擊configration--->host--->grap-->create graph
添加關聯的item
選擇圖形樣式
保存,在Monitoring的graph中能夠看到,剛纔新建的2個item的graph顯示在了一個graph中
建立trigger觸發器
點擊configuration-->host->node1.luojianlong-->triggers-->create trigger
添加trigger名稱
點擊add,添加表達式
指定最後一次採集的值大於1024的,點擊insert
選擇,事件類型爲High,而後保存
看到新建立的trigger
在node1上下載數據,測試trigger效果
[root@node1 ~]# wget ftp://rpmfind.net/linux/fedora-secondary/updates/20/ppc64/puppet-3.4.2-1.fc20.noarch.rpm
查看graph
發現trigger生效
下面建立media媒介,點擊Administration-->Media types-->create media type
保存,並禁用其餘media
建立用戶,用戶組
添加Tom用戶的media
定義Admin用戶的media
下面建立action,點擊Configuration-->Action-->Create action
Default operation step duration:定義隔多長時間報警升級;
Default subject:默認的發送主題;
Default message:默認發送郵件內容;
Recovery message:是否啓用恢復通知;
Recovery subject:恢復通知主題;
Recovery message:恢復通知郵件內容;
而後繼續建立,觸發action後真正要作的操昨,Operations
只要觸發一次,就向Admin用戶發郵件
觸發10次,問題尚未解決,發送給TOM,報警升級
定義conditions,選擇以前定義trigger
看到新建的action已經啓用
測試報警功能,在node1上,下載文件
[root@node1 ~]# wget http://mirrors.163.com/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD2.iso
在zabbix_server上看是否收到郵件
[root@localhost ~]# mail Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/root": 11 messages 7 new 8 unread 1 logwatch@zabbix_serv Fri Jan 10 10:45 247/9293 "Logwatch for zabbix_server.luojianlong.com (Linux)" 2 logwatch@zabbix_serv Tue Apr 15 17:36 42/1528 "Logwatch for zabbix_server.luojianlong.com (Linux)" U 3 logwatch@zabbix_serv Wed Apr 16 03:42 105/3180 "Logwatch for zabbix_server.luojianlong.com (Linux)" 4 root Wed Apr 16 08:54 1590/69736 "1234" >N 5 zabbix@localhost.loc Wed Apr 16 08:55 23/1058 "PROBLEM: Network Inbound Traffic trigger" N 6 zabbix@localhost.loc Wed Apr 16 08:56 23/1058 "PROBLEM: Network Inbound Traffic trigger" N 7 zabbix@localhost.loc Wed Apr 16 08:57 23/1058 "PROBLEM: Network Inbound Traffic trigger" N 8 zabbix@localhost.loc Wed Apr 16 08:58 22/1040 "OK: Network Inbound Traffic trigger" N 9 zabbix@localhost.loc Wed Apr 16 08:59 22/1040 "OK: Network Inbound Traffic trigger" N 10 zabbix@localhost.loc Wed Apr 16 09:00 22/1040 "OK: Network Inbound Traffic trigger" N 11 zabbix@localhost.loc Wed Apr 16 09:01 22/1040 "OK: Network Inbound Traffic trigger"
發現都到報警郵件
定義模板,點擊Configuration-->Template-->Create Template
點擊Macros,定義宏
已經建立好模板
給模板定義item
給模板建立graph
使用模板快速添加node2節點
[root@node2 ~]# yum -y localinstall zabbix-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm [root@node2 ~]# vi /etc/zabbix/zabbix_agentd.conf Server=192.168.30.116 [root@node2 ~]# service zabbix-agent start Starting Zabbix agent: [ OK ] [root@node2 ~]# ss -antpl | grep zabbix LISTEN 0 128 :::10050 :::* users:(("zabbix_agentd",10486,5),("zabbix_agentd",10488,5),("zabbix_agentd",10489,5),("zabbix_agentd",10490,5),("zabbix_agentd",10491,5),("zabbix_agentd",10492,5)) LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",10486,4),("zabbix_agentd",10488,4),("zabbix_agentd",10489,4),("zabbix_agentd",10490,4),("zabbix_agentd",10491,4),("zabbix_agentd",10492,4))
打開瀏覽器添加host
點擊Templates,選擇關聯剛纔建立的for test servers模板
發送node2已經使用了建立的模板,而且有2個item,1個graph
爲模板建立trigger
發現node2已經自動建立了trigger