Zabbix簡介
本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbix 3.x乳怎。
Zabbix (音同 z?bix),是由 Alexei Vladishev 開發(fā)的一種網(wǎng)絡(luò)監(jiān)視钮呀、管理系統(tǒng)澄耍,基于 Server-Client 架構(gòu)奢米。Zabbix 的授權(quán)是屬于 GPLv2油湖。
Zabbix可用于監(jiān)視各種網(wǎng)絡(luò)服務(wù)、服務(wù)器和網(wǎng)絡(luò)機(jī)器等狀態(tài)。是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案腹侣。
Zabbix也可經(jīng)由SNMP呵扛、TCP、ICMP筐带、SSH等對目標(biāo)進(jìn)行監(jiān)視今穿。
Zabbix的系統(tǒng)構(gòu)成
Zabbix系統(tǒng)由以下各獨立模塊組成:
- Zabbix Server,服務(wù)端(以C開發(fā))伦籍。Server端通過收集SNMP和Agent發(fā)送的數(shù)據(jù)蓝晒,寫入數(shù)據(jù)庫,再通過PHP+Apache在Web端展示帖鸦;
- Zabbix Agent芝薇,客戶端(基本支持所有操作系統(tǒng)),并將監(jiān)控主機(jī)數(shù)據(jù)發(fā)送給Server作儿;
- Zabbix Frontend洛二,Web管理端(以PHP和JavaScript構(gòu)成);
- Zabbix Proxy(可選組件)攻锰。用于分布式監(jiān)控晾嘶。
Zabbix的特點
Zabbix是一個高度集成的網(wǎng)絡(luò)監(jiān)控解決方案,一個簡單的安裝包中提供多樣性功能娶吞。
- 數(shù)據(jù)收集垒迂;
- 靈活的閥值(觸發(fā)器)定義;
- 高度可配置化的告警妒蛇;
- 實現(xiàn)圖表繪制机断;
- Web監(jiān)控功能;
- 豐富的可視化選項绣夺;
- 歷史數(shù)據(jù)存儲吏奸;
- 配置簡單;
- 使用模板陶耍;
- 網(wǎng)絡(luò)發(fā)現(xiàn)奋蔚;
- Zabbix API;
- 權(quán)限管理系統(tǒng)物臂;
- 功能強(qiáng)大并易于擴(kuò)展的監(jiān)控代理旺拉。
定義
Zabbix的常用術(shù)語含義产上。
主機(jī)(host): 一臺你想監(jiān)控的網(wǎng)絡(luò)設(shè)備棵磷,用IP或域名表示。
主機(jī)組(host group): 主機(jī)的邏輯組晋涣,它包含主機(jī)和模板仪媒。
監(jiān)控項(item): 你想要接收的主機(jī)的特定數(shù)據(jù),一個度量數(shù)據(jù)。
觸發(fā)器(trigger): 一個被用于定義問題閥值和評估監(jiān)控項接收到的數(shù)據(jù)的邏輯表達(dá)式算吩。
事件(event): 單次發(fā)生的需要注意的事情留凭。
異常(problem): 一個處在異常狀態(tài)的觸發(fā)器。
動作(action): 一個對事件作出反應(yīng)的預(yù)定義的操作偎巢。
升級(escalation): 一個在動作內(nèi)執(zhí)行操作的自定義場景蔼夜。
媒介(media): 發(fā)送報警通知的手段。
通知(notification): 利用已選擇的媒體途徑把事情相關(guān)信息發(fā)送給用戶压昼。
遠(yuǎn)程命令(remote command): 預(yù)先定義好的求冷,滿足一定條件后,可在被監(jiān)控主機(jī)上自動執(zhí)行的命令窍霞。
模板(template): 一組可以被應(yīng)用到一個或多個主機(jī)上的實體的集合匠题。
應(yīng)用(application): 一組監(jiān)控項組成的邏輯分組。
Web場景(Web scenario): 利用一個或多個HTTP請求來檢查網(wǎng)站的可用性但金。
前端(frontend): Zabbix提供的Web界面韭山。
Zabbix API: Zabbix API允許你使用JSON RPC協(xié)議來創(chuàng)建、更新和獲取Zabbix對象信息或執(zhí)行任何其他的自定義的任務(wù)冷溃。
Zabbix server: Zabbix軟件監(jiān)控的核心程序钱磅,主要功能是與Zabbix proxies和agent進(jìn)行交互、觸發(fā)器計算似枕、發(fā)送告警通知续搀,并將數(shù)據(jù)集中保存等。
Zabbix agent: 部署在監(jiān)控對象上菠净,能夠主動監(jiān)控本地資源和應(yīng)用禁舷。
Zabbix proxy: 幫助Zabbix server收集數(shù)據(jù),分擔(dān)Zabbix server的負(fù)載毅往。
Zabbix進(jìn)程
Agent
zabbix agent部署在監(jiān)控的目標(biāo)上牵咙,主動監(jiān)測本地的資源和應(yīng)用(硬件驅(qū)動,內(nèi)存攀唯,處理器統(tǒng)計等)洁桌。
zabbix agent手機(jī)本地的操作信息并將數(shù)據(jù)報告給zabbix server用于進(jìn)一步處理。
zabbix agent有被動(passive)和主動(active)兩種檢查方式侯嘀。
Server
zabbix server是zabbix軟件的核心程序另凌。它通過輪詢和捕獲數(shù)據(jù),計算是否滿足觸發(fā)器條件戒幔,向用戶發(fā)送通知吠谢。
它是zabbix監(jiān)控代理和Proxy代理報告系統(tǒng)可用性和完整性數(shù)據(jù)的核心組件。zabbix server自身可以通過簡單遠(yuǎn)程檢查網(wǎng)絡(luò)服務(wù)(如Web服務(wù)器和郵件服務(wù)器)诗茎。
server是一個包含了被存儲了所有配置工坊,統(tǒng)計方面的和可操作數(shù)據(jù)的中央倉庫,它是監(jiān)控系統(tǒng)問題升級以致于激活警告管理器的zabbix中的實體。
基本的zabbix server分三個不同的組件:zabbix server王污,web前端罢吃,數(shù)據(jù)庫存儲。
zabbix的所有配置信息都存儲在服務(wù)器和web前端進(jìn)行交互的數(shù)據(jù)庫中昭齐。
zabbix server進(jìn)程是以守護(hù)進(jìn)程(Daemon)運(yùn)行的尿招。
Proxy
zabbix proxy是一個可以從一個或多個受監(jiān)控的設(shè)備設(shè)備收集監(jiān)控數(shù)據(jù),并將信息發(fā)送到zabbix server的進(jìn)程阱驾,基本上是代表server工作泊业。
所有收集的數(shù)據(jù)都在本地進(jìn)行緩存,然后傳送到proxy所屬的zabbix server啊易。
zabbix proxy是完成遠(yuǎn)程區(qū)域吁伺、分支機(jī)構(gòu)、沒有本地管理員的網(wǎng)絡(luò)的集中監(jiān)控的理想解決方案租谈。
zabbix proxy需要使用獨立的數(shù)據(jù)庫篮奄,以守護(hù)進(jìn)程的方式運(yùn)行。
Java gateway
zabbix守護(hù)進(jìn)程原生支持監(jiān)控JMX程序割去,它被稱為zabbix java gateway窟却。zabbix gateway是用Java語言寫成。
要查得一臺主機(jī)特定的JMX計數(shù)器值呻逆,zabbix server向zabbix java gateway發(fā)送請求夸赫,后者使用JMX管理API去請求遠(yuǎn)程的有關(guān)應(yīng)用。應(yīng)用不許額外安裝軟件咖城,只需要啟動時在命令行指定 -Dcom.sun.management.jmxremote
即可(是在java程序)茬腿。
每個zabbix server或zabbix agent只能配置一個java gateway。
Sender
zabbix sender是一種命令行應(yīng)用宜雀,它可以將性能數(shù)據(jù)發(fā)送到zabbix server進(jìn)行處理切平。該應(yīng)用通常用在長時間運(yùn)行的用戶腳本,用于定期發(fā)送可用性和性能數(shù)據(jù)辐董。
zabbix_sender -z zabbix -s "xxx" -k db.connections -0 43
-z :server主機(jī)
-s :受監(jiān)控主機(jī)的技術(shù)名稱
-k :監(jiān)控項的鍵
-o :要發(fā)送的值
Get
zabbix get也是一種命令行應(yīng)用悴品,用于與zabbix agent進(jìn)行通信,并從agent那里獲取所需的信息简烘。
該應(yīng)用通常被用于zabbix agent故障排除
zabbix_get -s $host -p xxx -k system.cpu.load[all,avg15]
-s --host
-p --port
-I --source-address
-k --key
-h --help
-V --version
安裝Zabbix
Zabbix安裝要求
硬件:
- 內(nèi)存苔严,最小128MB;
- 磁盤孤澎,最小256MB届氢;
- CPU,可能需要大量CPU資源亥至;
- SMS(短信)通知服務(wù)悼沈,串行通訊口(serial communication port)和串口GSM調(diào)制解調(diào)器(serial GSM modem)〗惆纾可選項絮供。
支持平臺:
- Linux;
- IBM AIX;
- FreeBSD;
- NetBSD;
- OpenBSD;
- Mac OS X;
- Solaris;
- Windows(Only Agent).
軟件:
Zabbix基于Apache Web服務(wù)器、領(lǐng)先的數(shù)據(jù)庫引擎和PHP腳本語言進(jìn)行構(gòu)建茶敏。
數(shù)據(jù)庫管理系統(tǒng):
- MySQL 5.0.3 及以上壤靶;
- Oracle 10g 及以上;
- PostgreSQL 8.1 及以上惊搏;
- SQLite 3.5及以上贮乳;
- IBM DB2 9.7 及以上。
前端:
- Apache 1.3.12 及以上恬惯;
- PHP 5.4.0及以上向拆;
PHP-Extension:
軟件 | 版本 | 備注 |
---|---|---|
gd | 2.0及以上 | PHP GD擴(kuò)展包必須支持PNG圖片 |
bcmatch | php-bcmatch | |
ctype | php-ctype | |
libXML | 2.6.15及以上 | php-xml |
xmlreader | php-xmlreader | |
xmlwrite | php-xmlwriter | |
session | php-session | |
sockets | php-net-socket | |
mbstring | php-mbstring | |
gettext | php-gettext | |
ldap | php-ldap | |
mysqli | 使用MySQL作為Zabbix后端數(shù)據(jù)庫所需的組件 | |
pgsql | 使用PostgreSQL作為Zabbix后端數(shù)據(jù)庫所需的組件 | |
sqlite3 | 使用SQLite作為Zabbix后端數(shù)據(jù)庫所需的組件 |
客戶端瀏覽器:
必須啟用Cookie和JavaScript功能。
服務(wù)器:
要求 | 描述 |
---|---|
OpenlPMI | 支持IPMI功能所需組件 |
libssh2 | 支持SSH功能 |
fping | 支持ICMP ping功能 |
libcurl | 支持Web監(jiān)控酪耳,VMware監(jiān)控及SMTP認(rèn)證 |
libiksemel | 支持Jabber功能 |
libxml2 | 支持VMware監(jiān)控 |
net-snmp | 支持SNMP監(jiān)控 |
Java網(wǎng)關(guān):
Java gateway編譯和運(yùn)行在Java 1.6 及以上版本浓恳。
數(shù)據(jù)庫容量:
Zabbix配置數(shù)據(jù)需要使用固定的磁盤空間,而這個空間不會過多增長碗暗。
Zabbix數(shù)據(jù)庫容量主要依賴于以下參數(shù):
- 每秒處理值的數(shù)量(Number of processed values per second);
- 歷史(History)數(shù)據(jù)的回收清理設(shè)置(Housekeeper);
- 趨勢(Trends)數(shù)據(jù)的回收清理設(shè)置(Housekeeper);
- 事件(Events)數(shù)據(jù)的回收清理設(shè)置(Housekeeper)颈将。
時鐘同步:
對于Zabbix穩(wěn)定運(yùn)行而言,服務(wù)獲取精確的系統(tǒng)時間是非常重要的言疗。對于所有運(yùn)行Zabbix組件的系統(tǒng)晴圾,強(qiáng)烈建議這些系統(tǒng)的時間保持同步。
ntpd
是一個臨幸的用于同步主機(jī)和其他服務(wù)器之間的時間的后臺程序噪奄。
安裝死姚、啟動、配置Zabbix
Zabbix-repo倉庫:repo.zabbix.com
該倉庫服務(wù)器同時提供yum
和apt
源碼庫勤篮。
配置源碼庫
1. 從官方下載源碼庫
#rpm -ivh http://repo.zabbix.com/zabbix/$version/rhel/7/$arch/$zabbix-release.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm
2. 手動配置zabbix.repo
vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix-Repo
baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/
gpgcheck=0
enable=1
安裝Zabbix部署包
使用MySQL數(shù)據(jù)庫安裝Zabbix Server知允、Web前端:
yum install -y zabbix-server-mysql zabbix-get
注意:此處Zabbix數(shù)據(jù)庫使用MySQL,請自行安裝MySQL叙谨。
安裝Zabbix Agent:
yum install -y zabbix-agent
安裝初始化數(shù)據(jù)庫
查看剛剛安裝的 zabbix-server-mysql:
解壓得到的sql腳本create.sql
只會在對應(yīng)的數(shù)據(jù)庫中初始化zabbix所需要的數(shù)據(jù)庫表温鸽,但是不會創(chuàng)建zabbix數(shù)據(jù)庫。所以后面我們還需要手動創(chuàng)建zabbix
數(shù)據(jù)庫手负。
rpm -ql zabbix-server-mysql
cd /usr/share/doc/zabbix-server-mysql-3.x.xx/
#有一個create.sql.gz的壓縮文件
gunzip create.sql.gz
#得到create.sql
在MySQL中創(chuàng)建zabbix數(shù)據(jù)庫:
msyql -uxxx -p
mysql>CREATE DATABASE 'zabbix' DEFAULT CHARACTER SET 'utf8';
mysql>SHOW DATABASES;
mysql>GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' identified by 'zabbix';
mysql>FLUSH PRIVILEGES;
#導(dǎo)入sql腳本
mysql -uroot -p -Dzabbix < ./create.sql
USE zabbix;
SHOW TABLES;
配置zabbix server并啟動
編輯zabbix server配置文件:
vim /etc/zabbix/zabbix_server.conf
#常會修改的參數(shù)
#數(shù)據(jù)庫配置
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
DBSocket=/var/lib/mysql/mysql.sock
#服務(wù)監(jiān)聽端口
ListenPort=10051
#服務(wù)端源IP
SourceIP=
#日志記錄方式涤垫,file使用指定文件作為日志文件,system將日志發(fā)往syslog竟终,console將日志發(fā)送控制臺
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
啟動zabbix服務(wù)端:
systemctl start zabbix-server
#此處可能由于沒有關(guān)閉SELinux而報錯
tail /var/log/zabbix/zabbix_server.log
cannot set resource limit: [13] Permission denied
#關(guān)閉SELinux
setenforce=0
vim /etc/selinux/config
SELINUX=disabled
#查看zabbix-server默認(rèn)監(jiān)聽的10051端口
netstat -nltp
安裝zabbix web
zabbix web可以安裝在單獨的主機(jī)上蝠猬,只要能連接到zabbix database所在數(shù)據(jù)庫就行。但為了方便统捶,都安裝在了server上榆芦。
zabbix web需要LAMP環(huán)境:
#可能需要自己配置PHP remi源柄粹,注意PHP及擴(kuò)展版本問題
yum install -y httpd php php-mysql php-mbstring php-gd php-bcmatch php-ldap php-xml
安裝zabbix web所需的兩個包:
yum install -y zabbix-web zabbix-web-mysql
rpm -ql zabbix-web
#zabbix-web位于/usr/share/zabbix/
編輯zabbix的前端Apach-PHP配置文件
zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf:
vim /etc/httpd/conf.d/zabbix.conf
#需修改時區(qū)
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
#添加httpd的虛擬主機(jī)訪問zabbix web
<VirtualHost IP:80>
servername zabbix.me
documentroot /usr/share/zabbix
默認(rèn)數(shù)據(jù)
</VirtualHost>
#開啟httpd服務(wù)
systemctl start httpd
添加hosts后就可以利用域名訪問zabbix-web端了。
echo -e "192.168.1.9 \t zabbix.me" >> /etc/hosts
在web端配置zabbix
在瀏覽器訪問 http://zabbix.me 初始化zabbix配置匆绣。
配置好后就需要用賬號密碼進(jìn)行登錄zabbix-web端dashboard驻右。
登錄進(jìn)Dashboard后堪夭,可修改語言為中文。
如果你的Zabbix無法看到中文選項拣凹,那么可能需要如下操作:
vim /usr/share/zabbix/include/locales.inc.php
#修改
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
如果又遇到中文亂碼的問題森爽,則可以從windows中挑選一些好看的中文字體,將對應(yīng)字體文件放置到zabbix web的字體目錄中嚣镜。
windows中字體后綴.TTF爬迟,Linux中為.ttf。注意修改大小寫菊匿。
cd /usr/share/zabbix/fonts
#只有一個默認(rèn)字體 graphfont.ttf
#將新字體放置到此目錄下
#修改配置文件中對應(yīng)字體名稱
vim /usr/share/zabbix/include/define.inc.php
#將默認(rèn)字體名字修改為字體目錄下 你需要的字體名
define('ZBX_FONT_NAME', 'graphfont');
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
#栗子雕旨,如perpetua字圖PER.ttf
define('ZBX_FONT_NAME', 'PER');
define('ZBX_GRAPH_FONT_NAME', 'PER'); // font file name
Zabbix Web界面菜單:
- 管理菜單,用于管理zabbix自身及zabbix相關(guān)設(shè)置捧请;
- 配置菜單凡涩,用于配置監(jiān)控相關(guān)設(shè)置;
- 報表菜單疹蛉,為管理員生成一段時間內(nèi)的監(jiān)控統(tǒng)計信息活箕;
- 檢測中菜單,用于查看被監(jiān)控的相關(guān)數(shù)據(jù)可款;
- 資產(chǎn)記錄菜單育韩,查看被監(jiān)控的主機(jī)有哪些,以及相關(guān)的資產(chǎn)信息闺鲸。
安裝zabbix agent
Agent端安裝也非常方便筋讨,直接在Client上安裝兩個包即可。
#配置zabbix源
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm
#aliyun鏡像
#rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#安裝
yum install -y zabbix-agent zabbix-sender
rpm -ql zabbix-agent
#/etc/zabbix/zabbix_agentd.conf
zabbix的“主動模式”與“被動模式”都在/etc/zabbix/zabbix_agentd.conf
中定義摸恍。
配置最常用的agent端:
vim /etc/zabbix/zabbix_agentd.conf
####GENERAL PARAMETERS 通用配置
PidFile=
LogFile=
####Passive checks related 被動模式配置
#指定允許哪臺服務(wù)器拉取本機(jī)數(shù)據(jù)
Server=
#指定agent端工作于被動模式時監(jiān)聽的端口號
ListenPort=10050(默認(rèn))
#指定agent端工作與被動模式時所監(jiān)聽的IP地址
ListenIP=0.0.0.0(默認(rèn))
#指定預(yù)生成的agent進(jìn)程數(shù)量
StartAgents=
####Active checks related
#agent工作于主動模式時悉罕,將消息推送到哪臺Server上
ServerActive=IP1,IP2...
#指定當(dāng)前主機(jī)主機(jī)名,Server端通過對應(yīng)的主機(jī)名識別主機(jī)
Hostname=
#指明agent端每隔多少秒將采集的數(shù)據(jù)發(fā)往Server端
RefreshActiveChecks=
#栗子
Server=192.168.1.9
ServerActive=192.168.1.9
Hostname=zabbix.me
啟動zabbix-agent
systemctl zabbix-agent start
#查看狀態(tài),默認(rèn)端口10050
netstat -nltp
快速開始zabbix-web菜單
zabbix-web界面中包含有監(jiān)測中立镶、資產(chǎn)記錄壁袄、報表、配置媚媒、管理五項菜單嗜逻。
登錄和配置用戶
在瀏覽器輸入 zabbix.me (修改hosts),登錄zabbix-web后臺缭召。
默認(rèn)用戶名:Admin栈顷,密碼:zabbix逆日。它是超級管理員。
為了防止暴力破解和詞典攻擊萄凤,連續(xù)嘗試五次登錄失敗室抽,zabbix界面將暫停30秒。
可以通過管理(Management)菜單下的用戶(User)蛙卤,新建狠半、查看噩死、管理用戶信息颤难。
zabbix在安裝后自定義了兩個用戶:
- Admin用戶是zabbix的超級管理員,擁有所有權(quán)限已维;
- Guest用戶是一個特殊的默認(rèn)用戶行嗤。如果你沒有登錄,你訪問zabbix的時候其實就是“guest”權(quán)限垛耳。guest默認(rèn)沒有任何權(quán)限栅屏。
你可以創(chuàng)建一個用戶(user)并將其加入特定的用戶組(Group)以提升用戶權(quán)限。
新建主機(jī)
zabbix中的主機(jī)(host)是一個你想要監(jiān)控的網(wǎng)絡(luò)實體(物理的堂鲜、虛擬的)栈雳。對于主機(jī)的定義非常靈活。它可以是一臺物理服務(wù)器缔莲,一個網(wǎng)絡(luò)交換機(jī)孕索,一個虛擬機(jī)或一些應(yīng)用苛秕。
可以通過配置(Configuration)菜單下的主機(jī)(Host),查看已配置主機(jī)相關(guān)信息。
默認(rèn)有一個“Zabbix Server”的定義好的主機(jī)欠动。
點擊創(chuàng)建主機(jī)(Create host)后,填寫對應(yīng)的主機(jī)名稱祠肥、添加對應(yīng)的主機(jī)群組纸镊,zabbix-agent的IP地址和端口,以及其它信息檐晕。
新建監(jiān)控項
監(jiān)控項是zabbix中獲得數(shù)據(jù)的基礎(chǔ)暑诸。沒有監(jiān)控項,就沒有數(shù)據(jù)辟灰。因為一個主機(jī)中只有監(jiān)控項定義了”單一的指標(biāo)“或者”需要獲得的數(shù)據(jù)“屠列。
可以通過配置(Configuration)菜單下的主機(jī)(Item),找到需要配置監(jiān)控項(Item)的主機(jī)伞矩,然后創(chuàng)建監(jiān)控項笛洛。
主機(jī)默認(rèn)是沒有定義任何監(jiān)控項的。
填寫對應(yīng)的監(jiān)控名稱乃坤、類型苛让、鍵值沟蔑、主機(jī)接口、信息類型等等信息狱杰。
可在監(jiān)控(Monitoring)菜單中最新數(shù)據(jù)(Latest data)查看之前定義的監(jiān)控項和獲得的值瘦材。
還可選擇以圖形(Graph)或值來查看監(jiān)控項的相關(guān)信息。
新建觸發(fā)器
監(jiān)控項只用于手機(jī)數(shù)據(jù)仿畸。如果要自動評估收到的數(shù)據(jù)食棕,我們則需要定義觸發(fā)器(trigger)。
觸發(fā)器包含了一個表達(dá)式错沽,這個表達(dá)式定義了數(shù)據(jù)的可接受的閾值級別簿晓。
如果收到的數(shù)據(jù)超過了定義好的級別,觸發(fā)器將被觸發(fā)千埃,或者進(jìn)入異常狀態(tài)(problem)憔儿。
從而引起我們的注意,讓我們知道有問題發(fā)生放可。如果數(shù)據(jù)再次恢復(fù)到合理范圍谒臼,觸發(fā)器將會轉(zhuǎn)到正常狀態(tài)(OK)。
可以通過配置(Configuration)菜單下的主機(jī)(Hosts)選項耀里,找到某主機(jī)的觸發(fā)器(Triggers)創(chuàng)建觸發(fā)器蜈缤。
填寫對應(yīng)的觸發(fā)器名稱、表達(dá)式冯挎、描述等信息底哥。
獲取問題通知
當(dāng)監(jiān)控項收集了數(shù)據(jù)后,觸發(fā)器會根據(jù)異常狀態(tài)觸發(fā)報警织堂。根據(jù)一些報警機(jī)制叠艳,它也會通知我們一些重要的事情,而不是直接在zabbix-web端進(jìn)行查看易阳。
這就是通知(Notification)的功能附较。
E-mail是最常用的異常通知發(fā)送方式。當(dāng)然還有SMS(短信)潦俺,腳本等媒體類型拒课。
可以通過管理(Administration)菜單中的報警媒體類型(Media types),點擊預(yù)定義媒體類型列表中的Email事示,來配置Email早像。
為了建立一個通知,我們需要在配置菜單下動作中肖爵,創(chuàng)建動作(Create action)卢鹦。
一旦滿足了觸發(fā)器的條件,變回觸發(fā)執(zhí)行動作劝堪。如收到E-mail等...
新建模板
如果我們配置上前臺主機(jī)冀自,一些自動化操作會帶來更多便利性揉稚。沒錯,模板(templates)功能就可以實現(xiàn)熬粗。
模板允許對有用的監(jiān)控項搀玖、觸發(fā)器和其他對象進(jìn)行分組,只需要一步就可以對監(jiān)控主機(jī)應(yīng)用模板驻呐,已達(dá)到反復(fù)重用的目的灌诅。
當(dāng)一個模板鏈接到一個主機(jī)后,主機(jī)會繼承這個模板中的所有對象含末。簡單而言猜拾,一組預(yù)先定義好的檢查會被快速應(yīng)用到主機(jī)上。
Zabbix為各種操作系統(tǒng)答渔、設(shè)備以及應(yīng)用準(zhǔn)備好了一些預(yù)定義的模板关带。你可以快速部署使用他們侥涵。
但是請注意沼撕,一些模板需要根據(jù)你的實際情況和使用環(huán)境進(jìn)行適當(dāng)俄調(diào)整。 比如芜飘,一些檢查項是不需要的务豺,一些輪詢周期過于頻繁等。
在配置菜單下的模板(Templates)下嗦明,點擊創(chuàng)建模板(Create template)笼沥。填寫對應(yīng)的模板名稱,群組等信息娶牌。
創(chuàng)建模板完畢后奔浅,可將模板鏈接到主機(jī)。之后诗良,模板及其所有對象被添加到了主機(jī)汹桦。
配置
主機(jī)和主機(jī)組
一般來講,zabbix主機(jī)是指你希望監(jiān)控的那些設(shè)備鉴裹。如服務(wù)器舞骆、工作站、交換機(jī)等径荔。
創(chuàng)建主機(jī)是使用zabbix過程的首要任務(wù)督禽。
配置一臺主機(jī)
配置--主機(jī)--創(chuàng)建主機(jī)--填寫相關(guān)參數(shù)信息。
可以在已經(jīng)存在的主機(jī)上使用 Clone或Full Clone創(chuàng)建一個新主機(jī)总处。
Clone將保留所有的主機(jī)參數(shù)和模板鏈接狈惫;
Full Clone將額外保留指數(shù)實體(應(yīng)用集、監(jiān)控項鹦马、觸發(fā)器胧谈、視圖玖院、規(guī)則、Web場景)第岖。
新建主機(jī)下:
- 主機(jī)(Host):包含了通用的主機(jī)屬性难菌;
- 模板(Template):允許將模板鏈接誒到主機(jī),所有實體將從模板繼承蔑滓;
- IPMI:包含IPMI管理屬性郊酒;
- 宏(Macros):允許定義主機(jī)級別的用戶宏;
- 主機(jī)資產(chǎn)記錄(Host inventory):允許為主機(jī)收工輸入庫存信息键袱;
- 允許你請求與主機(jī)的加密的連接燎窘。
資產(chǎn)管理(Inventory)
你可以將聯(lián)網(wǎng)設(shè)備的資產(chǎn)信息保存在zabbix里。
資產(chǎn)信息實在配置主機(jī)時人工錄入建立的資產(chǎn)信息數(shù)據(jù)蹄咖,或者通過使用某些自動填充選項完成的錄入褐健。
構(gòu)建資產(chǎn)庫:
- 手動模式: 在配置一臺主機(jī)的時候,手動輸入資產(chǎn)信息澜汤;
- 自動模式: 在配置主機(jī)的時候蚜迅,選擇自動。
之后便可以在資產(chǎn)記錄菜單中的概述俊抵,主機(jī)項中查看相關(guān)信息谁不。
批量更新(Mass update)
有時候可能需要一次更改多個主機(jī)的某些屬性,使用批量更新(mass update)功能來代替打開每個主機(jī)進(jìn)行編輯徽诲。
可批量處理主機(jī)刹帕、模板、IPMI谎替、資產(chǎn)偷溺、加密相關(guān)信息。
監(jiān)控項(Items)
監(jiān)控項是從主機(jī)收集的數(shù)據(jù)信息钱贯。
配置主機(jī)后挫掏,需要添加一些監(jiān)控項以開始獲取數(shù)據(jù)∨缫ǎ快速添加多個監(jiān)控項的一種方法是將預(yù)定義的模板附加到主機(jī)砍濒。
在單個監(jiān)控項中,可指定從主機(jī)收集哪些數(shù)據(jù)信息硫麻。
為此爸邢,可使用監(jiān)控項key。 如system.cpu.load將收集處理器負(fù)載的數(shù)據(jù)拿愧。
要給 key 指定更過參數(shù)杠河,請在后面添加方括號[]。 如system.cpu.load[avg5], 返回最近5分鐘的CPU負(fù)載平均值券敌。
創(chuàng)建一個監(jiān)控項
可在主機(jī)中新建一個監(jiān)控項唾戚。
不支持的監(jiān)控項:如果由于某種原因無法檢索該值,則該監(jiān)控項可能不被支持待诅。這些監(jiān)控項仍然以固定的間隔重新檢查叹坦。
監(jiān)控項的key:
- key名稱允許使用字符: 0-9a-zA-Z_-.
- key參數(shù),用 逗,號 分隔: xxx[par1,par2...]
- key參數(shù)也可以為空卑雁,此時使用默認(rèn)值: key
- key參數(shù)帶引號募书,則允許任何Unicode字符,如果包含雙引號則需要 \反斜杠 轉(zhuǎn)義
- key參數(shù)是一個數(shù)組测蹲,它需要包含在方括號中
自定義間隔(Custom intervals)
創(chuàng)建關(guān)于監(jiān)控項的自定義時間規(guī)則莹捡。
靈活間隔被設(shè)計為重新定義默認(rèn)監(jiān)控項的的更新間隔,但調(diào)度間隔用于指定獨立執(zhí)行的檢查計劃扣甲。
靈活的間隔(Flexible intervals):允許重定義特定時間段的默認(rèn)間隔篮赢。
- 間隔(Interval): 指定時間段的更新間隔;
- 期間(Period): 靈活間隔有效的時間段琉挖;
- 舉個栗子: 60(interval), 1-7,00-24(period)启泣。監(jiān)控項每隔60s檢查一次。
調(diào)度間隔(Scheduling intervals):用于在特定時間檢查監(jiān)控項粹排。
調(diào)度間隔定義為种远, md<filter>wd<filter>h<filter>m<filter>s<filter>
涩澡。
- md: month days(1-31)
- wd: week days(1-7)
- h: hours(0-23)
- m: minutes(0-59)
- s: seconds(0-58)
- <filter>: 指定其前綴的值----[from-to/step]顽耳。
其實類似于Linux中定時任務(wù)的寫法,只不過這里把單位(md,wd,h,m,s)寫在了數(shù)值的前面妙同。
舉個栗子:
md1-15 #1-15號
wd3 #星期三
h0-12 #上半天
m1,3,5,7,9 #每個1,3,5,7,9分鐘
s/10 #每個10s
#組合體
wd1-5h9-18m/10 #每個工作日的上班時間每個10分鐘
監(jiān)控項類型(Items type)
監(jiān)控項類型包含從系統(tǒng)獲取數(shù)據(jù)的多種方式射富。每個監(jiān)控項類型都有一組自己支持的監(jiān)控項key和所需的參數(shù)。
zabbix提供的監(jiān)控項類型:
- zabbix代理檢查(agent checks)
- SNMP代理檢查
- SNMP traps
- IPMI檢查
- 簡單檢查(simple checks)
- VMware監(jiān)控(monitoring)
- 日志文件監(jiān)控
- 計算監(jiān)控項(Calculated items)
- zabbix內(nèi)部檢查(internal checks)
- SSH檢查
- Telnet檢查
- 外部檢查(External checks)
- 匯總檢查(Aggregate checks)
- 捕捉器監(jiān)控項(Trapper items)
- JMX監(jiān)控
- ODBC監(jiān)控
zabbix代理(zabbix agent):
這些檢查與zabbix代理進(jìn)行通信實現(xiàn)數(shù)據(jù)的采集粥帚。
- zabbix agent-passive: 被動模式胰耗,Server向Agent索要數(shù)據(jù);
- zabbix agent-active: 主動模式芒涡,Agent主動上報數(shù)據(jù)給Server柴灯。
可支持的監(jiān)控項,可在新建監(jiān)控項是在鍵值里面查看费尽。
SNMP代理(SNMP agent):
在啟用SNMP的設(shè)備(如打印機(jī)赠群,交換機(jī),路由器...)上使用SNMP監(jiān)控旱幼,為了能夠監(jiān)控SNMP代理在這些設(shè)備上提供的數(shù)據(jù)查描,zabbix服務(wù)器初始化配置時必須具有SNMP支持。
僅通過UDP協(xié)議執(zhí)行SNMP檢查。
配置SNMP監(jiān)控:
- 使用SNMP接口為設(shè)備創(chuàng)建一個主機(jī)冬三;
- 找出要監(jiān)控項目的SNMP字符串匀油;
- 創(chuàng)建一個監(jiān)控項。
IPMI檢查:
你可以在zabbix中監(jiān)控 智能平臺管理接口(IPMI) 設(shè)備的運(yùn)行狀況和可用性勾笆。
要執(zhí)行IPMI檢查敌蚜,zabbix服務(wù)器必須首先配置IPMI支持。
簡單檢查:
簡單檢查通常用于遠(yuǎn)程無代理監(jiān)控服務(wù)窝爪。
日志文件監(jiān)控:
zabbix可用于集中監(jiān)控和分析 具有/不具有 日志轉(zhuǎn)動能力的日志文件钝侠。
當(dāng)日志文件包含某些字符串或字符串模式時,通知信息可用于警告用戶酸舍。
計算監(jiān)控項:
計算監(jiān)控項是創(chuàng)建虛擬數(shù)據(jù)源的一種方式帅韧。這些值將根據(jù)算術(shù)表達(dá)式定期計算。所有計算都由Server完成啃勉。
內(nèi)部檢查:
內(nèi)部檢查可以監(jiān)控zabbix的內(nèi)部檢查忽舟。即Server或Agent Server的運(yùn)行情況。
SSH檢查:
運(yùn)行SSH檢查是作為無代理監(jiān)控的淮阐,SSH檢查不需要zabbix代理叮阅。
執(zhí)行SSH檢查zabbix服務(wù)器必須初始化配置為SSH2支持。
SSH檢查提供兩種身份驗證方法泣特,一種是用戶/密碼浩姥,另一種是基于密鑰文件。
zabbix SSH 密鑰配置:
vim /etc/zabbix/zabbix_server.conf
#SSHKeyLocation=
SSHKeyLocation=/home/zabbix/.ssh
usermod -m -d /home/zabbix zabbix
chown zabbix:zabbix /home/zabbix
chmod 700 /home/zabbix
cd /home/zabbix && su zabbix
ssh-keygen -t rsa
外部檢查:
外部檢查是由zabbix Server通過運(yùn)行shell腳本或二進(jìn)制的檢查状您。
外部檢查不需要再被監(jiān)控的主機(jī)上運(yùn)行任何代理勒叠。
匯總檢查:
在匯總檢查中,zabbix通過直接從數(shù)據(jù)庫中查詢監(jiān)控信息膏孟,然后進(jìn)行信息聚合眯分。
聚合檢查不需要再被監(jiān)控的主機(jī)上運(yùn)行任何代理。
捕捉器監(jiān)控項:
捕捉器監(jiān)控項接收傳入的數(shù)據(jù)柒桑,而不是查詢它弊决。對于想要推送到zabbix的任何數(shù)據(jù)都是適用的。
要使用捕捉器監(jiān)控項魁淳,需要在zabbix中建立一個捕捉器監(jiān)控項飘诗,將數(shù)據(jù)送給zabbix。
JMX監(jiān)控項:
JMX監(jiān)控可用于監(jiān)視Java應(yīng)用程序的JMX計數(shù)器界逛。
JMX監(jiān)視器以zabbix守護(hù)進(jìn)程方式運(yùn)行昆稿,名為zabbix java gateway。
ODBC監(jiān)控:
ODBC監(jiān)控對應(yīng)于zabbix web管理端中的數(shù)據(jù)庫監(jiān)控器監(jiān)控項類型仇奶。
ODBC是用于訪問 數(shù)據(jù)庫管理系統(tǒng)(DBMS) 的C語言中間件API貌嫡。
zabbix可以查詢ODBC支持的任何數(shù)據(jù)庫比驻。為了實現(xiàn)監(jiān)控,zabbix不直接連接到數(shù)據(jù)庫岛抄,而是使用ODBC中設(shè)置的ODBC接口和驅(qū)動别惦。
該功能允許為多個目的更加有效地監(jiān)控不同的數(shù)據(jù)庫。
歷史與趨勢
歷史與趨勢是zabbix中存儲數(shù)據(jù)的兩種方式夫椭。
歷史保持每個收集的值掸掸,而趨勢是每小時的平均信息。
建議保持的歷史數(shù)據(jù)盡可能少蹭秋,但可以保留更多的趨勢數(shù)據(jù)扰付。
用戶自定義參數(shù)(user parameter)
有時你想運(yùn)行一個代理檢查,但它不是zabbix預(yù)定義的仁讨。這時就能用到用戶參數(shù)羽莺。
用戶參數(shù)是由zabbix代理之星的命令,最多可以返回512KB的數(shù)據(jù)洞豁。
key 是唯一的盐固。
用戶參數(shù)用法:
UserParameter=<key>,<command>
#栗子
UserParameter=ping,echo 1
#使用ping鍵為一個監(jiān)控項返回 1
#復(fù)雜栗子
UserParameter=mysql.ping,mysqladmin -uroot -ppwd ping | grep -c 'alive'
#mysqld狀態(tài)為alive返回1,否則0
#靈活的用戶參數(shù)
UserParameter=key[*],command
#[*]定義該key接受括號內(nèi)的參數(shù)
#栗子
UserParameter=ping[*],echo $1
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c 'alive'
#mysql.ping[zabbix,passwd]
UserParameter=wc[*],grep -c "$2" $1
#wc[/etc/passwd,root]
用戶自定義參數(shù)擴(kuò)展zabbix代理:
是將key添加到被監(jiān)控的主機(jī)哦丈挟!
#編寫命令--SQL查詢總數(shù)
mysqladmin -uxxx -pxxx status | cut -f4 -d":" | cut -f1 -d"S"
#將命令添加到zabbix_agentd.conf
vim /etc/zabbix/zabbix_agentd.conf
#找到如下字段
### Option: UserParameter
UserParameter=mysql.totalquery,mysqladmin -uroot -pxxx status | cut -f4 -d":" | cut -f1 -d"S"
#mysql.totalquery這個key是唯一的標(biāo)識符
#測試此參數(shù)
##測試參數(shù)可用與否很重要哈
zabbix_agentd -t mysql.totalquery
#重啟zabbix-agent刁卜,將重新加載配置
zabbix_get -s $host -k mysql.totalquery
可加載模塊(loadable modules)
可加載模塊提供了一種關(guān)于zabbix性能擴(kuò)展的選項。
可加載模塊基本上只zabbix守護(hù)程序使用的共享庫曙咽,并在啟動時加載蛔趴。
可加載模塊具有很多優(yōu)點,卓越的性能和可實現(xiàn)任何邏輯的能力例朱,更重要的是使用和共享了zabbix模塊的開發(fā)能力孝情。
windows性能計數(shù)器(windows perfomance counter)
使用perf_counter[]key有效的監(jiān)控windows性能計數(shù)器
批量更新(mass update)
使用批量更新功能,可一次更改多個監(jiān)控屬性茉继。
值映射(value mapping)
對于接收值更人性化的表示咧叭,可以使用包含數(shù)值和字符串之間的映射的值映射。
如:
- 0 ---> error
- 1 ---> true
- F ---> Full
- D ---> Differential
- I ---> Incremental
- ...
應(yīng)用集(Application)
應(yīng)用集對邏輯組中的監(jiān)控項進(jìn)行分組烁竭。
如,對MongoDB的可用性吉挣,空間派撕,負(fù)載,慢查詢睬魂,執(zhí)行命令...终吼,可歸于 MongoDB應(yīng)用于中。
隊列(queue)
隊列顯示正在等待刷新的監(jiān)控項氯哮。
隊列只是一個邏輯表達(dá)的數(shù)據(jù)际跪。
隊列顯示的統(tǒng)計信息是zabbix服務(wù)器性能是否健康的指標(biāo)。
在 管理--隊列 下對去隊列。
值緩存(value cache)
為了計算觸發(fā)表達(dá)式姆打,以及讓計算/聚合監(jiān)控項和一些宏更快良姆,zabbix服務(wù)器支持值的緩存選項。
在內(nèi)存中的緩存可用于訪問歷史數(shù)據(jù)幔戏,而不用之間調(diào)用數(shù)據(jù)庫玛追。如果緩存中不存在歷史值,則從數(shù)據(jù)庫請求缺少的值闲延,并相應(yīng)地跟新緩存痊剖。
要啟用值緩存功能,修改zabbix_server.conf中可選的ValueCacheSize參數(shù)垒玲。
觸發(fā)器(Trigger)
觸發(fā)器是評估有項目采集的數(shù)據(jù)并表示當(dāng)前系統(tǒng)狀況的邏輯表達(dá)式陆馁。
觸發(fā)器表達(dá)式允許定義一個什么狀況的數(shù)據(jù)是“可接受”的閾值。如果超過了可接受狀態(tài)合愈,則觸發(fā)器會被觸發(fā)氮惯。
配置一個觸發(fā)器(configuring a trigger)
在主機(jī)里面配置觸發(fā)器。
觸發(fā)器表達(dá)式(trigger expression)
一個簡單有效的表達(dá)式看起來像:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
#如
{192.168.1.7:agent.ping.time()}=0
函數(shù)參數(shù)(function parameters):
大多數(shù)數(shù)字型的函數(shù)接受秒數(shù)來作為參數(shù)想暗。
#600s內(nèi)所有值的總和
sum(600)
#隨后5個值總和
sum(#5)
avg()
count()
last()
min()
max()
#5m 可被 300s 代替
#1k 代表 1024bytes
運(yùn)算符(operators):
優(yōu)先級 | 運(yùn)算符 | 定義 |
---|---|---|
1 | - | 負(fù)號(minus) |
2 | not | 邏輯非(NOT) |
3 | *, / | 乘妇汗,除 |
4 | +, - | 加,減 |
5 | <, <=, >, >= | - |
6 | =, <> | 相等说莫,不等于 |
7 | and | 邏輯與 |
8 | or | 邏輯或 |
觸發(fā)器示例:
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or {www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2
{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100k
{$url1:net.tcp.service[smtp].last()}=0 and {$url2:net.tcp.service[smtp].last()}=0
{$host:icmpping.count(30m,0)}>5
{$host:system.cpu.load[all,avg1].min(5m)}>2 and {$hsot:system.cpu.load[all,avg1].time()}>000000 and {$host:system.cpu.load[all,avg1].time)()}<060000
...
滯后(Hysteresis):
有時候需要一個觸發(fā)器狀態(tài)OK和PROBLEM之間的間隔杨箭,而不是簡單的閾值。
要做到這一點储狭,我們首先定義一個PROBLEM事件的觸發(fā)器表達(dá)式互婿,然后為OK選擇 ‘Recovery expression’,并未OK事件書如不同的表達(dá)式
如:
#Problem expression
{server:temp.last()}>20
#Recovery expression
{server:temp.last()}<=15
#兩者之間便有了幾個滯后值
觸發(fā)器依賴(trigger dependency)
有時候辽狈,一臺主機(jī)的可用性取決于另一臺主機(jī)慈参。如一臺路由器后的上網(wǎng)設(shè)備。
這就是主機(jī)之間某些依賴關(guān)系可能有用的地方刮萌,依賴關(guān)系設(shè)置的通知可能會被抑制驮配,而只發(fā)送根本問題的通知。
zabbix中觸發(fā)器的依賴着茸,一個觸發(fā)器可能有多個依賴于它的觸發(fā)器壮锻。
路由器和路由器后的Server同時宕機(jī),如果有依賴關(guān)系涮阔,則zabbix不會執(zhí)行服務(wù)器的觸發(fā)動作猜绣。
值得注意的是,如果觸發(fā)器所依賴的觸發(fā)器被禁用敬特,則次觸發(fā)器的事件和動作將不會被抑制掰邢。
批量更新
使用批量更新牺陶,可一次更改一些觸發(fā)器的某些屬性。
觸發(fā)器嚴(yán)重性(trigger severity)
觸發(fā)器嚴(yán)重性定義了觸發(fā)器的重要程度:
- 未分類(not classified), 灰色
- 信息(information), 淡藍(lán)
- 警告(warning), 黃色
- 一般嚴(yán)重(average), 橙色
- 嚴(yán)重(High), 淡紅
- 災(zāi)難(disaster), 紅色
自定義觸發(fā)器嚴(yán)重性(customising trigger)
在 管理 -- 一般 -- 觸發(fā)器嚴(yán)重性辣之,里面自定義觸發(fā)器嚴(yán)重性掰伸。
預(yù)測觸發(fā)功能(predictive trigger function)
有時候有即將到來的問題的跡象≌倮茫可以發(fā)現(xiàn)這些跡象碱工,以便提前采取行動,以減小影響奏夫。
zabbix具有基于歷史數(shù)據(jù)預(yù)測受監(jiān)視系統(tǒng)的未來行為的工具怕篷,這些工具通過預(yù)測觸發(fā)功能實現(xiàn)。
事件標(biāo)簽(event tag)
在zabbix中可以自定義事件標(biāo)簽酗昼,在觸發(fā)器級別上定義事件標(biāo)簽廊谓。在事件標(biāo)簽定以后,相應(yīng)的新事件被標(biāo)記為時間標(biāo)簽數(shù)據(jù)麻削。
在擁有自定義時間標(biāo)簽的情況下蒸痹,可以變得更加靈活。
例如:
- 識別日志文件中的問題并單獨關(guān)閉他們呛哟;
- 用它來過濾通知叠荠;
- 查看前端的事件標(biāo)簽信息;
- 從項目值中提取的信息作為標(biāo)簽值扫责;
- 在通知中更好地識別問題榛鼎;
- 通過使用模板級別的標(biāo)簽來建華配置任務(wù);
- 使用低級別發(fā)現(xiàn)的標(biāo)簽創(chuàng)建觸發(fā)器鳖孤。
事件(Events)
zabbix可以生成一下幾種類型的事件:
- trigger events-觸發(fā)器事件者娱;
- discovery events-發(fā)現(xiàn)事件;
- auto registration events-自動注冊事件苏揣;
- internal events-內(nèi)部事件黄鳍;
事件以時間戳,并可以發(fā)送Email等基礎(chǔ)動作平匈。
在 監(jiān)控-問題 里面查看信息信息框沟。
觸發(fā)器事件生成(trigger events generation)
觸發(fā)器狀態(tài)的變化是事件最常見和最重要的來源。每次觸發(fā)器的狀態(tài)改變時吐葱,都會生成一個事件街望。
改時間包含了觸發(fā)器狀態(tài)變更的詳細(xì)信息、發(fā)生時間以及信息的狀態(tài)弟跑。
觸發(fā)器會創(chuàng)建兩種類型的事件:問題(problem)和正常(OK)
手動關(guān)閉問題事件(manual closing of problems)
當(dāng)觸發(fā)器狀態(tài)從“問題(problem)”變成“正常(OK)”時,很難判斷是通過觸發(fā)器表達(dá)式的方式解決防症。這時就需要手動解決孟辑。
只有在觸發(fā)器中啟用 “允許手動關(guān)閉” 選項哎甲,問題事件才可以被手動關(guān)閉。
其他事件來源(other event source)
zabbix定期掃描網(wǎng)絡(luò)發(fā)現(xiàn)規(guī)則中定義的IP范圍饲嗽,可以為每個規(guī)則單獨配置檢查頻率炭玫。一旦發(fā)現(xiàn)主機(jī)或服務(wù),就會生成一個發(fā)現(xiàn)事件貌虾。
zabbix可以生成以下事件:
Service Up/Down
Host Up/Down
Service Discovered/Lost
Host Discovered/Lost
事件關(guān)聯(lián)(event correlation)
通常吞加,在zabbix中正常事件會關(guān)閉所有的問題事件,但在某些情況下需要更細(xì)致的方法尽狠∠魏可以根據(jù)事件標(biāo)簽關(guān)聯(lián)問題事件。
如袄膏,當(dāng)監(jiān)控日志文件時践图,在日志文件中想要發(fā)現(xiàn)某些問題,并將它們單獨關(guān)閉沉馆,而不是一起關(guān)閉码党。
可視化(visualisation)
圖形(graphs)
大量的監(jiān)控數(shù)據(jù)被采集到zabbix中,如果能用可視化的表現(xiàn)形式來查看斥黑,那就直觀和容易多了揖盘。
zabbix為用戶提供了如下圖形:
- 監(jiān)控項數(shù)據(jù)的內(nèi)置簡單圖形 “simple graphs”;
- 創(chuàng)建更復(fù)雜的自定義圖形 “customised graphs”锌奴;
- 特定圖形 "ad-hosc graphs"快速訪問幾個監(jiān)控項的數(shù)據(jù)比較兽狭。
簡單圖形(simple graphs):
zabbix提供的簡單圖形,用來可視化顯示監(jiān)控項采集到的數(shù)據(jù)缨叫。并不需要配置就可以查看椭符。
通過 監(jiān)控-最新數(shù)據(jù)-圖形 來展示圖形。
自定義圖形(customised graphs):
自定義圖形耻姥,提供定制功能销钝。這就有點厲害了。這個是手動配置的琐簇。
可以為單個主機(jī)蒸健、多個主機(jī)、單個模板婉商、多個模板創(chuàng)建自定義圖形似忧。
在 配置-主機(jī)-圖形-創(chuàng)建圖形 里編輯圖形屬性;
圖形編輯后可點擊預(yù)覽丈秩。
特設(shè)圖形(ad-hoc graphs):
簡單圖形和自定義圖形都不允許快速創(chuàng)建多個監(jiān)控項目數(shù)據(jù)的比較圖形盯捌,工作量小且沒有維護(hù)。
在 檢測-最新數(shù)據(jù)-旋轉(zhuǎn)監(jiān)控項前復(fù)選框-顯示數(shù)據(jù)圖(顯示堆疊數(shù)據(jù)圖) 下蘑秽, 里面也包含了 正常和層積 的圖形風(fēng)格饺著。
拓?fù)鋱D(networking maps)
運(yùn)維人員如果想要了解網(wǎng)絡(luò)環(huán)境的基礎(chǔ)設(shè)施狀況箫攀,可以在zabbix中創(chuàng)建網(wǎng)絡(luò)拓?fù)鋱D。
配置拓?fù)鋱D(configurating network maps):
在 監(jiān)控-拓?fù)鋱D 下幼衰,可以創(chuàng)建拓?fù)鋱D靴跛。點擊拓?fù)鋱D中的 構(gòu)造函數(shù) 選項,來打開編輯區(qū)域渡嚣。
然后在編輯區(qū)域中添加元素和鏈接元素梢睛。
鏈接指示器(link indicators):
可以為網(wǎng)絡(luò)拓?fù)鋱D中的元素之間的鏈接分配一些觸發(fā)器,當(dāng)這些觸發(fā)器狀況為“Problem”時识椰,可以在鏈接上體現(xiàn)出來绝葡。
如果多個觸發(fā)器進(jìn)入"Problem"狀態(tài),則嚴(yán)重程度最高的將決定鏈接的顏色和樣式裤唠。
聚合圖形(screen)
在zabbix的聚合圖形頁面上挤牛,你可把各種來源的信息聚集到一起,一邊在單個屏幕上快速查看种蘸。
在 監(jiān)測-圖形聚合 下墓赴,對其進(jìn)行創(chuàng)建悼嫉、配置筋蓖、管理和查看。
基本上鳄橘,聚合圖形是一個表格刊侯,你選擇把每個表格有多少單元格以及其中要顯示的元素章办。
元素如下:
- 簡單圖形;
- 簡單圖形原型滨彻;
- 用戶自定義圖形藕届;
- 自定義圖形原型;
- 拓?fù)鋱D亭饵;
- 其他聚合圖形休偶;
- 純文本信息;
- 服務(wù)器信息辜羊;
- 觸發(fā)器信息踏兜;
- 主機(jī)/主機(jī)組信息;
- 系統(tǒng)狀態(tài)八秃;
- 數(shù)據(jù)概述碱妆;
- 時鐘;
- 事件歷史昔驱;
- 動作歷史疹尾;
- URL。
幻燈片演示(slide shows)
在幻燈片演示中,可以配置多個聚合圖形以設(shè)定的間隔逐個顯示航棱。
在 監(jiān)測-聚合圖形-幻燈片演示 下睡雇。
模板(template)
模板是可以方便地應(yīng)用于多個主機(jī)的一組實體萌衬。
配置模板(configuring a template):
配置模板需要首先通過定義一些參數(shù)來創(chuàng)建模板饮醇,然后添加實例。
在 配置-模板-創(chuàng)建模板
鏈接模板(linking):
鏈接是將模板應(yīng)用于主機(jī)的過程秕豫,之后主機(jī)將擁有模板的所有實體朴艰。
嵌套(nesting):
嵌套是一種包含一個或多個其它模板的模板方式。
可以在一個嵌套模板中獎一些模板鏈接在一起混移。
嵌套的好處在于祠墅,您只需要講一個模板鏈接到主機(jī),并且主機(jī)會自動繼承鏈接的模板的所有實體歌径。
事件通知(notifications upon events)
當(dāng)配置了一些項目和觸發(fā)器毁嗦,并且由于觸發(fā)器改變狀態(tài),現(xiàn)在正在發(fā)生一些事件回铛,之后就要考慮 action狗准。
發(fā)送通知是zabbix提供的主要操作之一。
為了能夠發(fā)送和接收通知茵肃,必須:
- 定義一些media腔长;
- 配置action,向指定的media發(fā)送消息验残。
action由condition和operation組成捞附。當(dāng)條件滿足是,執(zhí)行操作您没。
操作主要是 發(fā)送消息和執(zhí)行遠(yuǎn)程命令鸟召。
media類型
媒體是zabbix中發(fā)送通知和警報的傳送通道。
E-mail:
在 管理-媒體類型 下氨鹏,配置Email欧募。
SMS:
zabbix支持使用連接到zabbix-server的串行端口的串行GSM調(diào)制解調(diào)器發(fā)送SMS消息。
確保:
- 串行設(shè)備的速度(在Linux下通常為/dev/ttyS0) 與 GSM調(diào)制解調(diào)器的速度相匹配喻犁。zabbix沒有設(shè)置串行鏈路的速度槽片,它使用默認(rèn)設(shè)置。
- zabbix用戶對串行設(shè)備有讀寫訪問權(quán)限肢础。
- GSM調(diào)制解調(diào)器輸入PIN碼还栓,并在電源復(fù)位后保留PIN碼〈洌或者在SIM卡上禁用PIN剩盒。
管理-媒體類型下
要為用戶分配電話號碼:管理-用戶-報警媒介,添加報警媒介(如電話號碼等)
Jabber:
zabbix支持發(fā)送jabber消息慨蛙。
Ez Texting:
可以使用 zabbix技術(shù)合作伙伴 Ez Texting發(fā)送信息辽聊。
腳本:
警報腳本在zabbix服務(wù)器上執(zhí)行纪挎,這些腳本位于服務(wù)器配置文件中定義的目錄中(AlertScriptsPath)。
cat /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
#創(chuàng)建報警腳本
vim /usr/lib/zabbix/alertscripts/zabbix_test.sh
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF | mail -s "$subject" "to"
$body
EOF
然后我們在創(chuàng)建腳本媒體的時候跟匆,寫入相關(guān)參數(shù)异袄。
actions
可以根據(jù)所有支持的類型的時間定義操作:
- 觸發(fā)事件:當(dāng)trigger的狀態(tài)從OK轉(zhuǎn)到Problem或回轉(zhuǎn)時;
- 發(fā)現(xiàn)事件玛臂;
- 自動注冊事件烤蜕;
- 內(nèi)部事件;
配置-動作-創(chuàng)建動作
條件(condition):
只有在事件與定義的條件匹配的情況下才執(zhí)行操作迹冤。
注意運(yùn)算類型:似與非似
操作(operation):
操作:發(fā)送信息讽营,執(zhí)行遠(yuǎn)程命令。
1.發(fā)送消息泡徙;
2.遠(yuǎn)程命令(不支持在zabbix-agent上執(zhí)行遠(yuǎn)程命令橱鹏,需要在zabbix-server到代理的命令才能直接連接。遠(yuǎn)程命令限制255字符堪藐,可以將過個命令放置于新行上來執(zhí)行過個命令莉兰。及時目標(biāo)主機(jī)處于維護(hù)狀態(tài),也會執(zhí)行遠(yuǎn)程命令)庶橱;
配置-動作-操作贮勃,在操作細(xì)節(jié)中修改操作類型為遠(yuǎn)程命令。
支持自定義腳本苏章、SSH寂嘉、Telnet等方式。
在信息中使用宏(using macros in messages):
在消息主題和消息文本中枫绅,可使用宏來更有效的問題報告泉孩。
恢復(fù)操作(recovery operation):
恢復(fù)操作允許在問題解決時通知我們。
恢復(fù)操作支持消息和遠(yuǎn)程命令并淋。
宏(macros)
zabbix支持許多在多種情況下使用的宏寓搬。宏是一個變量,由如下特殊語法標(biāo)識县耽。
{MACRO}
根據(jù)在上下文匯總句喷,宏解析為一個特殊的值。有效地使用宏可以節(jié)省時間兔毙,病史zabbix更加高效唾琼。
宏可以在監(jiān)控項鍵值參數(shù)中使用。宏只能用在監(jiān)控項鍵值參數(shù)的一部分中澎剥。
如item.key[server_{HOST.HOST}_local]
锡溯。
宏函數(shù)(macro function):
宏函數(shù)能提供自定義宏值的功能。
宏函數(shù)語法:
{<macro>.<func>(<params>)}
#<macro>, 要定義的宏
#<func>, 要應(yīng)用的函數(shù)
#<params>, 以逗號分隔的函數(shù)參數(shù)列表
#栗子
{{ITEM.VALUE}.regsub{pattern, output}}
用戶宏(user macro):
除了支持開箱即用的宏之外,zabbix還支持更靈活的用戶宏祭饭。
用戶宏可在全局芜茵、模板和主機(jī)級別進(jìn)行定義。有一個特殊語法:
{$MACRO}
用戶宏可用于:
- 監(jiān)控項名稱倡蝙;
- 監(jiān)控項鍵值參數(shù)九串;
- 觸發(fā)器名稱和描述;
- 觸發(fā)器表達(dá)式參數(shù)和常量悠咱;
- 許多其他位置蒸辆。
自動發(fā)現(xiàn)宏:
有一種自動發(fā)現(xiàn)(LLD)函數(shù)中使用的宏類型,可用于創(chuàng)建監(jiān)控項析既、觸發(fā)器和圖形原型。然后谆奥,當(dāng)發(fā)現(xiàn)真實的文件系統(tǒng)眼坏、網(wǎng)絡(luò)接口等,這些宏將替換為真實的值酸些,并且以這些值來創(chuàng)建真實的監(jiān)控項宰译、觸發(fā)器和圖形。
{#MACRO}
用戶和用戶組(user and group)
zabbix中所有用戶都通過web前端去訪問zabbix應(yīng)用程序魄懂。并為每一個用戶分配唯一的登錄名和密碼沿侈,被加密儲存于zabbix數(shù)據(jù)庫中。
配置用戶(configuring user)
管理-用戶市栗,創(chuàng)建和管理用戶缀拭。
權(quán)限(permission)
可定義相應(yīng)的用戶類型,如用戶填帽,管理員和超級管理員蛛淋。
用戶組(groups)
管理-用戶組,創(chuàng)建和配置用戶組篡腌。
服務(wù)監(jiān)控(service monitoring)
服務(wù)監(jiān)控褐荷,旨在幫助那些想要高級業(yè)務(wù)監(jiān)控的人。
在很多情況下嘹悼,我們關(guān)注的不是底層細(xì)節(jié)叛甫,而是提供的可用性服務(wù)。
服務(wù)是分層表示監(jiān)控數(shù)據(jù)杨伙。
IT
Workstations
workstation1
workstation2Services
配置-服務(wù)其监,最高節(jié)點的服務(wù)是'root'。
你可以通過添加低級服務(wù)節(jié)點和各個節(jié)點服務(wù)創(chuàng)建下層層次結(jié)構(gòu)缀台。
Web監(jiān)控(web monitoring)
配置-主機(jī)-web監(jiān)測棠赛,創(chuàng)建或修改web監(jiān)測信息。
可使用zabbix檢查幾個網(wǎng)站可用性方面。(zabbix中包含libcurl庫才行)
要使用web監(jiān)控睛约,需要定義web場景鼎俘。包括一個或多個HTTP請求或步驟。Zabbix-Server根據(jù)預(yù)定義的命令周期性的執(zhí)行這些步驟辩涝。
所有web場景會手機(jī)下列數(shù)據(jù):
- 整個場景中所有步驟的平均下載速度贸伐;
- 失敗的步驟數(shù)量;
- 最后一次錯誤信息
web場景的所有步驟怔揩,都會收集下列數(shù)據(jù):
- 平均下載速度捉邢;
- 響應(yīng)時間
- HTTP狀態(tài)嗎
Web監(jiān)控項(web monitoring items)
在創(chuàng)建web場景時,會自動添加一些新監(jiān)控項進(jìn)行監(jiān)控商膊。
創(chuàng)建場景后伏伐,zabbix會自動添加以下監(jiān)控項進(jìn)行監(jiān)控,將它們鏈接到所選的應(yīng)用程序晕拆。
- 場景<scenario>的下載速度藐翎;
- 場景<scenario>的失敗步驟;
- 場景<scenario>的最后一個錯誤消息实幕;
舉個栗子:
##創(chuàng)建Web監(jiān)測
#配置-主機(jī)-Web監(jiān)測-創(chuàng)建web監(jiān)測
URL:web.zabbix.me/monitor.php
要求的狀態(tài)碼:200
超時:20s
##創(chuàng)建web監(jiān)測觸發(fā)器
#配置-主機(jī)-觸發(fā)器-創(chuàng)建觸發(fā)器
嚴(yán)重性:一般嚴(yán)重
#觸發(fā)條件:狀態(tài)碼!=200
表達(dá)式:N<>200
##創(chuàng)建觸發(fā)報警對應(yīng)的動作
#配置-動作-創(chuàng)建動作
#觸發(fā)條件
觸發(fā)器示警度=一般嚴(yán)重 or 觸發(fā)器=web.zabbix.me
#操作:發(fā)送Email
發(fā)送給zabbix administrator用戶群組
僅送到Email
默認(rèn)信息/自定義信息
##在媒體類型中定義Email相關(guān)信息
#管理-報警媒體類型-Email
SMTP服務(wù)器:smtp.xxx.com
smtp端口:465
SMTP電郵:發(fā)件人Email
安全鏈接:SSL/TLS
認(rèn)證:Usernameand passwd
用戶名:xxx
密碼: xxx
##接下來就可以測試接收報警Email了
虛擬機(jī)監(jiān)控(VM monitoring)
zabbix支持對VMware的監(jiān)控吝镣,使用low-levle-discovery(LLD)自動發(fā)現(xiàn)VMware hypervisors和虛擬機(jī),并根據(jù)事先定義的主機(jī)原型昆庇,為這些虛擬機(jī)建立主機(jī)末贾,添加監(jiān)控。
zabbix中提供了幾個模板整吆,可以直接用來解控VMware vCenter 或 ESX hypervisor拱撵。
虛擬機(jī)監(jiān)控分為兩個步驟:
- 首先,zabbix是通過VMware collector進(jìn)程來監(jiān)控虛擬機(jī)掂为。這些進(jìn)程通過SOAP協(xié)議從VMware服務(wù)獲取必要的信息裕膀,對其進(jìn)行預(yù)處理并儲存到zabbix-server共享內(nèi)存中;
- 然后勇哗,zabbix-pollers通過zabbix簡單檢查VMware keys來檢索這些數(shù)據(jù)昼扛。
要使虛擬機(jī)監(jiān)控正常工作,需要libxml2庫和libcurl庫的支持欲诺。
配置-自動發(fā)現(xiàn)-創(chuàng)建自動發(fā)現(xiàn)
配置-主機(jī)-自動發(fā)現(xiàn)
維護(hù)(maintenance)
可在zabbix中為主機(jī)和主機(jī)組定義維護(hù)周期抄谐。
有兩種維護(hù)類型:“繼續(xù)對目標(biāo)進(jìn)行監(jiān)控數(shù)據(jù)的收集” 和 “停止對目標(biāo)進(jìn)行監(jiān)控數(shù)據(jù)的收集”
要在維護(hù)期間正常接收問題通知,必須在動作配置中的選項中取消選擇暫停操作扰法。
為了確保定期維護(hù)按照預(yù)期的時間進(jìn)行蛹含,需要對zabbix的所有部分使用通用時區(qū)。
配置-維護(hù)-創(chuàng)建維護(hù)期
維護(hù)期的主機(jī)顯示的是橙色背景塞颁!
事件確認(rèn)(event acknowledgment)
zabbix中的問題事件可以由用戶確認(rèn)浦箱。
如果用戶獲得了有關(guān)問題時間的通知吸耿,可以訪問zabbix前端,從時間導(dǎo)航到確認(rèn)屏幕并確認(rèn)問題酷窥。
當(dāng)他們確認(rèn)時咽安,可輸入評論或其他一些相關(guān)描述。
這樣其他系統(tǒng)用戶同樣的問題蓬推,他們便會立即看到是否已被解決和目前的評論妆棒。
以這種方式,可以更協(xié)調(diào)的進(jìn)行解決多個系統(tǒng)用戶的問題的工作流程沸伏。
要確認(rèn)事件糕珊,用戶必須至少要有對相應(yīng)觸發(fā)器的讀取權(quán)限。
在Dashboard下毅糟,在出現(xiàn)的問題里红选,點擊確認(rèn),進(jìn)入確認(rèn)事件留特。
也可在監(jiān)控-問題下查看問題詳細(xì)信息纠脾。
配置導(dǎo)出/導(dǎo)入(Configuration export/import)
zabbix導(dǎo)入/導(dǎo)出功能,使得可以在一個zabbix系統(tǒng)與另一個zabbix系統(tǒng)之間交換各種配置實體蜕青。
類似于數(shù)據(jù)庫的導(dǎo)入導(dǎo)出。即也可以對zabbix做備份糊渊。
可導(dǎo)出/導(dǎo)入的對象有:主機(jī)組右核; 模板; 主機(jī)渺绒; 拓?fù)洌?圖片贺喝; 聚合圖形; 值映射宗兼。
數(shù)據(jù)也可導(dǎo)出:
- XML - 在前端
- XML or JSON - 在zabbix API
導(dǎo)出的詳細(xì)信息:
- 所有支持的元素都導(dǎo)出到一個文件中躏鱼;
- 不導(dǎo)出從連鏈接模板繼承的主機(jī)和模板實體;
- 由低級別發(fā)現(xiàn)創(chuàng)建的實體依賴于他們的任何實體不會導(dǎo)出殷绍。
導(dǎo)入詳細(xì)信息:
- 第一次遇到錯誤停止導(dǎo)入染苛;
- 導(dǎo)入支持XML和JSON文件;
- 使用“刪除缺失”選項導(dǎo)入主機(jī)/模板時主到,導(dǎo)入的XML文件中不存在主機(jī)/模板宏也將被刪除茶行。
將Zabbix展現(xiàn)在Nginx上
畢竟現(xiàn)在Nginx用的多,那就把Apache換成Nginx吧登钥!
Nginx倉庫:http://nginx.org/packages/
自己安裝Nginx:
- 下載
nginx-release-xx.rmp
倉庫源來安裝畔师; - 手動創(chuàng)建
/etc/yum.repo.d/nginx.repo
; - 直接下載
ngix.rpm
來安裝牧牢; - 直接下載源碼來安裝看锉。
相較于Apache姿锭,Nginx也只是配置個server就行了。優(yōu)化什么的自己弄伯铣。
vim /etc/nginx/conf.d/zabbix.me
server {
listen 80;
server_name zabbix.me;
root /usr/share/zabbix;
location / {
if (!f $request_filename) {
rewrite ^([^\?]+)$ /index.php?1=$1 last;
}
}
location ~ \.php$ {
root /usr/share/zabbix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
nginx -t
systemctl start nginx
下載就可以正常訪問zabbix-web
端了!