zabbix入門知識 zabbix中文手冊 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介紹 2.zabbix系統架構圖 3.zabbix的組件 4.zabbix支持的通訊協議 5.zabbix的工作模式 6.zabbix的監控過 ...
zabbix入門知識
zabbix中文手冊
https://www.zabbix.com/documentation/3.4/manual/
1.zabbix介紹
Zabbix 是一個企業級的分散式開源監控方案。
Zabbix是一款能夠監控各種網路參數以及伺服器健康性和完整性的軟體。
Zabbix使用靈活的通知機制,提供了出色的報告和數據可視化功能
Zabbix支持主動輪詢和被動捕獲。
Zabbix基於Web的前端頁面進行訪問。
Zabbix是免費的。
特點:
數據收集
靈活的閥值定義
高度可配置化的告警
實時圖表繪製
Web監控功能
豐富的可視化選項
歷史數據存儲
配置簡單
使用模板
網路發現
簡潔的Web界面
Zabbix API
許可權管理系統
功能強大並易於擴展的監控代理
二進位代碼
為複雜環境準備
2.zabbix系統架構圖
![1.png](C:\Users\shenpc\Desktop\1.png)
![4.png](C:\Users\shen\Desktop\4.png)
![2.png](C:\Users\shenpc\Desktop\2.png)
![3.png](C:\Users\shenpc\Desktop\3.png)
![5.png](C:\Users\shenpc\Desktop\5.png)
3.zabbix的組件
zabbix agent:部署在被監控主機上,負責收集本地數據併發往server端或porxy端。
zabbix server:負責接收agent發送的報告信息的核心組件,所有配置信息、統計數據及操作數據都由其組織進行。
zabbix database:用於存儲所有zabbix的配置信息、監控數據的資料庫。
zabbix web:zabbix的web界面,通過web界面管理zabbix的配置以及查看zabbix相關的監控信息,可以單獨部署在獨立的伺服器上,是server的一部分,通常是在一臺物理機上,若使用使用SQLite則必須在一臺上。
zabbix proxy:用於分散式監控環境中,zabbix proxy某程度上相當於server端,完成局部區域內的信息收集,最終統一發往server端。可幫server分擔負載壓力。
zabbix數據流:
為了創建一個監控項用於採集數據,必須先創建一個主機。轉換到Zabbix功能的其他部分,你必須先有一個監控項來創建觸發器,你必須有一個觸發器來創建動作。 因此,如果你想收到X伺服器CPU負載過高的告警,你必須先為X伺服器創建一個主機實體並關聯一個用於對CPU進行監控的監控項,然後如果CPU負載太高便會激活觸發器,接著會執行一個動作,給你發送告警郵件。雖然看起來有很多步驟,但是使用模板的話可以會很簡單。同時,這個設計可以創建一個非常靈活的配置。
4.zabbix支持的通訊協議
理論上,zabbix能夠監控幾乎所有與業務相關的硬體資源。但是,能監控的前提是能相互間穩定通信。而zabbix支持的協議如下。
agent:通過專用的代理程式進行監控,與常見的master/agent模型類型。若支持的話,優先選用agent。
ssh、telnet:通過遠程式控制制協議進行通信。
SNMP:simple network management protocol,通過snmp協議進行監控,大部分網路設備都支持這種協議,與常見的master/agent模型類型,一般是在這些設備中內置有snmp的agent。
IPMI:通過IPMI介面進行監控,來監控對象的物理特征,如電壓,溫度等。
JMX:java management extensions,通過jmx監控jvm虛擬機。
5.zabbix的工作模式
被動(passive)模式和主動(active)模式
工作模式是對於agent端來說的。
當agent端將採集完的數據主動發往server端的模式為主動模式。
當agent端等待server端來垃圾數據的模式為被動過模式。
主動模式與被動模式在agent端並不衝突,可以同時存在。
agent端使用zabbix_sender工具測試能否向server端發數據,server端使用zabbix_get工具測試能否從agent端拉取數據。
6.zabbix的監控過程
zabbix agent部署在被監控的主機上,由agent採集數據並報告給負責監控的中心主機,中心主機就是master/agent中的master;
負責監控的中心主機為zabbix server,server將從agent端接收信息並存儲到zabbix database中;
管理員是從zabbix web支持的web GUI上查看各種監控信息的,而zabbix web是有php編寫,所以依賴與LAMP環境;
zabbix server和zabbix web都需要與zabbix database相互通信來獲取數據。
當監控規模非常龐大時,就需要用到分散式監控,使用zabbix proxy作為代理來接收agent的提交的數據信息,然後將數據統一發送給zabbix server處理,在局部proxy就相當於server。
7.zabbix常用術語
主機 (host):要監控的網路設備,用IP或DNS名錶示
主機組 (host group):主機的邏輯組;它包含主機和模板。一個主機組裡的主機和模板之間並沒有任何直接的關聯。通常在給不同用戶組的主機分配許可權時候使用主機組。
監控項 (item):要接收的主機的特定數據,一個度量數據,某個監控指標。
鍵(key):想要獲取監控項對應的數據,就需要通過某個key去獲取,可以把key當然調用命令的對應的命令別名。
觸發器 (trigger):一個被用於定義問題閾值和“評估”監控項接收到的數據的邏輯表達式。當接收到的數據高於閾值時,觸發器從“OK”變成“Problem”狀態。當接收到的數據低於閾值時,觸發器保留/返回一個“OK”的狀態。
事件 (event):單次發生的需要註意的事情,例如觸發器狀態改變或發現有監控代理自動註冊
異常 (problem):一個處在“異常”狀態的觸發器
動作 (action): 一個對事件做出反應的預定義的操作,由操作(例如發出通知)和條件(當時操作正在發生)組成
升級 (escalation): 一個在動作內執行操作的自定義場景; 發送通知/執行遠程命令的序列
媒介 (media):發送告警通知的手段;告警通知的途徑
通知 (notification):利用已選擇的媒體途徑把跟事件相關的信息發送給用戶
遠程命令 (remote command):一個預定義好的,滿足一些條件的情況下,可以在被監控主機上自動執行的命令
模版 (template):一組可以被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,LLD,Web場景)的集合,模版的任務就是加快對主機監控任務的實施;也可以使監控任務的批量修改更簡單。模版是直接關聯到每台單獨的主機上。
應用 (application):一組監控項組成的邏輯分組
web 場景 (web scenario):利用一個或多個HTTP請求來檢查網站的可用性
前端 (frontend):Zabbix提供的web界面
Zabbix API:Zabbix API允許你使用JSON RPC協議來創建、更新和獲取Zabbix對象(如主機、監控項、圖形和其他)信息或者執行任何其他的自定義的任務
Zabbix server:Zabbix軟體實現監控的核心程式,主要功能是與Zabbix proxies和Agents進行交互、觸發器計算、發送告警通知;並將數據集中保存等
Zabbix agent:一個部署在監控對象上的,能夠主動監控本地資源和應用的程式
Zabbix proxy:一個幫助Zabbix Server收集數據,分擔Zabbix Server的負載的程式
8.zabbix安裝
1)配置倉庫
wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm(這是個配置倉庫的安裝包,會自動倉庫)
配置好倉庫後,使用yum install來進行安裝
2)zabbix server的安裝
yum install mariadb mariadb-libs mariadb-server zabbix-get zabbix-server-mysql.x86_64 ##(根據安裝的資料庫來選擇包)
初始化zabbix資料庫
安裝mysql數據
創建zabbix資料庫和用戶
MariaDB [(none)]> create database zabbix charset 'utf8';
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'xm1234'; ##這裡設置的本地
MariaDB [(none)]> flush privileges;
初始化zabbix資料庫
通過rpm -ql zabbix-server-mysql找到create.sql.gz。
解壓得到create.sql腳本
gunzip crete.sql.gz
進行初始化
mysql -uroot -p -Dzabbix < create.sql
查看初始情況
msyql -uroot -p
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
根據需要配置/etc/zabbix-server.conf
DBPassword=
啟動服務
systemctl start zabbix-server
3)zabbix proxy的安裝
yum install zabbix-get zabbix-proxy-mysql.x86_64(根據安裝的資料庫來選擇包)
初始化配置和server差不多
4)zabbix web的安裝
yum install zabbix-web.noarch zabbix-web-mysql ##依賴了很多包,包括httpd和php
初始化
創建lamp環境
安裝httpd和php(應該是在安裝zabbix-web時,由依賴關係的原因以下都已安裝,僅需要配置啟動)
yum install httpd php(php-fpm)php-mysql maradb mariadb-libs mariadb-server
啟動httpd
systemctl enable httpd
systemctl start httpd
啟動maradb
配置啟動php
兩種方法,選其一。
1)modules:
yum install php php-mysql
vim /etc/httpd/conf/httpd.conf
在文件尾部加兩行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
添加修改下麵行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
systemctl restart httpd
2)fastcgi:
yum install php-fpm php-mysql
vim /etc/httpd/conf/httpd.conf
在文件尾部加四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
修改下麵行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
systemctl restart httpd
systemctl start php-fpm
配置/etc/httpd/conf.d/zabbix.conf
vim /etc/httpd/conf.d/zabbix.conf
在文件頭部添加
<VirtualHost 192.168.213.175:80>
servername zabbix-server
documentroot /usr/share/zabbix
在文件尾部添加
</VirtualHost>
修改
php_value date.timezone Asia/Shanghai
重啟httpd服務
systemctl restart httpd
5)zabbix agent的安裝
agent 的運行
Zabbix agent運行在被監控主機上。
Zabbix agent在linux上以守護進程運行。
Zabbix agent是是設計在非root賬戶下的。它會以其他任何非root用戶啟動的進程一樣的方式運行。所以,您可以使用任意非root用戶運行agent,且不會產生任何問題。
如果您在’root’賬戶下運行,它將切換到硬編碼的“zabbix”用戶,該用戶必須存在於您的系統上。如果您只想以’root’方式運行proxy,您必須在proxy配額文件里修改‘AllowRoot‘參數。
Zabbix agent成功退出時退出碼為0,異常則退出碼為1。
安裝
yum install zabbix-agent zabbix-sender
配置
vim /etc/zabbix/zabbix_agentd.conf|
##### Passive checks related ##被動監控相關配置
Server=IP1, IP2, ...##允許那台伺服器拉取當前伺服器的數據,用於實現基於ip的訪問控制,若多個ip可用逗號隔開。
ListenPort=10050 ##server端訪問的監聽埠,預設為10050
ListenIP=0.0.0.0 ##本地監聽的地址,預設為0.0.0.0,表示監聽本地所有地址
StartAgents=3 ##用於指定預生成的agent進程數量
##### Active checks related ##主動監控相關配置,agent端主動向server周期性發送數據;
ServerActive=IP1[:port], IP2[:port], ... ##信息推送到那台server伺服器上,若多個ip可用逗號隔開。
Hostname=Unique_HOSTNAME ##指定當前主機名,用於server端的識別。
必須與伺服器配置的監控主機的主機名稱保持一致;
啟動
systemctl start zabbix-agent
9.zabbix web界面初始化
http://zabbix_web_ip/zabbix
1)進入安裝界面,點擊next step
2)進入check of pre-requisites,確認所有狀態都為ok,點擊next step
3)進入configure DB connection,配置資料庫類型,ip,埠,資料庫名,用戶密碼,點擊next step
埠0表示使用預設埠3306
4)進入zabbix server details,配置ip地址,埠,servername,添加name,這個name是你在/etc/httpd/conf.d/zabbix.conf中配置的servername,點擊next step。
5)進入pre-installation summary,檢查,點next step
6)進程如install,點擊finish
7)進入登錄界面,預設username為admin,password為zabbix。
8)登錄後,可以修改英文為中文。
若出現部分字體不能顯示的情況
1》確保/usr/share/zabbix/include/locales.inc.php 中的
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true]
2》上傳你喜歡的字體文件到/usr/share/zabbix/fonts,文件是以.ttf結尾的,不是也修改成。
編輯/usr/share/zabbix/include/defines.inc.php中的
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
define('ZBX_FONT_NAME', 'simkai');
確保simkai是你上傳的字體文件的文件名