Zabbix簡介
本文系統環境是CentOS7x86_64, Zabbix 3.x。
Zabbix (音同 z?bix),是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基于 Server-Client 架構。Zabbix 的授權是屬于 GPLv2。
Zabbix可用于監視各種網絡服務、服務器和網絡機器等狀態。是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
Zabbix也可經由SNMP、TCP、ICMP、SSH等對目標進行監視。
Zabbix的系統構成
Zabbix系統由以下各獨立模塊組成:
- Zabbix Server,服務端(以C開發)。Server端通過收集SNMP和Agent發送的數據,寫入數據庫,再通過PHP+Apache在Web端展示;
- Zabbix Agent,客戶端(基本支持所有操作系統),并將監控主機數據發送給Server;
- Zabbix Frontend,Web管理端(以PHP和JavaScript構成);
- Zabbix Proxy(可選組件)。用于分布式監控。
Zabbix的特點
Zabbix是一個高度集成的網絡監控解決方案,一個簡單的安裝包中提供多樣性功能。
- 數據收集;
- 靈活的閥值(觸發器)定義;
- 高度可配置化的告警;
- 實現圖表繪制;
- Web監控功能;
- 豐富的可視化選項;
- 歷史數據存儲;
- 配置簡單;
- 使用模板;
- 網絡發現;
- Zabbix API;
- 權限管理系統;
- 功能強大并易于擴展的監控代理。
定義
Zabbix的常用術語含義。
主機(host): 一臺你想監控的網絡設備,用IP或域名表示。
主機組(host group): 主機的邏輯組,它包含主機和模板。
監控項(item): 你想要接收的主機的特定數據,一個度量數據。
觸發器(trigger): 一個被用于定義問題閥值和評估監控項接收到的數據的邏輯表達式。
事件(event): 單次發生的需要注意的事情。
異常(problem): 一個處在異常狀態的觸發器。
動作(action): 一個對事件作出反應的預定義的操作。
升級(escalation): 一個在動作內執行操作的自定義場景。
媒介(media): 發送報警通知的手段。
通知(notification): 利用已選擇的媒體途徑把事情相關信息發送給用戶。
遠程命令(remote command): 預先定義好的,滿足一定條件后,可在被監控主機上自動執行的命令。
模板(template): 一組可以被應用到一個或多個主機上的實體的集合。
應用(application): 一組監控項組成的邏輯分組。
Web場景(Web scenario): 利用一個或多個HTTP請求來檢查網站的可用性。
前端(frontend): Zabbix提供的Web界面。
Zabbix API: Zabbix API允許你使用JSON RPC協議來創建、更新和獲取Zabbix對象信息或執行任何其他的自定義的任務。
Zabbix server: Zabbix軟件監控的核心程序,主要功能是與Zabbix proxies和agent進行交互、觸發器計算、發送告警通知,并將數據集中保存等。
Zabbix agent: 部署在監控對象上,能夠主動監控本地資源和應用。
Zabbix proxy: 幫助Zabbix server收集數據,分擔Zabbix server的負載。
Zabbix進程
Agent
zabbix agent部署在監控的目標上,主動監測本地的資源和應用(硬件驅動,內存,處理器統計等)。
zabbix agent手機本地的操作信息并將數據報告給zabbix server用于進一步處理。
zabbix agent有被動(passive)和主動(active)兩種檢查方式。
Server
zabbix server是zabbix軟件的核心程序。它通過輪詢和捕獲數據,計算是否滿足觸發器條件,向用戶發送通知。
它是zabbix監控代理和Proxy代理報告系統可用性和完整性數據的核心組件。zabbix server自身可以通過簡單遠程檢查網絡服務(如Web服務器和郵件服務器)。
server是一個包含了被存儲了所有配置,統計方面的和可操作數據的中央倉庫,它是監控系統問題升級以致于激活警告管理器的zabbix中的實體。
基本的zabbix server分三個不同的組件:zabbix server,web前端,數據庫存儲。
zabbix的所有配置信息都存儲在服務器和web前端進行交互的數據庫中。
zabbix server進程是以守護進程(Daemon)運行的。
Proxy
zabbix proxy是一個可以從一個或多個受監控的設備設備收集監控數據,并將信息發送到zabbix server的進程,基本上是代表server工作。
所有收集的數據都在本地進行緩存,然后傳送到proxy所屬的zabbix server。
zabbix proxy是完成遠程區域、分支機構、沒有本地管理員的網絡的集中監控的理想解決方案。
zabbix proxy需要使用獨立的數據庫,以守護進程的方式運行。
Java gateway
zabbix守護進程原生支持監控JMX程序,它被稱為zabbix java gateway。zabbix gateway是用Java語言寫成。
要查得一臺主機特定的JMX計數器值,zabbix server向zabbix java gateway發送請求,后者使用JMX管理API去請求遠程的有關應用。應用不許額外安裝軟件,只需要啟動時在命令行指定 -Dcom.sun.management.jmxremote
即可(是在java程序)。
每個zabbix server或zabbix agent只能配置一個java gateway。
Sender
zabbix sender是一種命令行應用,它可以將性能數據發送到zabbix server進行處理。該應用通常用在長時間運行的用戶腳本,用于定期發送可用性和性能數據。
zabbix_sender -z zabbix -s "xxx" -k db.connections -0 43
-z :server主機
-s :受監控主機的技術名稱
-k :監控項的鍵
-o :要發送的值
Get
zabbix get也是一種命令行應用,用于與zabbix agent進行通信,并從agent那里獲取所需的信息。
該應用通常被用于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安裝要求
硬件:
- 內存,最小128MB;
- 磁盤,最小256MB;
- CPU,可能需要大量CPU資源;
- SMS(短信)通知服務,串行通訊口(serial communication port)和串口GSM調制解調器(serial GSM modem)??蛇x項。
支持平臺:
- Linux;
- IBM AIX;
- FreeBSD;
- NetBSD;
- OpenBSD;
- Mac OS X;
- Solaris;
- Windows(Only Agent).
軟件:
Zabbix基于Apache Web服務器、領先的數據庫引擎和PHP腳本語言進行構建。
數據庫管理系統:
- 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擴展包必須支持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后端數據庫所需的組件 | |
pgsql | 使用PostgreSQL作為Zabbix后端數據庫所需的組件 | |
sqlite3 | 使用SQLite作為Zabbix后端數據庫所需的組件 |
客戶端瀏覽器:
必須啟用Cookie和JavaScript功能。
服務器:
要求 | 描述 |
---|---|
OpenlPMI | 支持IPMI功能所需組件 |
libssh2 | 支持SSH功能 |
fping | 支持ICMP ping功能 |
libcurl | 支持Web監控,VMware監控及SMTP認證 |
libiksemel | 支持Jabber功能 |
libxml2 | 支持VMware監控 |
net-snmp | 支持SNMP監控 |
Java網關:
Java gateway編譯和運行在Java 1.6 及以上版本。
數據庫容量:
Zabbix配置數據需要使用固定的磁盤空間,而這個空間不會過多增長。
Zabbix數據庫容量主要依賴于以下參數:
- 每秒處理值的數量(Number of processed values per second);
- 歷史(History)數據的回收清理設置(Housekeeper);
- 趨勢(Trends)數據的回收清理設置(Housekeeper);
- 事件(Events)數據的回收清理設置(Housekeeper)。
時鐘同步:
對于Zabbix穩定運行而言,服務獲取精確的系統時間是非常重要的。對于所有運行Zabbix組件的系統,強烈建議這些系統的時間保持同步。
ntpd
是一個臨幸的用于同步主機和其他服務器之間的時間的后臺程序。
安裝、啟動、配置Zabbix
Zabbix-repo倉庫:repo.zabbix.com
該倉庫服務器同時提供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數據庫安裝Zabbix Server、Web前端:
yum install -y zabbix-server-mysql zabbix-get
注意:此處Zabbix數據庫使用MySQL,請自行安裝MySQL。
安裝Zabbix Agent:
yum install -y zabbix-agent
安裝初始化數據庫
查看剛剛安裝的 zabbix-server-mysql:
解壓得到的sql腳本create.sql
只會在對應的數據庫中初始化zabbix所需要的數據庫表,但是不會創建zabbix數據庫。所以后面我們還需要手動創建zabbix
數據庫。
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中創建zabbix數據庫:
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;
#導入sql腳本
mysql -uroot -p -Dzabbix < ./create.sql
USE zabbix;
SHOW TABLES;
配置zabbix server并啟動
編輯zabbix server配置文件:
vim /etc/zabbix/zabbix_server.conf
#常會修改的參數
#數據庫配置
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
DBSocket=/var/lib/mysql/mysql.sock
#服務監聽端口
ListenPort=10051
#服務端源IP
SourceIP=
#日志記錄方式,file使用指定文件作為日志文件,system將日志發往syslog,console將日志發送控制臺
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
啟動zabbix服務端:
systemctl start zabbix-server
#此處可能由于沒有關閉SELinux而報錯
tail /var/log/zabbix/zabbix_server.log
cannot set resource limit: [13] Permission denied
#關閉SELinux
setenforce=0
vim /etc/selinux/config
SELINUX=disabled
#查看zabbix-server默認監聽的10051端口
netstat -nltp
安裝zabbix web
zabbix web可以安裝在單獨的主機上,只要能連接到zabbix database所在數據庫就行。但為了方便,都安裝在了server上。
zabbix web需要LAMP環境:
#可能需要自己配置PHP remi源,注意PHP及擴展版本問題
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
#需修改時區
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的虛擬主機訪問zabbix web
<VirtualHost IP:80>
servername zabbix.me
documentroot /usr/share/zabbix
默認數據
</VirtualHost>
#開啟httpd服務
systemctl start httpd
添加hosts后就可以利用域名訪問zabbix-web端了。
echo -e "192.168.1.9 \t zabbix.me" >> /etc/hosts
在web端配置zabbix
在瀏覽器訪問 http://zabbix.me 初始化zabbix配置。
配置好后就需要用賬號密碼進行登錄zabbix-web端dashboard。
登錄進Dashboard后,可修改語言為中文。
如果你的Zabbix無法看到中文選項,那么可能需要如下操作:
vim /usr/share/zabbix/include/locales.inc.php
#修改
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
如果又遇到中文亂碼的問題,則可以從windows中挑選一些好看的中文字體,將對應字體文件放置到zabbix web的字體目錄中。
windows中字體后綴.TTF,Linux中為.ttf。注意修改大小寫。
cd /usr/share/zabbix/fonts
#只有一個默認字體 graphfont.ttf
#將新字體放置到此目錄下
#修改配置文件中對應字體名稱
vim /usr/share/zabbix/include/define.inc.php
#將默認字體名字修改為字體目錄下 你需要的字體名
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相關設置;
- 配置菜單,用于配置監控相關設置;
- 報表菜單,為管理員生成一段時間內的監控統計信息;
- 檢測中菜單,用于查看被監控的相關數據;
- 資產記錄菜單,查看被監控的主機有哪些,以及相關的資產信息。
安裝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 被動模式配置
#指定允許哪臺服務器拉取本機數據
Server=
#指定agent端工作于被動模式時監聽的端口號
ListenPort=10050(默認)
#指定agent端工作與被動模式時所監聽的IP地址
ListenIP=0.0.0.0(默認)
#指定預生成的agent進程數量
StartAgents=
####Active checks related
#agent工作于主動模式時,將消息推送到哪臺Server上
ServerActive=IP1,IP2...
#指定當前主機主機名,Server端通過對應的主機名識別主機
Hostname=
#指明agent端每隔多少秒將采集的數據發往Server端
RefreshActiveChecks=
#栗子
Server=192.168.1.9
ServerActive=192.168.1.9
Hostname=zabbix.me
啟動zabbix-agent
systemctl zabbix-agent start
#查看狀態,默認端口10050
netstat -nltp
快速開始zabbix-web菜單
zabbix-web界面中包含有監測中、資產記錄、報表、配置、管理五項菜單。
登錄和配置用戶
在瀏覽器輸入 zabbix.me (修改hosts),登錄zabbix-web后臺。
默認用戶名:Admin,密碼:zabbix。它是超級管理員。
為了防止暴力破解和詞典攻擊,連續嘗試五次登錄失敗,zabbix界面將暫停30秒。
可以通過管理(Management)菜單下的用戶(User),新建、查看、管理用戶信息。
zabbix在安裝后自定義了兩個用戶:
- Admin用戶是zabbix的超級管理員,擁有所有權限;
- Guest用戶是一個特殊的默認用戶。如果你沒有登錄,你訪問zabbix的時候其實就是“guest”權限。guest默認沒有任何權限。
你可以創建一個用戶(user)并將其加入特定的用戶組(Group)以提升用戶權限。
新建主機
zabbix中的主機(host)是一個你想要監控的網絡實體(物理的、虛擬的)。對于主機的定義非常靈活。它可以是一臺物理服務器,一個網絡交換機,一個虛擬機或一些應用。
可以通過配置(Configuration)菜單下的主機(Host),查看已配置主機相關信息。
默認有一個“Zabbix Server”的定義好的主機。
點擊創建主機(Create host)后,填寫對應的主機名稱、添加對應的主機群組,zabbix-agent的IP地址和端口,以及其它信息。
新建監控項
監控項是zabbix中獲得數據的基礎。沒有監控項,就沒有數據。因為一個主機中只有監控項定義了”單一的指標“或者”需要獲得的數據“。
可以通過配置(Configuration)菜單下的主機(Item),找到需要配置監控項(Item)的主機,然后創建監控項。
主機默認是沒有定義任何監控項的。
填寫對應的監控名稱、類型、鍵值、主機接口、信息類型等等信息。
可在監控(Monitoring)菜單中最新數據(Latest data)查看之前定義的監控項和獲得的值。
還可選擇以圖形(Graph)或值來查看監控項的相關信息。
新建觸發器
監控項只用于手機數據。如果要自動評估收到的數據,我們則需要定義觸發器(trigger)。
觸發器包含了一個表達式,這個表達式定義了數據的可接受的閾值級別。
如果收到的數據超過了定義好的級別,觸發器將被觸發,或者進入異常狀態(problem)。
從而引起我們的注意,讓我們知道有問題發生。如果數據再次恢復到合理范圍,觸發器將會轉到正常狀態(OK)。
可以通過配置(Configuration)菜單下的主機(Hosts)選項,找到某主機的觸發器(Triggers)創建觸發器。
填寫對應的觸發器名稱、表達式、描述等信息。
獲取問題通知
當監控項收集了數據后,觸發器會根據異常狀態觸發報警。根據一些報警機制,它也會通知我們一些重要的事情,而不是直接在zabbix-web端進行查看。
這就是通知(Notification)的功能。
E-mail是最常用的異常通知發送方式。當然還有SMS(短信),腳本等媒體類型。
可以通過管理(Administration)菜單中的報警媒體類型(Media types),點擊預定義媒體類型列表中的Email,來配置Email。
為了建立一個通知,我們需要在配置菜單下動作中,創建動作(Create action)。
一旦滿足了觸發器的條件,變回觸發執行動作。如收到E-mail等...
新建模板
如果我們配置上前臺主機,一些自動化操作會帶來更多便利性。沒錯,模板(templates)功能就可以實現。
模板允許對有用的監控項、觸發器和其他對象進行分組,只需要一步就可以對監控主機應用模板,已達到反復重用的目的。
當一個模板鏈接到一個主機后,主機會繼承這個模板中的所有對象。簡單而言,一組預先定義好的檢查會被快速應用到主機上。
Zabbix為各種操作系統、設備以及應用準備好了一些預定義的模板。你可以快速部署使用他們。
但是請注意,一些模板需要根據你的實際情況和使用環境進行適當俄調整。 比如,一些檢查項是不需要的,一些輪詢周期過于頻繁等。
在配置菜單下的模板(Templates)下,點擊創建模板(Create template)。填寫對應的模板名稱,群組等信息。
創建模板完畢后,可將模板鏈接到主機。之后,模板及其所有對象被添加到了主機。
配置
主機和主機組
一般來講,zabbix主機是指你希望監控的那些設備。如服務器、工作站、交換機等。
創建主機是使用zabbix過程的首要任務。
配置一臺主機
配置--主機--創建主機--填寫相關參數信息。
可以在已經存在的主機上使用 Clone或Full Clone創建一個新主機。
Clone將保留所有的主機參數和模板鏈接;
Full Clone將額外保留指數實體(應用集、監控項、觸發器、視圖、規則、Web場景)。
新建主機下:
- 主機(Host):包含了通用的主機屬性;
- 模板(Template):允許將模板鏈接誒到主機,所有實體將從模板繼承;
- IPMI:包含IPMI管理屬性;
- 宏(Macros):允許定義主機級別的用戶宏;
- 主機資產記錄(Host inventory):允許為主機收工輸入庫存信息;
- 允許你請求與主機的加密的連接。
資產管理(Inventory)
你可以將聯網設備的資產信息保存在zabbix里。
資產信息實在配置主機時人工錄入建立的資產信息數據,或者通過使用某些自動填充選項完成的錄入。
構建資產庫:
- 手動模式: 在配置一臺主機的時候,手動輸入資產信息;
- 自動模式: 在配置主機的時候,選擇自動。
之后便可以在資產記錄菜單中的概述,主機項中查看相關信息。
批量更新(Mass update)
有時候可能需要一次更改多個主機的某些屬性,使用批量更新(mass update)功能來代替打開每個主機進行編輯。
可批量處理主機、模板、IPMI、資產、加密相關信息。
監控項(Items)
監控項是從主機收集的數據信息。
配置主機后,需要添加一些監控項以開始獲取數據??焖偬砑佣鄠€監控項的一種方法是將預定義的模板附加到主機。
在單個監控項中,可指定從主機收集哪些數據信息。
為此,可使用監控項key。 如system.cpu.load將收集處理器負載的數據。
要給 key 指定更過參數,請在后面添加方括號[]。 如system.cpu.load[avg5], 返回最近5分鐘的CPU負載平均值。
創建一個監控項
可在主機中新建一個監控項。
不支持的監控項:如果由于某種原因無法檢索該值,則該監控項可能不被支持。這些監控項仍然以固定的間隔重新檢查。
監控項的key:
- key名稱允許使用字符: 0-9a-zA-Z_-.
- key參數,用 逗,號 分隔: xxx[par1,par2...]
- key參數也可以為空,此時使用默認值: key
- key參數帶引號,則允許任何Unicode字符,如果包含雙引號則需要 \反斜杠 轉義
- key參數是一個數組,它需要包含在方括號中
自定義間隔(Custom intervals)
創建關于監控項的自定義時間規則。
靈活間隔被設計為重新定義默認監控項的的更新間隔,但調度間隔用于指定獨立執行的檢查計劃。
靈活的間隔(Flexible intervals):允許重定義特定時間段的默認間隔。
- 間隔(Interval): 指定時間段的更新間隔;
- 期間(Period): 靈活間隔有效的時間段;
- 舉個栗子: 60(interval), 1-7,00-24(period)。監控項每隔60s檢查一次。
調度間隔(Scheduling intervals):用于在特定時間檢查監控項。
調度間隔定義為, 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中定時任務的寫法,只不過這里把單位(md,wd,h,m,s)寫在了數值的前面。
舉個栗子:
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分鐘
監控項類型(Items type)
監控項類型包含從系統獲取數據的多種方式。每個監控項類型都有一組自己支持的監控項key和所需的參數。
zabbix提供的監控項類型:
- zabbix代理檢查(agent checks)
- SNMP代理檢查
- SNMP traps
- IPMI檢查
- 簡單檢查(simple checks)
- VMware監控(monitoring)
- 日志文件監控
- 計算監控項(Calculated items)
- zabbix內部檢查(internal checks)
- SSH檢查
- Telnet檢查
- 外部檢查(External checks)
- 匯總檢查(Aggregate checks)
- 捕捉器監控項(Trapper items)
- JMX監控
- ODBC監控
zabbix代理(zabbix agent):
這些檢查與zabbix代理進行通信實現數據的采集。
- zabbix agent-passive: 被動模式,Server向Agent索要數據;
- zabbix agent-active: 主動模式,Agent主動上報數據給Server。
可支持的監控項,可在新建監控項是在鍵值里面查看。
SNMP代理(SNMP agent):
在啟用SNMP的設備(如打印機,交換機,路由器...)上使用SNMP監控,為了能夠監控SNMP代理在這些設備上提供的數據,zabbix服務器初始化配置時必須具有SNMP支持。
僅通過UDP協議執行SNMP檢查。
配置SNMP監控:
- 使用SNMP接口為設備創建一個主機;
- 找出要監控項目的SNMP字符串;
- 創建一個監控項。
IPMI檢查:
你可以在zabbix中監控 智能平臺管理接口(IPMI) 設備的運行狀況和可用性。
要執行IPMI檢查,zabbix服務器必須首先配置IPMI支持。
簡單檢查:
簡單檢查通常用于遠程無代理監控服務。
日志文件監控:
zabbix可用于集中監控和分析 具有/不具有 日志轉動能力的日志文件。
當日志文件包含某些字符串或字符串模式時,通知信息可用于警告用戶。
計算監控項:
計算監控項是創建虛擬數據源的一種方式。這些值將根據算術表達式定期計算。所有計算都由Server完成。
內部檢查:
內部檢查可以監控zabbix的內部檢查。即Server或Agent Server的運行情況。
SSH檢查:
運行SSH檢查是作為無代理監控的,SSH檢查不需要zabbix代理。
執行SSH檢查zabbix服務器必須初始化配置為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通過運行shell腳本或二進制的檢查。
外部檢查不需要再被監控的主機上運行任何代理。
匯總檢查:
在匯總檢查中,zabbix通過直接從數據庫中查詢監控信息,然后進行信息聚合。
聚合檢查不需要再被監控的主機上運行任何代理。
捕捉器監控項:
捕捉器監控項接收傳入的數據,而不是查詢它。對于想要推送到zabbix的任何數據都是適用的。
要使用捕捉器監控項,需要在zabbix中建立一個捕捉器監控項,將數據送給zabbix。
JMX監控項:
JMX監控可用于監視Java應用程序的JMX計數器。
JMX監視器以zabbix守護進程方式運行,名為zabbix java gateway。
ODBC監控:
ODBC監控對應于zabbix web管理端中的數據庫監控器監控項類型。
ODBC是用于訪問 數據庫管理系統(DBMS) 的C語言中間件API。
zabbix可以查詢ODBC支持的任何數據庫。為了實現監控,zabbix不直接連接到數據庫,而是使用ODBC中設置的ODBC接口和驅動。
該功能允許為多個目的更加有效地監控不同的數據庫。
歷史與趨勢
歷史與趨勢是zabbix中存儲數據的兩種方式。
歷史保持每個收集的值,而趨勢是每小時的平均信息。
建議保持的歷史數據盡可能少,但可以保留更多的趨勢數據。
用戶自定義參數(user parameter)
有時你想運行一個代理檢查,但它不是zabbix預定義的。這時就能用到用戶參數。
用戶參數是由zabbix代理之星的命令,最多可以返回512KB的數據。
key 是唯一的。
用戶參數用法:
UserParameter=<key>,<command>
#栗子
UserParameter=ping,echo 1
#使用ping鍵為一個監控項返回 1
#復雜栗子
UserParameter=mysql.ping,mysqladmin -uroot -ppwd ping | grep -c 'alive'
#mysqld狀態為alive返回1,否則0
#靈活的用戶參數
UserParameter=key[*],command
#[*]定義該key接受括號內的參數
#栗子
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]
用戶自定義參數擴展zabbix代理:
是將key添加到被監控的主機哦!
#編寫命令--SQL查詢總數
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是唯一的標識符
#測試此參數
##測試參數可用與否很重要哈
zabbix_agentd -t mysql.totalquery
#重啟zabbix-agent,將重新加載配置
zabbix_get -s $host -k mysql.totalquery
可加載模塊(loadable modules)
可加載模塊提供了一種關于zabbix性能擴展的選項。
可加載模塊基本上只zabbix守護程序使用的共享庫,并在啟動時加載。
可加載模塊具有很多優點,卓越的性能和可實現任何邏輯的能力,更重要的是使用和共享了zabbix模塊的開發能力。
windows性能計數器(windows perfomance counter)
使用perf_counter[]key有效的監控windows性能計數器
批量更新(mass update)
使用批量更新功能,可一次更改多個監控屬性。
值映射(value mapping)
對于接收值更人性化的表示,可以使用包含數值和字符串之間的映射的值映射。
如:
- 0 ---> error
- 1 ---> true
- F ---> Full
- D ---> Differential
- I ---> Incremental
- ...
應用集(Application)
應用集對邏輯組中的監控項進行分組。
如,對MongoDB的可用性,空間,負載,慢查詢,執行命令...,可歸于 MongoDB應用于中。
隊列(queue)
隊列顯示正在等待刷新的監控項。
隊列只是一個邏輯表達的數據。
隊列顯示的統計信息是zabbix服務器性能是否健康的指標。
在 管理--隊列 下對去隊列。
值緩存(value cache)
為了計算觸發表達式,以及讓計算/聚合監控項和一些宏更快,zabbix服務器支持值的緩存選項。
在內存中的緩存可用于訪問歷史數據,而不用之間調用數據庫。如果緩存中不存在歷史值,則從數據庫請求缺少的值,并相應地跟新緩存。
要啟用值緩存功能,修改zabbix_server.conf中可選的ValueCacheSize參數。
觸發器(Trigger)
觸發器是評估有項目采集的數據并表示當前系統狀況的邏輯表達式。
觸發器表達式允許定義一個什么狀況的數據是“可接受”的閾值。如果超過了可接受狀態,則觸發器會被觸發。
配置一個觸發器(configuring a trigger)
在主機里面配置觸發器。
觸發器表達式(trigger expression)
一個簡單有效的表達式看起來像:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
#如
{192.168.1.7:agent.ping.time()}=0
函數參數(function parameters):
大多數數字型的函數接受秒數來作為參數。
#600s內所有值的總和
sum(600)
#隨后5個值總和
sum(#5)
avg()
count()
last()
min()
max()
#5m 可被 300s 代替
#1k 代表 1024bytes
運算符(operators):
優先級 | 運算符 | 定義 |
---|---|---|
1 | - | 負號(minus) |
2 | not | 邏輯非(NOT) |
3 | *, / | 乘,除 |
4 | +, - | 加,減 |
5 | <, <=, >, >= | - |
6 | =, <> | 相等,不等于 |
7 | and | 邏輯與 |
8 | or | 邏輯或 |
觸發器示例:
{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):
有時候需要一個觸發器狀態OK和PROBLEM之間的間隔,而不是簡單的閾值。
要做到這一點,我們首先定義一個PROBLEM事件的觸發器表達式,然后為OK選擇 ‘Recovery expression’,并未OK事件書如不同的表達式
如:
#Problem expression
{server:temp.last()}>20
#Recovery expression
{server:temp.last()}<=15
#兩者之間便有了幾個滯后值
觸發器依賴(trigger dependency)
有時候,一臺主機的可用性取決于另一臺主機。如一臺路由器后的上網設備。
這就是主機之間某些依賴關系可能有用的地方,依賴關系設置的通知可能會被抑制,而只發送根本問題的通知。
zabbix中觸發器的依賴,一個觸發器可能有多個依賴于它的觸發器。
路由器和路由器后的Server同時宕機,如果有依賴關系,則zabbix不會執行服務器的觸發動作。
值得注意的是,如果觸發器所依賴的觸發器被禁用,則次觸發器的事件和動作將不會被抑制。
批量更新
使用批量更新,可一次更改一些觸發器的某些屬性。
觸發器嚴重性(trigger severity)
觸發器嚴重性定義了觸發器的重要程度:
- 未分類(not classified), 灰色
- 信息(information), 淡藍
- 警告(warning), 黃色
- 一般嚴重(average), 橙色
- 嚴重(High), 淡紅
- 災難(disaster), 紅色
自定義觸發器嚴重性(customising trigger)
在 管理 -- 一般 -- 觸發器嚴重性,里面自定義觸發器嚴重性。
預測觸發功能(predictive trigger function)
有時候有即將到來的問題的跡象。可以發現這些跡象,以便提前采取行動,以減小影響。
zabbix具有基于歷史數據預測受監視系統的未來行為的工具,這些工具通過預測觸發功能實現。
事件標簽(event tag)
在zabbix中可以自定義事件標簽,在觸發器級別上定義事件標簽。在事件標簽定以后,相應的新事件被標記為時間標簽數據。
在擁有自定義時間標簽的情況下,可以變得更加靈活。
例如:
- 識別日志文件中的問題并單獨關閉他們;
- 用它來過濾通知;
- 查看前端的事件標簽信息;
- 從項目值中提取的信息作為標簽值;
- 在通知中更好地識別問題;
- 通過使用模板級別的標簽來建華配置任務;
- 使用低級別發現的標簽創建觸發器。
事件(Events)
zabbix可以生成一下幾種類型的事件:
- trigger events-觸發器事件;
- discovery events-發現事件;
- auto registration events-自動注冊事件;
- internal events-內部事件;
事件以時間戳,并可以發送Email等基礎動作。
在 監控-問題 里面查看信息信息。
觸發器事件生成(trigger events generation)
觸發器狀態的變化是事件最常見和最重要的來源。每次觸發器的狀態改變時,都會生成一個事件。
改時間包含了觸發器狀態變更的詳細信息、發生時間以及信息的狀態。
觸發器會創建兩種類型的事件:問題(problem)和正常(OK)
手動關閉問題事件(manual closing of problems)
當觸發器狀態從“問題(problem)”變成“正常(OK)”時,很難判斷是通過觸發器表達式的方式解決。這時就需要手動解決。
只有在觸發器中啟用 “允許手動關閉” 選項,問題事件才可以被手動關閉。
其他事件來源(other event source)
zabbix定期掃描網絡發現規則中定義的IP范圍,可以為每個規則單獨配置檢查頻率。一旦發現主機或服務,就會生成一個發現事件。
zabbix可以生成以下事件:
Service Up/Down
Host Up/Down
Service Discovered/Lost
Host Discovered/Lost
事件關聯(event correlation)
通常,在zabbix中正常事件會關閉所有的問題事件,但在某些情況下需要更細致的方法??梢愿鶕?strong>事件標簽關聯問題事件。
如,當監控日志文件時,在日志文件中想要發現某些問題,并將它們單獨關閉,而不是一起關閉。
可視化(visualisation)
圖形(graphs)
大量的監控數據被采集到zabbix中,如果能用可視化的表現形式來查看,那就直觀和容易多了。
zabbix為用戶提供了如下圖形:
- 監控項數據的內置簡單圖形 “simple graphs”;
- 創建更復雜的自定義圖形 “customised graphs”;
- 特定圖形 "ad-hosc graphs"快速訪問幾個監控項的數據比較。
簡單圖形(simple graphs):
zabbix提供的簡單圖形,用來可視化顯示監控項采集到的數據。并不需要配置就可以查看。
通過 監控-最新數據-圖形 來展示圖形。
自定義圖形(customised graphs):
自定義圖形,提供定制功能。這就有點厲害了。這個是手動配置的。
可以為單個主機、多個主機、單個模板、多個模板創建自定義圖形。
在 配置-主機-圖形-創建圖形 里編輯圖形屬性;
圖形編輯后可點擊預覽。
特設圖形(ad-hoc graphs):
簡單圖形和自定義圖形都不允許快速創建多個監控項目數據的比較圖形,工作量小且沒有維護。
在 檢測-最新數據-旋轉監控項前復選框-顯示數據圖(顯示堆疊數據圖) 下, 里面也包含了 正常和層積 的圖形風格。
拓撲圖(networking maps)
運維人員如果想要了解網絡環境的基礎設施狀況,可以在zabbix中創建網絡拓撲圖。
配置拓撲圖(configurating network maps):
在 監控-拓撲圖 下,可以創建拓撲圖。點擊拓撲圖中的 構造函數 選項,來打開編輯區域。
然后在編輯區域中添加元素和鏈接元素。
鏈接指示器(link indicators):
可以為網絡拓撲圖中的元素之間的鏈接分配一些觸發器,當這些觸發器狀況為“Problem”時,可以在鏈接上體現出來。
如果多個觸發器進入"Problem"狀態,則嚴重程度最高的將決定鏈接的顏色和樣式。
聚合圖形(screen)
在zabbix的聚合圖形頁面上,你可把各種來源的信息聚集到一起,一邊在單個屏幕上快速查看。
在 監測-圖形聚合 下,對其進行創建、配置、管理和查看。
基本上,聚合圖形是一個表格,你選擇把每個表格有多少單元格以及其中要顯示的元素。
元素如下:
- 簡單圖形;
- 簡單圖形原型;
- 用戶自定義圖形;
- 自定義圖形原型;
- 拓撲圖;
- 其他聚合圖形;
- 純文本信息;
- 服務器信息;
- 觸發器信息;
- 主機/主機組信息;
- 系統狀態;
- 數據概述;
- 時鐘;
- 事件歷史;
- 動作歷史;
- URL。
幻燈片演示(slide shows)
在幻燈片演示中,可以配置多個聚合圖形以設定的間隔逐個顯示。
在 監測-聚合圖形-幻燈片演示 下。
模板(template)
模板是可以方便地應用于多個主機的一組實體。
配置模板(configuring a template):
配置模板需要首先通過定義一些參數來創建模板,然后添加實例。
在 配置-模板-創建模板
鏈接模板(linking):
鏈接是將模板應用于主機的過程,之后主機將擁有模板的所有實體。
嵌套(nesting):
嵌套是一種包含一個或多個其它模板的模板方式。
可以在一個嵌套模板中獎一些模板鏈接在一起。
嵌套的好處在于,您只需要講一個模板鏈接到主機,并且主機會自動繼承鏈接的模板的所有實體。
事件通知(notifications upon events)
當配置了一些項目和觸發器,并且由于觸發器改變狀態,現在正在發生一些事件,之后就要考慮 action。
發送通知是zabbix提供的主要操作之一。
為了能夠發送和接收通知,必須:
- 定義一些media;
- 配置action,向指定的media發送消息。
action由condition和operation組成。當條件滿足是,執行操作。
操作主要是 發送消息和執行遠程命令。
media類型
媒體是zabbix中發送通知和警報的傳送通道。
E-mail:
在 管理-媒體類型 下,配置Email。
SMS:
zabbix支持使用連接到zabbix-server的串行端口的串行GSM調制解調器發送SMS消息。
確保:
- 串行設備的速度(在Linux下通常為/dev/ttyS0) 與 GSM調制解調器的速度相匹配。zabbix沒有設置串行鏈路的速度,它使用默認設置。
- zabbix用戶對串行設備有讀寫訪問權限。
- GSM調制解調器輸入PIN碼,并在電源復位后保留PIN碼?;蛘咴赟IM卡上禁用PIN。
管理-媒體類型下
要為用戶分配電話號碼:管理-用戶-報警媒介,添加報警媒介(如電話號碼等)
Jabber:
zabbix支持發送jabber消息。
Ez Texting:
可以使用 zabbix技術合作伙伴 Ez Texting發送信息。
腳本:
警報腳本在zabbix服務器上執行,這些腳本位于服務器配置文件中定義的目錄中(AlertScriptsPath)。
cat /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
#創建報警腳本
vim /usr/lib/zabbix/alertscripts/zabbix_test.sh
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF | mail -s "$subject" "to"
$body
EOF
然后我們在創建腳本媒體的時候,寫入相關參數。
actions
可以根據所有支持的類型的時間定義操作:
- 觸發事件:當trigger的狀態從OK轉到Problem或回轉時;
- 發現事件;
- 自動注冊事件;
- 內部事件;
配置-動作-創建動作
條件(condition):
只有在事件與定義的條件匹配的情況下才執行操作。
注意運算類型:似與非似
操作(operation):
操作:發送信息,執行遠程命令。
1.發送消息;
2.遠程命令(不支持在zabbix-agent上執行遠程命令,需要在zabbix-server到代理的命令才能直接連接。遠程命令限制255字符,可以將過個命令放置于新行上來執行過個命令。及時目標主機處于維護狀態,也會執行遠程命令);
配置-動作-操作,在操作細節中修改操作類型為遠程命令。
支持自定義腳本、SSH、Telnet等方式。
在信息中使用宏(using macros in messages):
在消息主題和消息文本中,可使用宏來更有效的問題報告。
恢復操作(recovery operation):
恢復操作允許在問題解決時通知我們。
恢復操作支持消息和遠程命令。
宏(macros)
zabbix支持許多在多種情況下使用的宏。宏是一個變量,由如下特殊語法標識。
{MACRO}
根據在上下文匯總,宏解析為一個特殊的值。有效地使用宏可以節省時間,病史zabbix更加高效。
宏可以在監控項鍵值參數中使用。宏只能用在監控項鍵值參數的一部分中。
如item.key[server_{HOST.HOST}_local]
。
宏函數(macro function):
宏函數能提供自定義宏值的功能。
宏函數語法:
{<macro>.<func>(<params>)}
#<macro>, 要定義的宏
#<func>, 要應用的函數
#<params>, 以逗號分隔的函數參數列表
#栗子
{{ITEM.VALUE}.regsub{pattern, output}}
用戶宏(user macro):
除了支持開箱即用的宏之外,zabbix還支持更靈活的用戶宏。
用戶宏可在全局、模板和主機級別進行定義。有一個特殊語法:
{$MACRO}
用戶宏可用于:
- 監控項名稱;
- 監控項鍵值參數;
- 觸發器名稱和描述;
- 觸發器表達式參數和常量;
- 許多其他位置。
自動發現宏:
有一種自動發現(LLD)函數中使用的宏類型,可用于創建監控項、觸發器和圖形原型。然后,當發現真實的文件系統、網絡接口等,這些宏將替換為真實的值,并且以這些值來創建真實的監控項、觸發器和圖形。
{#MACRO}
用戶和用戶組(user and group)
zabbix中所有用戶都通過web前端去訪問zabbix應用程序。并為每一個用戶分配唯一的登錄名和密碼,被加密儲存于zabbix數據庫中。
配置用戶(configuring user)
管理-用戶,創建和管理用戶。
權限(permission)
可定義相應的用戶類型,如用戶,管理員和超級管理員。
用戶組(groups)
管理-用戶組,創建和配置用戶組。
服務監控(service monitoring)
服務監控,旨在幫助那些想要高級業務監控的人。
在很多情況下,我們關注的不是底層細節,而是提供的可用性服務。
服務是分層表示監控數據。
IT
Workstations
workstation1
workstation2Services
配置-服務,最高節點的服務是'root'。
你可以通過添加低級服務節點和各個節點服務創建下層層次結構。
Web監控(web monitoring)
配置-主機-web監測,創建或修改web監測信息。
可使用zabbix檢查幾個網站可用性方面。(zabbix中包含libcurl庫才行)
要使用web監控,需要定義web場景。包括一個或多個HTTP請求或步驟。Zabbix-Server根據預定義的命令周期性的執行這些步驟。
所有web場景會手機下列數據:
- 整個場景中所有步驟的平均下載速度;
- 失敗的步驟數量;
- 最后一次錯誤信息
web場景的所有步驟,都會收集下列數據:
- 平均下載速度;
- 響應時間
- HTTP狀態嗎
Web監控項(web monitoring items)
在創建web場景時,會自動添加一些新監控項進行監控。
創建場景后,zabbix會自動添加以下監控項進行監控,將它們鏈接到所選的應用程序。
- 場景<scenario>的下載速度;
- 場景<scenario>的失敗步驟;
- 場景<scenario>的最后一個錯誤消息;
舉個栗子:
##創建Web監測
#配置-主機-Web監測-創建web監測
URL:web.zabbix.me/monitor.php
要求的狀態碼:200
超時:20s
##創建web監測觸發器
#配置-主機-觸發器-創建觸發器
嚴重性:一般嚴重
#觸發條件:狀態碼!=200
表達式:N<>200
##創建觸發報警對應的動作
#配置-動作-創建動作
#觸發條件
觸發器示警度=一般嚴重 or 觸發器=web.zabbix.me
#操作:發送Email
發送給zabbix administrator用戶群組
僅送到Email
默認信息/自定義信息
##在媒體類型中定義Email相關信息
#管理-報警媒體類型-Email
SMTP服務器:smtp.xxx.com
smtp端口:465
SMTP電郵:發件人Email
安全鏈接:SSL/TLS
認證:Usernameand passwd
用戶名:xxx
密碼: xxx
##接下來就可以測試接收報警Email了
虛擬機監控(VM monitoring)
zabbix支持對VMware的監控,使用low-levle-discovery(LLD)自動發現VMware hypervisors和虛擬機,并根據事先定義的主機原型,為這些虛擬機建立主機,添加監控。
zabbix中提供了幾個模板,可以直接用來解控VMware vCenter 或 ESX hypervisor。
虛擬機監控分為兩個步驟:
- 首先,zabbix是通過VMware collector進程來監控虛擬機。這些進程通過SOAP協議從VMware服務獲取必要的信息,對其進行預處理并儲存到zabbix-server共享內存中;
- 然后,zabbix-pollers通過zabbix簡單檢查VMware keys來檢索這些數據。
要使虛擬機監控正常工作,需要libxml2庫和libcurl庫的支持。
配置-自動發現-創建自動發現
配置-主機-自動發現
維護(maintenance)
可在zabbix中為主機和主機組定義維護周期。
有兩種維護類型:“繼續對目標進行監控數據的收集” 和 “停止對目標進行監控數據的收集”
要在維護期間正常接收問題通知,必須在動作配置中的選項中取消選擇暫停操作。
為了確保定期維護按照預期的時間進行,需要對zabbix的所有部分使用通用時區。
配置-維護-創建維護期
維護期的主機顯示的是橙色背景!
事件確認(event acknowledgment)
zabbix中的問題事件可以由用戶確認。
如果用戶獲得了有關問題時間的通知,可以訪問zabbix前端,從時間導航到確認屏幕并確認問題。
當他們確認時,可輸入評論或其他一些相關描述。
這樣其他系統用戶同樣的問題,他們便會立即看到是否已被解決和目前的評論。
以這種方式,可以更協調的進行解決多個系統用戶的問題的工作流程。
要確認事件,用戶必須至少要有對相應觸發器的讀取權限。
在Dashboard下,在出現的問題里,點擊確認,進入確認事件。
也可在監控-問題下查看問題詳細信息。
配置導出/導入(Configuration export/import)
zabbix導入/導出功能,使得可以在一個zabbix系統與另一個zabbix系統之間交換各種配置實體。
類似于數據庫的導入導出。即也可以對zabbix做備份。
可導出/導入的對象有:主機組; 模板; 主機; 拓撲; 圖片; 聚合圖形; 值映射。
數據也可導出:
- XML - 在前端
- XML or JSON - 在zabbix API
導出的詳細信息:
- 所有支持的元素都導出到一個文件中;
- 不導出從連鏈接模板繼承的主機和模板實體;
- 由低級別發現創建的實體依賴于他們的任何實體不會導出。
導入詳細信息:
- 第一次遇到錯誤停止導入;
- 導入支持XML和JSON文件;
- 使用“刪除缺失”選項導入主機/模板時,導入的XML文件中不存在主機/模板宏也將被刪除。
將Zabbix展現在Nginx上
畢竟現在Nginx用的多,那就把Apache換成Nginx吧!
Nginx倉庫:http://nginx.org/packages/
自己安裝Nginx:
- 下載
nginx-release-xx.rmp
倉庫源來安裝; - 手動創建
/etc/yum.repo.d/nginx.repo
; - 直接下載
ngix.rpm
來安裝; - 直接下載源碼來安裝。
相較于Apache,Nginx也只是配置個server就行了。優化什么的自己弄。
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
端了!