1. Zabbix簡介
基於web的開源軟件,開源監控系統狀態也能夠監控網絡設備。
和nagios不一樣的是zabbix會把獲取的數據保存在數據庫中,因此zabbix須要有數據庫支持
Zabbix還能夠自動發現主機和網絡設備
支持郵件和短信告警
Zabbix大多配置均可以在web界面配置完成
官網http://www.zabbix.com/
2. 安裝zabbix
關閉iptables
關閉selinux
rpm -ivh http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm
安裝rpm包的lamp環境 yum install -y httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring
安裝zabbix服務端:yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel
/etc/init.d/zabbix-server start; /etc/init.d/zabbix-agent start
/etc/init.d/httpd start; /etc/init.d/mysqld start
mysql -uroot -p -e "create database zabbix"
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/data.sql
mysql -uroot -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix'"
3.網頁安裝zabbix
瀏覽器訪問 http://ip/zabbix, 默認會有「It is not safe to rely on the system‘s timezone settings 」這樣的警告信息,須要vim /etc/php.ini 設置 date.timezone=「Asia/Shanghai」點next
解決相關的報錯信息,點retry (vim /etc/php.ini)
輸入mysql相關信息, 首先要測試一下,若是不經過,則須要調試,測試經過後,點next
Name 寫127.0.0.1,(能夠自定義)點next,再點next,最後點finish
默認管理員帳號爲 admin:zabbix
這時會遇到「zabbix server is not running」這樣的錯誤,須要編輯一下 /etc/zabbix/zabbix_server.conf ,配置DBUser, DBPassword
4. 接入要監控的主機
在客戶端上yum install zabbix20-agent
vim /etc/zabbix_agentd.conf //更改Server=服務端ip; ServerActive=0.0.0.0:10050; Hostname=aming(自定義,但要惟一)
啓動客戶端 /etc/init.d/zabbix-agent start
服務端上命令行測試:zabbix_get -s 客戶端ip -p10050 -k "system.hostname"
在web界面下,點」configuration」 --> 「host」 --> 右上角點」Create Host」 其中host name, visible name自定義,能夠選擇groups,這裏默認便可,ip address 寫入客戶端ip
配置監控項目模板:點「templates」, 點add, 在彈出的小窗口中選擇Template OS Linux, 而後點select, 最後點save
5.自定義templates
Zabbix自帶了不少模板,模板中有不少監控項目,好比CPU、網卡、內存、進程等等。使用系統自帶模板有點太多了,因此咱們能夠自定義模板。點configuration 選擇 templates,點右上角的create template
Template name和Visible name 自定義,Groups 選擇templates, 點save
而後咱們去挑選一些項目拷貝到該模板下:好比咱們找到Template OS Linux 點一下items,選擇咱們想要的項目,而後在下面選擇copy selected to … 而後點go
Group 選擇templates, 找到剛纔咱們自定義的templates,點copy
點configuration 選擇 templates能夠看到新建的templates中已經有剛剛咱們copy的items了
咱們可使用和上面相同的方法自定義拷貝Triggers(觸發器 ),它用來設置告警的閥值,固然咱們也能夠自定義編輯它
6. 配置發郵件
yum install -y sendmail ;
mkdir -p /home/zabbix/bin
vim /home/zabbix/bin/baojing.sh //內容:
#! /bin/bash
echo "$3" |/bin/mail -s "$2" $1
chmod +x /home/zabbix/bin/baojing.sh
在zabbix_server.conf配置文件中,有參數AlertScriptsPath和ExternalScripts
AlertScriptsPath=/home/zabbix/bin/ ---用戶自定義的media types腳本
ExternalScripts=/home/zabbix/bin/ ---用戶自定義的檢查的腳本(item)
這樣才能找到你的腳本,由於你在frontend中只是輸入腳本的名稱,沒有路徑。
建立mediea types: 「Administration" -->」Media types",點擊右上角「Create Media Type"其中Description填"baojing」 或其它自定義名稱,Type選擇"Script",Script填」baojing.sh」而後點」Save」.
建立user: 「Adimistration」 --> 「Users」在右上角,選擇」Users」,點擊」Create User」, alias: test1,自定義name和lastname password:123456;group 選擇guest,回到上面點一下media,type 選擇baojing,send to 寫要發送郵件的郵箱,點add, 最後點save
建立action: 「configuration」 --> actions,右上角「Create Actions」, Name自定義,我這裏寫」baojing」,其餘默認,而後點右側的「Operations」下的「New」按鈕,「Operation Type」選擇「Send message」,「Send Message to」選擇一個或多個要發送消息的用戶組,Send to Users選擇咱們以前新增的test1, 「Send only to」選擇baojing , 點一下add
最後點save
----------------------------------------------------------------------------------------------
當Item收到新的數據時,若是有Trigger與之關聯,那麼Zabbix就會根據Item的值檢查這個trigger,得出的結果就會生成一個Event,若是有 符合要求的Action,那麼就要進行Action中定義的操做。
1、host標籤頁
一、Host name:這是在Zabbix惟一的Host屬性標識,容許字母、數字、空格和下劃線。須要注意的是,輸入的Host name,必須和這臺Host上的zabbix_agent.conf中的Hostname屬性一致,這事active checks所必須的。
二、Visible name:在List和地圖等地方顯示的名字,支持UTF-8編碼,可使用中文
三、Groups:選擇Host屬於的Host Group。注意,一個Host至少要在一個Host Group中。
四、New group:新建一個Host Group,而且這個Host講屬於這個新建的Host Group。留空就不會新建
五、A gent Interfaces:Interfaces是Zabbix 2.X的新概念,其功能是在Host上添加一個接口,相似Java中的接口。這裏能夠選擇的有Agent,SNMP,JMX和IPMI。注意,在Items中使用的Interface是不能被移除的,Remove連接是灰色的。Interface一共有下面幾種:
(1)Agent Interface: Zabbix Agent的監控接口
(2)SNMP Interface:SNMP協議的監控,使用它能夠獲取一些硬件設備的信息
(3)JMX Interface:簡單來講JMX是監控Java時使用的
(4)IPMI Interface:一種協議,通常用來獲取服務器上的硬件信息和遠程管理
(5)IP address:Host的IP地址
(6)DNS name:Host的DNS名字
(7)Connect to :這裏能夠選擇IP或者DNS,選擇IP的話,會根據輸入的IP地址去尋找Host,選擇DNS的話會根據輸入的Host name 和DNS地址去解析IP
(8)Port:Zabbix使用的ICP端口,默認使用Host的10050
(9)Default:默認使用這個interface和Zabbix Agent通信,好比在服務器上有多塊網卡時
2、template標籤頁
要將一個template關聯到host,在「type here search"輸入須要的template,根據提示選擇後單擊「add」。
Unlink:移除template和host的關聯關係,但不會移除在template上的item與host的關係
Unlink and clear:除了「unlinlk」外,在template上的item等也取消與host的關聯。
3、IPMI標籤
主要是IPMI相關的配置。
4、macros標籤頁
用於定義Host級別的Macro,這是zabbix很是棒的功能
5、host invertory標籤頁
invertory指的是host的一些硬件信息,或是資產信息,好比地理位置、CPU型號和系統版本等。
當選擇自動的時候,能夠用Item的值做爲Inventory的值,好比下面經常使用的狀況
1.system.hw.chassis[full|type|vendor|mode|serial]:默認是[full],須要root權限
2.system.hw.cpu[all|cpunum,full|maxfreq|vendor|mode|curfreq]:默認是[all,full]
3.system.hw.devices[pci|usb]:默認是[pci]
4.system.hw.macaddr[interface,short|full]:默認是[all,full],interface填的是正則匹配
5.system.sw.arch:系統架構,如i386
6.system.sw.os[name|short|full]:默認是[name]
7.system.sw.packages[package,manager,short|full]:默認是[all,all,full],package填的是正則。
若是想把Agent ping這個item的值自動做爲invertory中type值,能夠按如下步驟操做:
一、設置須要的item,並把populateds host inventory field這一欄設置爲type.
二、更新這個item時,host的invertory會把agent ping的數據做爲type的值。
6、Host group
Host group在Zabbix中是一個比較簡單的組織結構,他的功能是將一批Host放在一個組中,是查詢數據時更加便捷。在配置host group方面也很是簡單:從菜單進入「Configuration」→"Host group"選擇「Create」就能夠建一個"Host group" 在彈出的頁面上只須要制定Group的名字和須要放入這個Group的Host便可。