前文中已經講述了兩種方式對Zabbix的搭建,本文將講述如何在zaibbx上添加須要監控的主機,以及使用Zabbix自帶模板和自定義模板對主機的CPU、磁盤、內存進行監控,並觸發問題,而且在Zabbix儀表盤建立實時監控圖形。linux
Server-A、Server-B分別安裝zabbix-agentshell
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm # yum install -y zabbix-agent
Server-A、Server-B配置zabbix-agent數據庫
# vim /etc/zabbix/zabbix_agentd.conf
修改如下配置:vim
Server=192.168.152.140 ServerActive=192.168.152.140 # Hostname要與在Zabbix界面配置的Hostname(主機名稱)保持一致 Hostname=Server-A
Server=192.168.152.140 ServerActive=192.168.152.140 # Hostname要與在Zabbix界面配置的Hostname(主機名稱)保持一致 Hostname=Server-B
分別啓動zabbix-agentapp
# systemctl start zabbix-agent
能夠查看agent日誌測試
# tailf /var/log/zabbix/zabbix_agentd.log
可能會出現如下內容,是因爲zabbix界面上沒有配置主機,接下來將在zabbix頁面上進行主機配置3d
6981:20191030:111132.151 no active checks on server [192.168.152.140:10051]: host [Server-A] not found
經過頁面操做,將須要監控的主機添加到zabbix中代理
登陸Zabbix,默認帳號:Zabbix,默認密碼:admin (可在zabbix數據庫 users表查詢)日誌
首先配置【主機】信息,添加Server-A,輸入配置項code
配置項 | 值 |
---|---|
* 主機名稱 | Server-A |
可見的名稱 | Server-A |
* 羣組 | Linux servers (進行選擇) |
* agent代理程序的接口 | IP地址: 192.168.152.142 端口: 10050 |
最後點擊【保存】
在【主機】頁面能夠看到Server-A已經成功添加了
同時,Server-A的zabbix-agent日誌也再也不打印 host [Server-A] not found
注: 因爲在以前在安裝Zabbix server時,也在zabbix server上安裝了zabbix-agent,所以圖例上除了Server-A主機之外,還有zabbix server主機
經過全克隆添加主機Server-B
選擇須要複製的主機Server-A
點擊【全克隆】(full clone)
修改主機名稱、agent IP地址等信息
修改配置項 | 值 |
---|---|
*主機名稱 | Server-B |
*agent IP | 192.168.152.143 |
最後點擊【添加】,等待Server-B與zabbix server創建通訊
在添加主機步驟中,添加了2臺須要監控的主機,添加監控項時也能夠給每臺主機單獨添加監控項,可是隨着主機數量增多,就會出現過多重複的操做,所以可使用zabbix的Templates(模板)將Items(監控項和Triggers(觸發器)等衆多配置定義在模板中,將主機連接到定義好的模板上,就能夠免去重複的操做。
下面將自定義模板,定義監控磁盤剩餘空間監控項,並配置觸發器當磁盤剩餘空間低於必定閾值時觸發告警。
點擊【配置】-【模板】-【建立模板】
輸入模板信息,完成後點擊【添加】
配置項 | 值 |
---|---|
* 模版名稱 | Template Disk Free Size |
可見的名稱 | Template Disk Free Size |
* 羣組 | Linux servers (選擇) |
描述 | 自定義磁盤剩餘空間模板 |
注: 讀者也能夠自定義一個羣組,並在自定義羣組中建立模板,這個步驟本文再也不示範
建立自定義磁盤監控項(Item)
進入自定義模板的監控項模塊
點擊【建立監控項】
輸入監控參數
配置項 | 值 |
---|---|
* 名稱 | 磁盤剩餘空間監控項 |
類型 | Zabbix 客戶端 |
* 鍵值 | vfs.fs.size[/,free] |
單位 | B |
……其餘配置項 | 根據須要填寫 |
這裏的鍵值 vfs.fs.size[/,free]是指,監控根路徑下,空餘的磁盤大小
點擊【添加】
注:建立監控項(Items)能夠參考官方建立監控項, 更多的鍵值(Keys)能夠參考官方監控項類型
觸發器能夠配置當監控項監控到的數據達到必定閾值,從而觸發問題。
在Template Disk Free Size模板中選擇【觸發器】,點擊【建立觸發器】
輸入觸發器參數
配置項 | 值 |
---|---|
* 名稱 | 磁盤剩餘空間觸發器 |
嚴重性 | 嚴重(選擇) |
* 表達式/問題表現形式 | {Template Disk Free Size:vfs.fs.size[/,free].last()}<15000000000 (可經過選擇監控項) |
事件成功迭代 | 恢復表達式(選擇) |
* 恢復表達式 | {Template Disk Free Size:vfs.fs.size[/,free].last()}>=15000000000 |
問題事件生成模式 | 多重(選擇) |
表達式/問題表示形式
選擇已配置的磁盤剩餘空間監控項
配置結果 < 15000000000, 監控項中單位爲B,這裏15GB換算成15000000000B
點擊【插入】,能夠看到以下表達式,表達式意思是,當檢測到磁盤弓箭剩餘不足15GB時,將觸發問題
{Template Disk Free Size:vfs.fs.size[/,free].last()}<15000000000
所以能夠直接輸入問題恢復表達式,即磁盤剩餘空間高於15GB時,恢復問題
{Template Disk Free Size:vfs.fs.size[/,free].last()}>=15000000000
點擊【添加】
再將該自定義模板,連接到Server-A、Server-B主機的模板中,參考建立主機添加連接,不過在篩選模板時,羣組要選擇Linux servers(與建立模板時羣組保持一致),添加後點擊【更新】
進入【配置】-【主機】-【Server-A】(或者 Server-B)-【監控項】中,能夠搜索到磁盤剩餘空間監控項已經添加成功
注:若是監控項狀態不爲【已啓動】能夠查看zabbix server日誌進行排查
測試一下
當前Server-A主機磁盤剩餘空間,爲15G
上傳一些文件到Server-A,此時磁盤剩餘空間爲14G
等待Zabbix監控到Server-A磁盤變化,查看儀表盤,出現問題,配置成功
刪除Server-A大文件,等待Zabbix監控到主機磁盤恢復,儀表盤問題恢復
在添加主機時,因爲已經連接了Template OS Linux by Zabbix agent模板(該模板還連接了Template Module Linux CPU by Zabbix agent等若干個其餘模板),Template Module Linux CPU by Zabbix agent模板自帶了許多監控項,其中包括CPU idle time 監控項,所以能夠直接使用該監控項監控主機CPU空閒率數值,無需自定義監控項,只須要添加一個觸發器(Trigger)來讀取監控項觸發告警便可。
注: zabbix自帶模板中,有許多監控項能夠直接利用起來,無需再單首創建監控項,使用時可先在已有模板中查找下可用的監控項。
使用自帶模板中監控項
直接使用CPU idle time 監控項便可,能夠在【配置】-【主機】,【Server-A】的【監控項】中搜索到該監控項(在下圖中能夠看到該監控項連接了模板)
在已有模板中添加觸發器(trigger)
這裏在模板Template Module Linux CPU by Zabbix agent添加一個觸發器。
點擊【配置】-【模板】搜索模板Template Module Linux CPU by Zabbix agent,並進入【觸發器】配置
建立觸發器操做流程參考上面步驟中的建立自定義觸發器,這裏說明一下配置參數
配置項 | 值 |
---|---|
* 名稱 | CPU空閒率觸發器 |
嚴重性 | 嚴重 (選擇) |
表達式/問題表現式 | {Template Module Linux CPU by Zabbix agent:system.cpu.util[,idle].avg(5m)}>=80 |
事件成功迭代 | 恢復表達式(選擇) |
* 恢復表達式 | {Template Module Linux CPU by Zabbix agent:system.cpu.util[,idle].avg(5m)}<80 |
表達式/問題表現式:表示在5分鐘內CPU平均空閒率若是高於80%,那麼將觸發問題
添加表達式示例:
system.cpu.util[,idle]官方說明
測試一下
等待5分鐘,Zabbix server、Server-A、Server-B的CPU空閒率都高於80%,Dashboard界面觸發了問題,因爲Zabbix server主機也連接了Template OS Linux by Zabbix agent模板,所以修改Template Module Linux CPU by Zabbix agent模板,Zabbix server的CPU空閒率也被監控,因此在修改模板時要注意。
在上面的步驟中添加了磁盤剩餘空間、CPU空閒率監控,直接使用了Zabbix 客戶端類型的監控項的鍵值,可是有些監控項可能不能直接獲取,須要經過計算的方式來獲取,例如監控內存佔用率,雖然可使用vm.memory.size這個鍵值,可是獲得值並非咱們所指望的,參考下面官方的解釋,雖然mode中有pused (used, percentage),可是"used"="total - free" 而 「available"="free + buffers + cached"(內核版本Linux<3.14),實際是想要的值:
(available - total) / total
所以須要使用可計算的鍵值類型
官方對vm.memory.size以及參數解釋:
在Template OS Linux by Zabbix agent模板新增監控項
配置項 | 值 |
---|---|
* 名稱 | 內存佔用率監控項 |
類型 | 可計算的 |
* 鍵值 | memory.utilization (自定義) |
* 公式 | 100*(last("vm.memory.size[total]")-last("vm.memory.size[available]"))/last("vm.memory.size[total]") |
信息類型 | 浮點數 |
單位 | % |
……其餘配置項 | 默認便可 |
自定義鍵值可本身輸入,具體規則參考官方鍵值規則
這裏就再也不建立觸發器了,感興趣的讀者能夠自行建立,可參考上面的觸發器建立步驟
能夠在首頁儀表盤裏建立圖形,實時查看監控項的數據值。
回到zabbix首頁,點擊【編輯儀表盤】-【添加構件】
輸入基本信息
添加【主機】和【監控項】
左邊一欄選擇主機Server-A,右邊一欄選擇Server-A的磁盤監控項
再【添加新數據集】,一樣操做將Server-B的磁盤監控也添加到圖形中
添加CPU空閒率圖形
按照上面的步驟,添加Server-A,Server-B的CPU空閒率圖形
添加內存佔用率圖形
一樣按照上面的步驟,添加Server-A,Server-B的內存佔用率圖形
保存設置並在儀表盤中查看
點擊【保存設置】
在儀表盤頁面查看圖形