溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

zabbix監(jiān)控平臺(tái)部署詳細(xì)文檔

發(fā)布時(shí)間:2020-03-09 09:34:16 來(lái)源:網(wǎng)絡(luò) 閱讀:1302 作者:w王不二 欄目:云計(jì)算

監(jiān)控系統(tǒng)介紹

一:監(jiān)控介紹

1.監(jiān)控軟件介紹:
使用 SNMP 協(xié)議獲取主機(jī) CPU、內(nèi)存、磁盤、網(wǎng)卡流量等數(shù)據(jù).
用腳本將獲取到的 SNMP 數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,然后再使用一種名為 MRTG 的軟件根據(jù)獲取的數(shù)據(jù)繪制圖表來(lái)分析數(shù)據(jù)的變化。MRTG(Multi Router Traffic Grapher),顧名思義,這款軟件最初是設(shè)計(jì)用于監(jiān)控網(wǎng)絡(luò)
鏈路流量負(fù)載的。它可以用過(guò) SNMP 獲取到設(shè)備的流量信息,并根據(jù)這些信息繪制成圖表并保存為 PNG 格式的圖片,再將這些 PNG 圖片以HTML 頁(yè)面的方式顯示給用戶.

不過(guò),MRTG 展示的頁(yè)面和圖表曲線相對(duì)簡(jiǎn)陋,它在一張圖片中最多只能繪制兩個(gè)數(shù)據(jù)的變化曲線,并且由于是 PNG 格式的靜態(tài)圖片,所以無(wú)法針對(duì)某一時(shí)間進(jìn)行細(xì)化展示。為了解決這個(gè)問(wèn)題,人們又開發(fā)了
RRDTOOL 工具.

不過(guò),直接使用 RRD TOOL 繪圖操作起來(lái)很麻煩。同時(shí),現(xiàn)如今的數(shù)據(jù)中心動(dòng)輒成百上千的設(shè)備,一個(gè)個(gè)的去提取、繪制、監(jiān)控顯然是不現(xiàn)實(shí)的事情.

Cacti 是一套基于 PHP、MySQL、SNMP 及 RRD Tool 開發(fā)的監(jiān)測(cè)圖形分析工具,Cacti 是使用輪詢的方式由主服務(wù)器向設(shè)備發(fā)送數(shù)據(jù)請(qǐng)求來(lái)獲取設(shè)備上狀態(tài)數(shù)據(jù)信息的,如果設(shè)備不斷增多,這個(gè)輪詢的過(guò)程就非常的耗時(shí),輪詢的結(jié)果就不能即時(shí)的反應(yīng)設(shè)備的狀態(tài)了。Cacti 監(jiān)控關(guān)注的是對(duì)數(shù)據(jù)的展示,
卻不關(guān)注數(shù)據(jù)異常后的反饋。如果凌晨 3 點(diǎn)的時(shí)候設(shè)備的某個(gè)數(shù)據(jù)出現(xiàn)異常,除非監(jiān)控人員在屏幕前發(fā)現(xiàn)這個(gè)異常變化,否則是沒(méi)有任何報(bào)警機(jī)制能夠讓我們道出現(xiàn)了異常。

Nagios 是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)控報(bào)警服務(wù),能有效監(jiān)控 Windows、Linux 和 Unix 的主機(jī)狀態(tài),交換機(jī)、路由器和防火墻等網(wǎng)絡(luò)設(shè)置,打印機(jī)、網(wǎng)絡(luò)投影、網(wǎng)絡(luò)攝像等設(shè)備。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件
或短信報(bào)警第一時(shí)間通知運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。Nagios 有完善的插件功能,可以方便的根據(jù)應(yīng)用服務(wù)擴(kuò)展功能。

Nagios 已經(jīng)可以支持由數(shù)萬(wàn)臺(tái)服務(wù)器或上千臺(tái)網(wǎng)絡(luò)設(shè)備組成的云技術(shù)平臺(tái)的監(jiān)控,它可以充分發(fā)揮自

動(dòng)化運(yùn)維技術(shù)特點(diǎn)在設(shè)備和人力資源減少成本。只是 Nagios 無(wú)法將多個(gè)相同應(yīng)用集群的數(shù)據(jù)集合起來(lái),也不能監(jiān)控到集群中特殊節(jié)點(diǎn)的遷移和恢復(fù)。

一個(gè)新的監(jiān)控服務(wù)根據(jù)這個(gè)需求被設(shè)計(jì)出來(lái),它就是 Ganglia。
Ganglia 是 UC Berkeley 發(fā)起的一個(gè)開源集群監(jiān)視項(xiàng)目,設(shè)計(jì)用于測(cè)量數(shù)以千計(jì)的節(jié)點(diǎn)。Ganglia 的核心包含gmond、gmetad 以及一個(gè) Web 前端。主要是用來(lái)監(jiān)控系統(tǒng)性能,如:CPU 、內(nèi)存、硬盤利用率, I/O 負(fù)載、網(wǎng)
絡(luò)流量情況等,通過(guò)曲線很容易見(jiàn)到每個(gè)節(jié)點(diǎn)的工作狀態(tài),對(duì)合理調(diào)整、分配系統(tǒng)資源,提高系統(tǒng)整體性能起到重要作用,目前是監(jiān)控HADOOP 的官方推薦服務(wù)。

Zabbix 是一個(gè)基于 WEB 界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。
zabbix 能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營(yíng);并提供靈活的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問(wèn)題。

Zabbix 是由 Alexei Vladishev 創(chuàng)建,目前由 Zabbix SIA 在持續(xù)開發(fā)和支持。
Zabbix 是一個(gè)企業(yè)級(jí)的分布式開源監(jiān)控方案。
Zabbix 是一款能夠監(jiān)控各種網(wǎng)絡(luò)參數(shù)以及服務(wù)器健康性和完整性的軟件。Zabbix使用靈活的通知機(jī)制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣可以快速反饋服務(wù)器的問(wèn)題?;谝汛鎯?chǔ)的數(shù)

據(jù),Zabbix提供了出色的報(bào)告和數(shù)據(jù)可視化功能。這些功能使得Zabbix成為容量規(guī)劃的理想方案。Zabbix支持主動(dòng)輪詢和被動(dòng)捕獲。Zabbix所有的報(bào)告、統(tǒng)計(jì)信息和配置參數(shù)都可以通過(guò)基于Web的前

1/50

端頁(yè)面進(jìn)行訪問(wèn)?;赪eb的前端頁(yè)面可以確保您從任何方面評(píng)估您的網(wǎng)絡(luò)狀態(tài)和服務(wù)器的健康性。適當(dāng)?shù)呐渲煤?,Zabbix可以在IT基礎(chǔ)架構(gòu)監(jiān)控方面扮演重要的角色。對(duì)于只有少量服務(wù)器的小型組織和擁有大量服務(wù)器的大型公司也同樣如此。

Zabbix是免費(fèi)的。Zabbix是根據(jù)GPL通用公共許可證第2版編寫和發(fā)行的。這意味著它的源代碼都是免費(fèi)發(fā)行的,可供公眾任意使用。

2.監(jiān)控軟件區(qū)別

1.nagios圖形不是特別好,也可以安裝圖形插件,但是也不怎么好看2.nagios一般情況下如果需要圖形可以和cacti配合使用3.cacti的監(jiān)控是輪詢監(jiān)控,效率低,圖形相對(duì)nagios比較好看
4.zabbix和nagios因?yàn)槭遣l(fā)監(jiān)控,對(duì)cpu的要求更高
5.zabbix在性能和功能上都強(qiáng)大很多
6.zabbix的圖形相當(dāng)漂亮7.支持多種監(jiān)控方式 zabbix-agent snmp 等等
8.支持分布式監(jiān)控,能監(jiān)控的agent非常多9.zabbix有圖形的web配置界面,配置簡(jiǎn)潔
10.zabbix支持自動(dòng)發(fā)現(xiàn)功能

zabbix概述

一:zabbix 監(jiān)控架構(gòu)
監(jiān)控中心zabbix-server
|


| |

---proxy--- ---proxy---

| | | |

agent agent agent agent

二:zabbix 監(jiān)控郵件報(bào)警架構(gòu)
postfix
郵局(MTA)------郵遞員(smtp 25)------郵局(MTA)

| |

MDA maildrop dovecote MDA

| |
郵遞員(smtp 25) 郵遞員(pop3 110 imap 143)
| dns |
郵筒(MUA) 郵筒(MUA)

| |

2/50

lilei(user1) hanmeimei(user2)

agent 代理 proxy 代理

三:Zabbix 優(yōu)點(diǎn)

開源,無(wú)軟件成本投入 Server 對(duì)設(shè)備性能要求低
支持設(shè)備多,自帶多種監(jiān)控模板支持分布式集中管理,有自動(dòng)發(fā)現(xiàn)功能,可以實(shí)現(xiàn)自動(dòng)化監(jiān)控開放式接口,擴(kuò)展性強(qiáng),插件編寫容易

當(dāng)監(jiān)控的 item 比較多服務(wù)器隊(duì)列比較大時(shí)可以采用被動(dòng)狀態(tài),被監(jiān)控客戶端主動(dòng) 從server 端去下載需要監(jiān)控的 item 然后取數(shù)據(jù)上傳到 server 端。 這種方式對(duì)服務(wù)器的負(fù)載比較小。
Api 的支持,方便與其他系統(tǒng)結(jié)合

四:Zabbix 缺點(diǎn)需在被監(jiān)控主機(jī)上安裝 agent,所有數(shù)據(jù)都存在數(shù)據(jù)庫(kù)里, 產(chǎn)生的數(shù)據(jù)據(jù)很大,瓶頸主要在數(shù)據(jù)庫(kù)。

五:Zabbix 監(jiān)控系統(tǒng)監(jiān)控對(duì)象
數(shù)據(jù)庫(kù): MySQL,MariaDB,Oracle,SQL Server
應(yīng)用軟件:Nginx,Apache,PHP,Tomcat agent

集群: LVS,Keepalived,HAproxy,RHCS,F5

虛擬化: VMware,KVM,XEN agent
操作系統(tǒng):Linux,Unix,Windows性能參數(shù)

硬件: 服務(wù)器,存儲(chǔ),網(wǎng)絡(luò)設(shè)備 IPMI
網(wǎng)絡(luò): 網(wǎng)絡(luò)環(huán)境(內(nèi)網(wǎng)環(huán)境,外網(wǎng)環(huán)境) SNMP


六:Zabbix 架構(gòu)

Zabbix由幾個(gè)主要的軟件組件構(gòu)成,這些組件的功能如下。

3/50

1、Server

Zabbix server 是agent程序報(bào)告系統(tǒng)可用性、系統(tǒng)完整性和統(tǒng)計(jì)數(shù)據(jù)的核心組件,是所有配置信息、統(tǒng)計(jì)信息和操作數(shù)據(jù)的核心存儲(chǔ)器。

2、數(shù)據(jù)庫(kù)存儲(chǔ)所有配置信息和Zabbix收集到的數(shù)據(jù)都被存儲(chǔ)在數(shù)據(jù)庫(kù)中。

3、Web界面
為了從任何地方和任何平臺(tái)都可以輕松的訪問(wèn)Zabbix, 我們提供基于Web的Zabbix界面。該界面是
Zabbix Server的一部分,通常(但不一定)跟Zabbix Server運(yùn)行在同一臺(tái)物理機(jī)器上。
如果使用SQLite,Zabbix Web界面必須要跟Zabbix Server運(yùn)行在同一臺(tái)物理機(jī)器上。

4、Proxy 代理服務(wù)器

Zabbix proxy 可以替Zabbix Server收集性能和可用性數(shù)據(jù)。Proxy代理服務(wù)器是Zabbix軟件可選擇部署的一部分;當(dāng)然,Proxy代理服務(wù)器可以幫助單臺(tái)Zabbix Server分擔(dān)負(fù)載壓力。

5、Agent監(jiān)控代理
Zabbix agents監(jiān)控代理 部署在監(jiān)控目標(biāo)上,能夠主動(dòng)監(jiān)控本地資源和應(yīng)用程序,并將收集到的數(shù)據(jù)報(bào)告給Zabbix Server。

6、數(shù)據(jù)流
此外,了解Zabbix內(nèi)部的數(shù)據(jù)流同樣很重要。監(jiān)控方面,為了創(chuàng)建一個(gè)監(jiān)控項(xiàng)(item)用于采集數(shù)據(jù),必
須先創(chuàng)建一個(gè)主機(jī)(host)。告警方面,在監(jiān)控項(xiàng)里創(chuàng)建觸發(fā)器(trigger),通過(guò)觸發(fā)器(trigger)來(lái)觸發(fā)告警動(dòng)作(action)。 因此,如果你想收到Server XCPU負(fù)載過(guò)高的告警,你必須: 1. 為Server X創(chuàng)建一個(gè)host并關(guān)聯(lián)一個(gè)用于對(duì)CPU進(jìn)行監(jiān)控的監(jiān)控項(xiàng)(Item)。 2. 創(chuàng)建一個(gè)Trigger,設(shè)置成當(dāng)CPU負(fù)載過(guò)高時(shí)會(huì)觸發(fā) 3.
Trigger被觸發(fā),發(fā)送告警郵件 雖然看起來(lái)有很多步驟,但是使用模板的話操作起來(lái)其實(shí)很簡(jiǎn)單,Zabbix這樣的設(shè)計(jì)使得配置機(jī)制非常靈活易用。

七:Zabbix常用術(shù)語(yǔ)的含義

1、主機(jī) (host)

4/50

一臺(tái)你想監(jiān)控的網(wǎng)絡(luò)設(shè)備,用IP或域名表示

2、主機(jī)組 (host group)

主機(jī)的邏輯組;它包含主機(jī)和模板。一個(gè)主機(jī)組里的主機(jī)和模板之間并沒(méi)有任何直接的關(guān)聯(lián)。通常在給不同用戶組的主機(jī)分配權(quán)限時(shí)候使用主機(jī)組。

3、監(jiān)控項(xiàng) (item)

你想要接收的主機(jī)的特定數(shù)據(jù),一個(gè)度量數(shù)據(jù)。

4、觸發(fā)器 (trigger)

一個(gè)被用于定義問(wèn)題閾值和“評(píng)估”監(jiān)控項(xiàng)接收到的數(shù)據(jù)的邏輯表達(dá)式 當(dāng)接收到的數(shù)據(jù)高于閾值時(shí),觸發(fā)器從“OK”變成“Problem”狀態(tài)。當(dāng)接收到的數(shù)據(jù)低于閾值時(shí),觸發(fā)器保留/返回一個(gè)“OK”的狀態(tài)。

5、事件 (event)

單次發(fā)生的需要注意的事情,例如觸發(fā)器狀態(tài)改變或發(fā)現(xiàn)有監(jiān)控代理自動(dòng)注冊(cè)

6、異常 (problem)

一個(gè)處在“異?!睜顟B(tài)的觸發(fā)器

7、動(dòng)作 (action)

一個(gè)對(duì)事件做出反應(yīng)的預(yù)定義的操作。 一個(gè)動(dòng)作由操作(例如發(fā)出通知)和條件(當(dāng)時(shí)操作正在發(fā)生)組

8、升級(jí) (escalation)
一個(gè)在動(dòng)作內(nèi)執(zhí)行操作的自定義場(chǎng)景; 發(fā)送通知/執(zhí)行遠(yuǎn)程命令的序列

9、媒介 (media)

發(fā)送告警通知的手段;告警通知的途徑

10、通知 (notification)

利用已選擇的媒體途徑把跟事件相關(guān)的信息發(fā)送給用戶

11、遠(yuǎn)程命令 (remote command)

一個(gè)預(yù)定義好的,滿足一些條件的情況下,可以在被監(jiān)控主機(jī)上自動(dòng)執(zhí)行的命令

12、模版 (template)

一組可以被應(yīng)用到一個(gè)或多個(gè)主機(jī)上的實(shí)體(監(jiān)控項(xiàng),觸發(fā)器,圖形,聚合圖形,應(yīng)用,LLD,Web場(chǎng)景)的集合模版的任務(wù)就是加快對(duì)主機(jī)監(jiān)控任務(wù)的實(shí)施;也可以使監(jiān)控任務(wù)的批量修改更簡(jiǎn)單。模版是直接關(guān)聯(lián)到每臺(tái)單獨(dú)的主機(jī)上。

13、應(yīng)用 (application)

一組監(jiān)控項(xiàng)組成的邏輯分組

14、web 場(chǎng)景 (web scenario)

利用一個(gè)或多個(gè)HTTP請(qǐng)求來(lái)檢查網(wǎng)站的可用性

15、前端 (frontend) Zabbix提供的web界面

16、Zabbix API
Zabbix API允許你使用JSON RPC協(xié)議 (是一個(gè)無(wú)狀態(tài)且輕量級(jí)的遠(yuǎn)程過(guò)程調(diào)用(RPC)傳送協(xié)議,其傳遞內(nèi)容透過(guò) JSON 為主) 來(lái)創(chuàng)建、更新和獲取Zabbix對(duì)象(如主機(jī)、監(jiān)控項(xiàng)、圖形和其他)信息或者執(zhí)行任何其他的自定義的任務(wù)

17、Zabbix server
Zabbix軟件實(shí)現(xiàn)監(jiān)控的核心程序,主要功能是與Zabbix proxies和Agents進(jìn)行交互、觸發(fā)器計(jì)算、發(fā)送告警通知;并將數(shù)據(jù)集中保存等

18、Zabbix agent
一個(gè)部署在監(jiān)控對(duì)象上的,能夠主動(dòng)監(jiān)控本地資源和應(yīng)用的程序 Zabbix agent部署在監(jiān)控的目標(biāo)上,主動(dòng)監(jiān)測(cè)本地的資源和應(yīng)用(硬件驅(qū)動(dòng),內(nèi)存,處理器統(tǒng)計(jì)等)。 Zabbix agent收集本地的操作信息并將數(shù)據(jù)

5/50

報(bào)告給Zabbix server用于進(jìn)一步處理。一旦出現(xiàn)異常 (比如硬盤空間已滿或者有崩潰的服務(wù)進(jìn)程), Zabbix

server會(huì)主動(dòng)警告管理員指定機(jī)器上的異常。. Zabbix agents 的極端高效緣于它可以利用本地系統(tǒng)調(diào)用來(lái)完成統(tǒng)計(jì)數(shù)據(jù)的收集。

19、被動(dòng)(passive)和主動(dòng)(active)檢查

Zabbix agents可以執(zhí)行被動(dòng)和主動(dòng)兩種檢查方式。 在passive check 模式中agent應(yīng)答數(shù)據(jù)請(qǐng)求, Zabbix server(或者proxy)詢問(wèn)agent數(shù)據(jù),如CPU 的負(fù)載情況,然后Zabbix agent回送結(jié)果。 Active checks
處理過(guò)程將相對(duì)復(fù)雜。 Agent必須首先從Zabbix sever索取監(jiān)控項(xiàng)列表以進(jìn)行獨(dú)立處理,然后周期性地發(fā)送新的值給server。 執(zhí)行被動(dòng)或主動(dòng)檢查是通過(guò)選擇相應(yīng)的監(jiān)測(cè)項(xiàng)目類型來(lái)配置的。item type. Zabbix agent
處理監(jiān)控項(xiàng)類型有’Zabbix agent’和’Zabbix agent (active)’。

20、Zabbix proxy 一個(gè)幫助Zabbix Server收集數(shù)據(jù),分擔(dān)Zabbix Server的負(fù)載的程序 Zabbix Proxy是一個(gè)可以從一個(gè)或多
個(gè)受監(jiān)控設(shè)備收集監(jiān)控?cái)?shù)據(jù),并將信息發(fā)送到Zabbix sever的進(jìn)程,基本上是代表sever工作的。 所有收集的數(shù)據(jù)都在本地進(jìn)行緩存,然后傳送到proxy所屬的Zabbix sever。 部署Proxy是可選的,,但是可能非常有益于分散單個(gè)Zabbix sever的負(fù)載。 如果只有proxy收集數(shù)據(jù),sever上的進(jìn)程就會(huì)減少CPU消耗和磁盤I / O負(fù)
載。 Zabbix proxy是完成遠(yuǎn)程區(qū)域、分支機(jī)構(gòu)、沒(méi)有本地管理員的網(wǎng)絡(luò)的集中監(jiān)控的理想解決方案。
Zabbix proxy需要使用獨(dú)立的數(shù)據(jù)庫(kù)。

21、主動(dòng)/被動(dòng)模式
主動(dòng)、被動(dòng)模式都是相對(duì)于proxy來(lái)說(shuō)的。proxy主動(dòng)發(fā)送數(shù)據(jù)就是主動(dòng)模式;proxy等待server的請(qǐng)求,再發(fā)
送數(shù)據(jù)就是被動(dòng)模式。因?yàn)橹鲃?dòng)模式可以有效減輕zabbix server壓力,需要監(jiān)控的東西很多時(shí)一定要把監(jiān)控模式更改為主動(dòng)監(jiān)控被動(dòng)模式流程,被動(dòng)模式一定要記得設(shè)置Server = ServerIP

被動(dòng)模式工作流程: Server 打開一個(gè)TCP連接
Server發(fā)送一個(gè)key 為agent.ping Agent接受這個(gè)請(qǐng)求,然后響應(yīng)< HEADER >< DATALEN > Server對(duì)接受到的數(shù)據(jù)進(jìn)行處理TCP連接關(guān)閉

主動(dòng)模式流程,主動(dòng)模式一定要記得設(shè)置ServerActive=ServerIP Agent向Server建立一個(gè)TCP連接
Agent請(qǐng)求需要檢測(cè)的數(shù)據(jù)列表
Server響應(yīng)Agent,發(fā)送一個(gè)Items列表
Agent允許響應(yīng)
TCP連接完成本次會(huì)話關(guān)閉
Agent開始周期性地收集數(shù)據(jù)

zabbix部署

1、實(shí)驗(yàn)準(zhǔn)備

centos7.5 系統(tǒng)服務(wù)器3臺(tái)、 一臺(tái)作為監(jiān)控服務(wù)器, 兩臺(tái)臺(tái)作為被監(jiān)控節(jié)點(diǎn), 配置好yum源、 防火墻關(guān)閉、 各節(jié)點(diǎn)時(shí)鐘服務(wù)同步、 各節(jié)點(diǎn)之間可以通過(guò)主機(jī)名互相通信。

1)所有機(jī)器關(guān)閉防火墻和selinux setenforing 0 (修改配置文件關(guān)閉)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld.service

2)根據(jù)架構(gòu)圖,實(shí)驗(yàn)基本設(shè)置如下:

機(jī)器名稱 IP配置 服務(wù)角色 備注
server 192.168.19.137 zabbix-server 開啟監(jiān)控功能
node1 192.168.19.135 zabbix-agent 開啟
node2 192.168.19.136 zabbix-agent 開啟

2、Zabbix的安裝
1)更新yum倉(cāng)庫(kù)
我們?nèi)ス倬W(wǎng)下載一個(gè)包zabbix-release-3.4-2.el7.noarch.rpm,本地安裝至我們的虛擬機(jī),這樣,我們本地就有了新的yum源,可以直接安裝zabbix服務(wù): yum -y install wget

wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

安裝zabbix源(官方)
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm http://120.52.51.16/repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-agent-4.2.0-0.1alpha1.el7.x86_64.rpm

下載安裝:

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
而后更新我們的yum倉(cāng)庫(kù):
[root@server ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
zabbix-non-supported 4/4
repo id repo name status
base base 9,363

7/50

epel epel 11,349
zabbix/x86_64 Zabbix Official Repository - x86_64 80
zabbix-non-supported/x86_64 Zabbix Official Repository non-supported - 4
repolist: 20,796

安裝:

[root@server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

2)安裝設(shè)置數(shù)據(jù)庫(kù):
1、創(chuàng)建 mariadb.repo
vim /etc/yum.repos.d/mariadb.repo
寫入以下內(nèi)容:
[mariadb]

name = MariaDB

baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 2、yum 安裝最新版本 mariadb

yum install MariaDB-server MariaDB-client

首先,我們修改一下配置文件——/etc/my.cnf.d/server.cnf:
[root@server ~]# vim /etc/my.cnf.d/server.cnf
[mysqld] #跳過(guò)主機(jī)名解析

skip_name_resolve = ON
innodb_file_per_table = ON # #緩存池大小
innodb_buffer_pool_size = 256M
max_connections = 2000 #最大連接數(shù)
log-bin = master-log #開啟二進(jìn)制日志
2、重啟我們的數(shù)據(jù)庫(kù)服務(wù):
[root@server ~]# systemctl restart mariadb
[root@server ~]# mysql_secure_installation #初始化mariadb
3、創(chuàng)建數(shù)據(jù)庫(kù)并授權(quán)賬號(hào)
MariaDB [(none)]> create database zabbix character set 'utf8'; # 創(chuàng)建zabbix數(shù)據(jù)庫(kù)
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.19.%' identified by 'passswd'; # 注意
授權(quán)網(wǎng)段
MariaDB [(none)]> flush privileges; # 刷新授權(quán)

4、導(dǎo)入表

[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: #輸入密碼
導(dǎo)入以后,我們進(jìn)去數(shù)據(jù)庫(kù)查看一下:

[root@zabbix-server zabbix-server-mysql-3.4.15]# mysql -uzabbix -p Enter password:

MariaDB [(none)]> show databases;

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
MariaDB [(none)]> use zabbix;

Database changed

MariaDB [zabbix]> show tables;

+----------------------------+

| Tables_in_zabbix |

8/50

+---------------------------- +
| acknowledges |
| actions |
.....
| proxy_dhistory |
| proxy_history |
| regexps |
| rights |
| screen_user |
+---------------------------- +
140 rows in set (0.001 sec)

5.配置zabbix server
我們的數(shù)據(jù)庫(kù)準(zhǔn)備好了以后,我們要去修改server端的配置文件。
[root@zabbix-server ~]# cd /etc/zabbix/ [root@zabbix-server zabbix]# ls

web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
#為了方便我們以后恢復(fù),我們把配置文件備份一下

[root@zabbix-server zabbix]# cp zabbix_server.conf zabbix_server.conf.bak [root@zabbix-server zabbix]# vim zabbix_server.conf DBHost=localhost #數(shù)據(jù)庫(kù)對(duì)外的主機(jī) DBName=zabbix #數(shù)據(jù)庫(kù)名稱

DBUser=zabbix #數(shù)據(jù)庫(kù)用戶 DBPassword=zabbix #數(shù)據(jù)庫(kù)密碼
#這里的配置文件打開后:如果有的就不用添加了。如果是注釋了的也不用取消注釋。直接把內(nèi)容復(fù)制粘貼過(guò)去就可以 了。

以上,我們的基本配置已經(jīng)完成,可以開啟服務(wù)了:

[root@zabbix-server zabbix]# systemctl start zabbix-server [root@zabbix-server zabbix]# systemctl enable zabbix-server

Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/ system/zabbix-server.service.
開啟服務(wù)以后,我們一定要去確認(rèn)一下我們的端口有沒(méi)有開啟:

[root@zabbix-server zabbix]# netstat -lntp | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0: LISTEN 1574/zabbix_server
tcp6 0 0 :::10051 :::
LISTEN 1574/zabbix_server

6.配置web GUI

有一個(gè)/etc/httpd/conf.d/zabbix.conf文件,這個(gè)配置文件就是幫我們做映射的文件 [root@zabbix-server zabbix]# vim /etc/httpd/conf.d/zabbix.conf #設(shè)置時(shí)區(qū)
#里面基本不用動(dòng)。只需要添加一行時(shí)區(qū)即可 php_value date.timezone Asia/Shanghai ---添加如下接下來(lái),我們就可以啟動(dòng)我們的httpd服務(wù)了:
[root@zabbix-server zabbix]# systemctl start httpd [root@zabbix-server zabbix]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/ httpd.service.
我們的服務(wù)已經(jīng)開啟,接著我們就可以用瀏覽器來(lái)訪問(wèn)了。

7.瀏覽器訪問(wèn)并進(jìn)行初始化設(shè)置圖片略http://192.168.122.166/zabbix/setup.php
默認(rèn)用戶名:Admin
默認(rèn)密碼:zabbix

8.配置zabbix agent

當(dāng)我們把監(jiān)控端配置啟動(dòng)以后,我們需要來(lái)設(shè)置一下我們的被監(jiān)控端,我們?cè)诒槐O(jiān)控的主機(jī)安裝好agent,設(shè)置好他的server,并把他添加到server端,就能將其納入我們的監(jiān)控系統(tǒng)中去了。
1)安裝 zabbix
同樣的,我們先來(lái)安裝zabbix。兩臺(tái)機(jī)器都操作

[root@zabbix-agent-none1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

9/50

[root@zabbix-agent-none1 ~]# yum install zabbix-agent -y
安裝完成以后,我們?nèi)バ薷呐渲梦募?/p>

2)修改配置文件
對(duì)配置文件做一個(gè)備份,然后去修改配置文件:

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/ [root@zabbix-agent-none1 zabbix]# ls zabbix_agentd.conf zabbix_agentd.d

[root@zabbix-agent-none1 zabbix]# cp zabbix_agentd.conf{,.bak} [root@zabbix-agent-none1 zabbix]# ls

zabbix_agentd.conf zabbix_agentd.conf.bak zabbix_agentd.d

[root@zabbix-agent-none1 zabbix]# vim zabbix_agentd.conf ----修改如下 Server=192.168.246.228 zabbix服務(wù)器的地址 ServerActive=192.168.246.228 主動(dòng)模式 zabbix-server-ip Hostname=zabbix-agent-none1
UnsafeUserParameters=1 是否限制用戶自定義 keys 使用特殊字符 1是可以啟用特殊字符 0是不可以啟用特殊字符

修改完成之后,我們保存退出。然后就可以啟動(dòng)服務(wù)了:

[root@zabbix-agent-none1 zabbix]# systemctl start zabbix-agent [root@zabbix-agent-none1 zabbix]# systemctl enable zabbix-agent
照例查看端口是否已開啟

[root@zabbix-agent-none1 zabbix]# netstat -lntp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0: LISTEN 9369/zabbix_agentd
tcp6 0 0 :::10050 :::
LISTEN 9369/zabbix_agentd
已經(jīng)開啟成功。接著,我們就可以去server端添加了。none2也進(jìn)行同樣的操作,唯一不同的就是配置文件中的Hostname要設(shè)為zabbix-agent-none2。

zabbix使用(一)

1)修改密碼及中文版

作為一只英語(yǔ)不好的運(yùn)維,這里悄悄改成了中文版,如果大家英語(yǔ)好的話看英文版即可,英語(yǔ)不好就改了吧,畢竟中文版比較適合初學(xué)者更快的學(xué)習(xí)~

記得刷新!
按如上操作即可,選擇中文以后,點(diǎn)擊下面的update即可更新成功,更新過(guò)后是這樣子的~

同樣的,為了安全起見(jiàn),我們把密碼改掉:修改完成后同樣點(diǎn)擊更新即可。

2)創(chuàng)建主機(jī)及主機(jī)群組我們先來(lái)定義一個(gè)主機(jī)群組:

然后我們就可以去添加主機(jī)了:
當(dāng)然,上面有很多選擇卡,有一個(gè)加密:

10/50

設(shè)置完成后,點(diǎn)擊添加。我們就可以看到,我們添加的這個(gè)主機(jī)已經(jīng)出現(xiàn)在列表中了:

3)監(jiān)控項(xiàng)(items)
創(chuàng)建監(jiān)控項(xiàng)來(lái)確定我們要監(jiān)控被監(jiān)控端的內(nèi)容

事實(shí)上,我們關(guān)注的指標(biāo)有很多種,我們一一添加進(jìn)來(lái)即可。

剛剛我們定義的監(jiān)控項(xiàng)是很簡(jiǎn)單的,指定一個(gè)key即可,但是有些監(jiān)控項(xiàng)是帶有參數(shù)的,這樣一來(lái),我們的監(jiān)控項(xiàng)就有更多的靈活性。

net.if.out[if,<mode>] 上行流量統(tǒng)計(jì)
參數(shù) 注釋

net.if.in[if,<mode>] 網(wǎng)絡(luò)接口上傳流量統(tǒng)計(jì)。返回 整數(shù)

圖中的[]就是需要參數(shù)的意思,里面的值即為參數(shù),帶<>為不可省略的。我們就以這個(gè)例子來(lái)說(shuō)

明:

if表示是接口名;<mode>表示是那種模式,包括但不限于:packets(包)、bytes(字節(jié))、errors(錯(cuò)誤)、dropped(丟包)(上述內(nèi)容通過(guò)ifconfig查看)

命令方式查看:

[root@zabbix-server zabbix]# zabbix_get -s 192.168.122.167 -p 10050 -k "net.if.in[eth0,packets]"

擴(kuò)展(名詞解釋):

上行流量就是本機(jī)向inter網(wǎng)發(fā)送的字節(jié)數(shù)下行流量就是從網(wǎng)絡(luò)中下載的字節(jié)數(shù)

[root@xingdian-cloud yum.repos.d]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.122.167 netmask 255.255.255.0 broadcast 192.168.122.255 inet6 fe80::46ba:6fa0:e1e6:8644 prefixlen 64 scopeid 0x20<link>

inet6 fe80::62ba:7626:1e71:fc5d prefixlen 64 scopeid 0x20<link> ether 52:54:00:c1:95:58 txqueuelen 1000 (Ethernet)

RX packets 97856 bytes 649560808 (619.4 MiB) RX errors 0 dropped 11 overruns 0 frame 0 TX packets 70512 bytes 5823411 (5.5 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback)

RX packets 1795 bytes 176872 (172.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1795 bytes 176872 (172.7 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Rx Packets就是接收數(shù)據(jù)包的意思。
Tx Packets就是發(fā)送數(shù)據(jù)包的意思。
Rx Bytes就是接收比特位的意思。
Tx Bytes就是發(fā)送比特位的意思。

4)創(chuàng)建觸發(fā)器
創(chuàng)建觸發(fā)器來(lái)作為閥值或者預(yù)警線,來(lái)進(jìn)行報(bào)警

監(jiān)控項(xiàng)模板

agent.hostname 客戶端主機(jī)名。返回字符串
agent.ping 客戶端可達(dá)性檢查。返回 nothing - 不可達(dá);
agent.version zabbix客戶端(agent)的版本。返回字符串
kernel.maxfiles 操作系統(tǒng)最大的文件打開數(shù)量。返回整數(shù)
kernel.maxproc 操作系統(tǒng)最大的進(jìn)程數(shù)。返回整數(shù)
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>] 檢查 DNS 服務(wù)是否開啟。返回 0 - DNS 服務(wù)
?。?;1 - DNS 服務(wù)開啟
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>] 執(zhí)行DNS查詢。返回字符串信息
net.if.collisions[if] 網(wǎng)絡(luò)沖突數(shù)量。返回整型
net.if.in[if,<mode>] 網(wǎng)絡(luò)接口上傳流量統(tǒng)計(jì)。返回 整數(shù)
net.if.list 網(wǎng)絡(luò)接口列表(包括接口類型,狀態(tài),IPv4
net.if.out[if,<mode>] 上行流量統(tǒng)計(jì)。返回整數(shù)
net.if.total[if,<mode>] 網(wǎng)絡(luò)接口上傳下載的流量總和。返回整數(shù)
net.tcp.listen[port] 檢查 TCP 端口 是否處于偵聽狀態(tài)。返回 0 -
net.tcp.port[<ip>,port] 檢查是否能建立 TCP 連接到指定端口。返回
net.tcp.service[service,<ip>,<port>] 檢查服務(wù)是否運(yùn)行并接受 TCP 連接。返回 0
net.tcp.service.perf[service,<ip>,<port>] 檢查 TCP 服務(wù)的性能,當(dāng)服務(wù) down 時(shí)返回
數(shù)

net.udp.listen[port] 檢查 UDP 端口 是否處于偵聽狀態(tài)。返回 0 -
net.udp.service[service,<ip>,<port>] 檢查服務(wù)是否運(yùn)行并響應(yīng) UDP 請(qǐng)求。返回 0
net.udp.service.perf[service,<ip>,<port>] 檢查 UDP 服務(wù)的性能,當(dāng)服務(wù) down 時(shí)返回
秒數(shù)

perf_counter[counter,<interval>] 所有Windows計(jì)數(shù)器值。返回 整形、浮點(diǎn)、
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>] CPU進(jìn)程百分比。返回浮點(diǎn)值
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>] 進(jìn)程內(nèi)存,以字節(jié)為單位。返回整數(shù)
proc.num[<name>,<user>,<state>,<cmdline>] 進(jìn)程數(shù)。返回整數(shù)
proc_info[process,<attribute>,<type>] 具體處理的各個(gè)信息。返回浮點(diǎn)數(shù)
sensor[device,sensor,<mode>] 硬件傳感器讀數(shù)。返回浮點(diǎn)型
service.info[service,<param>] 有關(guān)服務(wù)的信息。返回整數(shù)字段表示狀態(tài),
顯示名,路徑,用戶; 文本 - 使用字段作為描
停,2 - 啟動(dòng)掛起,3 - 暫停掛起,4 - 繼續(xù)掛

  • 未知,255 - 沒(méi)有這個(gè)服務(wù);啟動(dòng)碼:0 - 自
    禁用,4 - 未知
    services[<type>,<state>,<exclude>] 列表服務(wù)。返回0表示空,如果是列表則是每
    system.boottime 系統(tǒng)啟動(dòng)時(shí)間。返回時(shí)間戳
    system.cpu.intr 設(shè)備的中斷數(shù)。返回整數(shù)
    system.cpu.load[<cpu>,<mode>] CPU 負(fù)載。返回浮點(diǎn)數(shù)
    system.cpu.num[<type>] CPU 數(shù)量,返回整數(shù)
    system.cpu.switches 上下文的數(shù)量進(jìn)行切換。它返回一個(gè)整數(shù)值
    system.cpu.util[<cpu>,<type>,<mode>] CPU 使用率。返回浮點(diǎn)數(shù)
    system.hostname[<type>] 系統(tǒng)主機(jī)名。返回字符串
    system.hw.chassis[<info>] 機(jī)架信息。返回字符串
    鍵值 名稱

13/50

system.hw.cpu[<cpu>,<info>] CPU 信息。返回字符串或整數(shù)
system.hw.devices[<type>] PCI或者USB設(shè)備列表。返回文本
system.hw.macaddr[<interface>,<format>] MAC地址。返回字符串
system.localtime[<type>] 系統(tǒng)時(shí)間。返回的是UTC整數(shù)。是
system.run[command,<mode>] 即在主機(jī)上指定的命令的執(zhí)行。
NOWAIT的模式,這將返回執(zhí)行命
system.stat[resource,<type>] 系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)。返回整數(shù)值或者
system.sw.arch 軟件架構(gòu)信息。返回字符串
system.sw.os[<info>] 操作系統(tǒng)信息。返回字符串
system.sw.packages[<package>,<manager>,<format>] 安裝包列表。返回文本
system.swap.in[<device>,<type>] 在交換分區(qū)(swap)(從設(shè)備到內(nèi)存
system.swap.out[<device>,<type>] 交換分區(qū)(從內(nèi)存到設(shè)備)的統(tǒng)
system.swap.size[<device>,<type>] 交換分區(qū)空間大小,字節(jié)或從總
system.uname 識(shí)別系統(tǒng)。返回 字符串
system.uptime 系統(tǒng)啟動(dòng)時(shí)間。返回整數(shù)
system.users.num 已登錄的用戶數(shù)量,返回整數(shù)
vfs.dev.read[<device>,<type>,<mode>] 磁盤讀取數(shù)據(jù)。類型是sectors, op
bps則返回浮點(diǎn)。
vfs.dev.write[<device>,<type>,<mode>] 磁盤寫入數(shù)據(jù)。類型是sectors, op
bps則返回浮點(diǎn)。
vfs.dir.count 目錄遞歸的條目數(shù)量。返回整數(shù)
[dir,<regex_incl>,<regex_excl>,<types_incl>,<types_excl>,<max_depth>,<min
_size>,<max_size>,<min_age>,<max_age>,<regex_excl_dir>]
vfs.dir.size 目錄大?。╞ytes)。返回整數(shù)
[dir,<regex_incl>,<regex_excl>,<mode>,<max_depth>,<regex_excl_dir>]
vfs.file.cksum[file] 文件效驗(yàn),unix標(biāo)準(zhǔn)算法。返回整
vfs.file.contents[file,<encoding>] 搜索文件內(nèi)容。返回文本
vfs.file.exists[file] 檢查文件是否存在。返回 0 - 未找

vfs.file.md5sum[file] 文件的MD5校驗(yàn)。返回字符串(
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>] 查找文件中的字符串,返回內(nèi)容
參數(shù)

vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>] 查找文件中的字符串,如果有則
vfs.file.size[file] 文件大?。▎挝籦ytes)。返回整
vfs.file.time[file,<mode>] 文件事件信息,返回的是時(shí)間戳
vfs.fs.inode[fs,<mode>] 數(shù)或inode的百分比。返回?cái)?shù)字,
vfs.fs.size[fs,<mode>] 磁盤容量。如果返回的是字節(jié)則
vm.memory.size[<mode>] 從字節(jié)或總百分比的內(nèi)存大小。
返回浮點(diǎn)值。

vm.vmemory.size[<type>] 虛擬空間大小(以字節(jié)計(jì))或百
web.page.get[host,<path>,<port>] 獲取網(wǎng)頁(yè)。返回信息為網(wǎng)頁(yè)源碼
web.page.perf[host,<path>,<port>] 全網(wǎng)頁(yè)加載時(shí)間(秒)。返回浮
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>] 查找網(wǎng)頁(yè)中的字符串,返回內(nèi)容
參數(shù)

鍵值 名稱

wmi.get[<namespace>,<query>] 執(zhí)行 WMI 查詢返回第一個(gè)對(duì)象。返回整形、浮點(diǎn)、字符串

zabbix.stats[<ip>,<port>] Returns a JSON object containing Zabbix server or proxy internal me

zabbix.stats[<ip>,<port>,queue,<from>,<to>] Number of items in the queue which are delayed in Zabbix server or "from" till "to" seconds, inclusive.
鍵值 名稱

zabbix使用(二)

案例:nginx監(jiān)控nginx服務(wù)狀態(tài)一:前期環(huán)境準(zhǔn)備:

yum -y install nginx systemctl start nginx

二:監(jiān)控部署:
1.定義監(jiān)控項(xiàng) > 主機(jī) > node1 ---> 監(jiān)控項(xiàng)(items) > 創(chuàng)建監(jiān)控項(xiàng)
進(jìn)入 配置 --- --- ---

2.定義觸發(fā)器定義好了監(jiān)控項(xiàng)以后,我們亦可來(lái)定義一個(gè)觸發(fā)器,當(dāng)服務(wù)有問(wèn)題的時(shí)候,我們才能及時(shí)知道:

進(jìn)入 配置 ---> 主機(jī) ---> none1 ---> 觸發(fā)器(trigger)---> 創(chuàng)建觸發(fā)器(為了快速獲取,選用最后一個(gè)
值為0就觸發(fā))

15/50

3.創(chuàng)建圖形查看(zabbix可視化)

數(shù)據(jù)日積月累,如果我們想要更直觀的了解到各項(xiàng)數(shù)據(jù)的情況,圖形無(wú)疑是我們的最佳選擇。zabbix提示了眾多的可視化工具提供直觀展示。
自定義圖形中可以集中展示多個(gè)時(shí)間序列的數(shù)據(jù)流。支持“線狀圖(normal)”、“堆疊面積圖
(stacked)”、“餅圖(pie)” 和“分離型餅圖(exploded)”四種不同形式的圖形。

4.模擬服務(wù)宕掉

zabbix維護(hù)時(shí)間

添加維護(hù)期間:

維護(hù)期間(Maintenance)指的是服務(wù)器定期維護(hù)的時(shí)間段。Zabbix 可以設(shè)置在這個(gè)時(shí)間段里不需報(bào)警。

點(diǎn)擊配置->維護(hù)->創(chuàng)建維護(hù)時(shí)段

16/50

以上頁(yè)面配置項(xiàng)的含義為:名稱:該維護(hù)配置的名稱。
維護(hù)類型:該時(shí)間段內(nèi)是否需要采集數(shù)據(jù),一般選擇不采集。
作用中從/直到:該維護(hù)配置生效的時(shí)間范圍。

以上頁(yè)面配置項(xiàng)的含義為:
期間類型:配置維護(hù)的時(shí)間是一次性的還是循環(huán)性的??蛇x一次性/每日/每周/每月。
日期/每日/每周/每月:設(shè)置執(zhí)行維護(hù)的時(shí)間。
維護(hù)期間長(zhǎng)度:維護(hù)的時(shí)間長(zhǎng)度。

17/50

以上頁(yè)面配置項(xiàng)的含義為:
維護(hù)中主機(jī): 哪些主機(jī)在該維護(hù)期間進(jìn)行維護(hù)。
維護(hù)中的組: 哪些主機(jī)組在該維護(hù)期間進(jìn)行維護(hù)。

zabbix微信報(bào)警

一:企業(yè)微信部署使用
1.下載企業(yè)微信
2.創(chuàng)建企業(yè)
3.創(chuàng)建企業(yè)應(yīng)用我的企業(yè)

CorpID wwf59d011ead30f194 AgentId 1000002

Secret 4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A

部門id 2 云計(jì)算部

18/50

建立連接:獲取AccessToken請(qǐng)求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?
corpid=wwa1da242f211cdf47&corpsecret=rIrN51FEjgW6T2bdmSaEoN8s_mMW-Nu7gHysmagfdXc 返回結(jié)果: HTTP/1.1 200 OK
Connection: keep-alive

Error-Code: 0

Error-Msg: ok

Content-Type: application/json; charset=UTF-8

Content-Length: 277

{"errcode":0,"errmsg":"ok","access_token":"9O7DSEqnUsQ8MD2bRGfFs26cabY1XcGErPnnJF_mfBBnI5zsM2I3u9-9Sj0tA ggY6BahOByGZvzDNaFoJj3YTp5blSPkm9exizerPUpDZNiGXtw","expires_in":7200}

二:配置監(jiān)控腳本

19/50

python監(jiān)控腳本:

有4個(gè)地方需要修改,找到他們修改成之前獲取的信息 self.corpid = 'wwf59d011ead30f194' //公司的corpid
self.
secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A' //應(yīng)用的secret 'toparty':2, //部門id
'agentid':"1000002", //應(yīng)用id

[root@ansible alertscripts]# cat wechat.py #!/usr/bin/env python

-- coding: utf-8 --

import urllib,urllib2,json import sys

reload(sys) sys.setdefaultencoding( "utf-8" )

class WeChat(object): __token_id = ''

init attribute

def init(self,url): self.__url = url.rstrip('/')

self.__corpid = 'wwf59d011ead30f194'

self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A'

Get TokenID def authID(self):

params = {'corpid':self.corpid, 'corpsecret':self.secret} data = urllib.urlencode(params)

content = self.getToken(data)

try:

self.__token_id = content['access_token']

print content['access_token'] except KeyError:

raise KeyError

Establish a connection

def getToken(self,data,url_prefix='/'):

url = self.__url + url_prefix + 'gettoken?' try:

response = urllib2.Request(url + data) except KeyError:

raise KeyError

result = urllib2.urlopen(response) content = json.loads(result.read()) return content

Get sendmessage url

def postData(self,data,url_prefix='/'):

url = self.url + url_prefix + 'message/send?access_token=%s' % self.token_id request = urllib2.Request(url,data)

try:

result = urllib2.urlopen(request)

20/50

except urllib2.HTTPError as e: if hasattr(e,'reason'):

print 'reason',e.reason elif hasattr(e,'code'):

print 'code',e.code return 0

else:

content = json.loads(result.read()) result.close()

return content

send message

def sendMessage(self,touser,message): self.authID()

data = json.dumps({ 'touser':touser, 'toparty':11, 'msgtype':"text", 'agentid':"1000002", 'text':{

'content':message

},

'safe':"0" },ensure_ascii=False) response = self.postData(data) print response

if name == 'main':

a = WeChat('https://qyapi.weixin.qq.com/cgi-bin') a.sendMessage(sys.argv[1],sys.argv[3])

修改權(quán)限:

[root@ansible alertscripts]# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py [root@ansible alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/wechat.py

測(cè)試腳本:下面的invalidparty可以忽略 ,如果正常會(huì)收到消息如下圖

[root@ansible alertscripts]# ./wechat.py Zhuangyao test test {u'invalidparty': u'2', u'invaliduser': u'wusong', u'errcode': 0, u'errmsg': u'ok'}

三:zabbix配置微信報(bào)警:

創(chuàng)建報(bào)警媒介:

管理->報(bào)警媒介類型->創(chuàng)建媒體類型

zabbix 3.0 以上需要在為alert腳本定義參數(shù),以前的版本參數(shù)都固定的,現(xiàn)在用戶可以自己定義命令行的參數(shù)了。添加的參數(shù)也就是腳本中的$1、$2、$3等。{ALERT.SENDTO} {ALERT.SUBJECT}
{ALERT.MESSAGE}

21/50

創(chuàng)建用戶:Administration-->Users-->Media-->add (注意創(chuàng)建用戶時(shí)把權(quán)限設(shè)置為超級(jí)管理員或者管理
員)
為用戶關(guān)聯(lián)報(bào)警媒介:收件人為企業(yè)郵箱中的賬戶

22/50

添加動(dòng)作,觸發(fā)條件后報(bào)警后發(fā)送微信消息。

Configuration-->Actions-Event source(Triggers)-Create action

23/50

恢復(fù)操作和確認(rèn)操作都可以配置,同上

全部配置完成后, 重新設(shè)定觸發(fā)器的值模擬報(bào)警產(chǎn)生,檢測(cè)微信報(bào)警是否成功!

問(wèn)題

問(wèn)題1:

在使用zabbix圖形時(shí),發(fā)現(xiàn)有中文亂碼如何解決?解決方案:
在/usr/share/zabbix/assets/fonts目錄下,將原來(lái)的字符集文件刪掉或者重新修改文件名讓其失去效果,重新上傳新的字符集文件,上傳成功后重新刷新界面即可.

24/50

報(bào)警格式化文檔

郵件內(nèi)容:
名稱:Action-Email

默認(rèn)接收人:故障{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}發(fā)生: {TRIGGER.NAME}故障!

默認(rèn)信息:
告警主機(jī):{HOSTNAME1}

告警時(shí)間:{EVENT.DATE} {EVENT.TIME} 告警等級(jí):{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME} 告警項(xiàng)目:{TRIGGER.KEY1}
問(wèn)題詳情:{ITEM.NAME}:{ITEM.VALUE}
當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

zabbix公網(wǎng)郵箱報(bào)警

郵件系統(tǒng)簡(jiǎn)要介紹:
電子郵件系統(tǒng)包括兩個(gè)組件:MUA(Mail User Agent,郵件用戶代理)和MTA(Mail Transport Agent,郵件傳

送代理)MUA是郵件系統(tǒng)為用戶提供的可以讀寫郵件的界面;而MTA是運(yùn)行在底層,能夠處理郵件的收發(fā)工作的程序。簡(jiǎn)單的說(shuō),用戶可以 使用MUA寫信、讀信、而通過(guò)MTA收信、發(fā)信。Foxmail、Outlook、Webmail都屬于MUA。
郵件的接收是MTA和MUA配合完成的。遠(yuǎn)程的MUA首先向遠(yuǎn)程MTA連接并驗(yàn)證發(fā)信人身份,然后由遠(yuǎn)程MTA向本地MTA發(fā)送郵件。接受者通過(guò)本 地MUA接收閱讀郵件。郵件的發(fā)信也是MTA和MUA配合完成的,不過(guò)方向正好相反。本地MUA首先向本地的MTA連接并驗(yàn)證發(fā)信人身份,然后由本地 MTA向遠(yuǎn)程MTA發(fā)送郵
件,再由遠(yuǎn)程的MUA讀取郵件。
mail和mailx即為負(fù)責(zé)查看、編寫郵件和向MTA發(fā)送郵件的MUA。mailx是mail的功能加強(qiáng)版。sendmail即為負(fù)責(zé)郵件在網(wǎng)絡(luò)上傳輸?shù)腗TA,將郵件從一個(gè)MTA傳送至另一個(gè)MTA。

開干:
1.注冊(cè)163郵箱

2.網(wǎng)頁(yè)郵箱設(shè)置客戶端授權(quán)密碼

安裝MUA軟件:mailx
#yum install mailx

#mail -V

12.5 7/5/10

mailx -V 12.5 7/5/10

配置公網(wǎng)郵箱信息:

vim /etc/mail.rc 追加以下內(nèi)容 set from=lisi@163.com(郵箱地址)

set smtp=smtp.163.com(smtp服務(wù)器) set smtp-auth-user=lisi@163.com(用戶名) set smtp-auth-password=*(授權(quán)郵箱密碼) set smtp-auth=login

使用mailx發(fā)郵件的方式:
方式1:mailx -s "郵件標(biāo)題" 收件箱Email < 包含正文的文件
方式2:cat 包含正文的文件 | mailx -s "郵件標(biāo)題" 收件箱Email
方式3:echo "正文內(nèi)容" | mailx -s "郵件標(biāo)題" 收件箱Email
方式4:mailx -s "郵件標(biāo)題" 收件箱Email,回車按CTRL+D發(fā)送

手動(dòng)發(fā)送郵件測(cè)試:

mailx -v -s 'hello' 'zhangsan@163.com' nihao (回車,然后ctrl+D

EOT

25/50

或者,將郵件內(nèi)容放到一個(gè)文件中content.txt

#cat content.txt | mailx -v -s ‘hello’ ‘zhangsan@163.com’

手動(dòng)使用mailx發(fā)送郵件測(cè)試結(jié)果:

zabbix添加郵件報(bào)警功能:
注:使用新的方式--利用公網(wǎng)郵件服務(wù)器發(fā)送報(bào)警,需要關(guān)閉postfix服務(wù)

配置 zabbix 的郵件報(bào)警功能需要以下三個(gè)角色的參與。
1、 示警媒體(Media)
2、 觸發(fā)器(Triggers)
3、 動(dòng)作(Action)

示警媒體:

指的是 zabbix 采用何種方式進(jìn)行報(bào)警,目前 Zabbix 支持的示警媒體包括郵件、Jabber、短信。jabber是linux下一種即時(shí)通訊工具,可以和yahoo,icq等工具通信

觸發(fā)器:
指的是當(dāng)監(jiān)控對(duì)象達(dá)到某個(gè)條件或條件集合的時(shí)候,觸發(fā) Zabbix 產(chǎn)生事件。

動(dòng)作:
指的是 Zabbix 產(chǎn)生對(duì)應(yīng)事件后,它通過(guò)示警媒體發(fā)送報(bào)警。

接下來(lái),我們配置一個(gè)郵件報(bào)警功能的范例。效果是當(dāng) WEB 頁(yè)面獲取時(shí)間超過(guò) 3 秒,則觸發(fā)報(bào)警,管理員將會(huì)收到一封 Zabbix 發(fā)出的報(bào)警郵件。

示警媒體的配置:
首先需要配置 Zabbix 的郵件功能。
點(diǎn)擊 管理->報(bào)警媒介類型->創(chuàng)建媒體類型

26/50

然后在頁(yè)面中填入你的報(bào)警媒介類型信息,例如下圖所示:
注:腳本名稱任意,存放于/usr/lib/zabbix/alertscripts (生產(chǎn)上的測(cè)試服放這:/usr/local/zabbix/share/zabbix/ alertscripts)

名稱:sendmail //名稱任意
類型:腳本
腳本名稱:sendmail.sh //一定要寫,否則可能發(fā)送不成功
腳本參數(shù):
{ALERT.SENDTO} //照填,收件人變量
{ALERT.SUBJECT} //照填,郵件主題變量,變量值來(lái)源于‘動(dòng)作’中的‘默認(rèn)接收人’
{ALERT.MESSAGE} //照填,郵件正文變量,變量值來(lái)源于‘動(dòng)作’中的‘默認(rèn)信息’

配置完成后,不要忘記點(diǎn)擊存檔,保存你的配置。

修改zabbix服務(wù)端配置文件&編寫腳本:指定腳本的存儲(chǔ)路徑:
#vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts

27/50

編寫郵件腳本:
#cd /usr/lib/zabbix/alertscripts #vim sendmail.sh

#!/bin/sh

echo "$3" | sed s/'\r'//g | mailx -s "$2" $1

修改權(quán)限:

#chmod u+x sendmail.sh && chown zabbix.zabbix sendmail.sh

模擬報(bào)警產(chǎn)生,檢查郵箱是否收到郵件

企業(yè)級(jí)zabbix電話報(bào)警

本項(xiàng)目(行癲)親測(cè)

項(xiàng)目簡(jiǎn)介:
系統(tǒng)版本:Linux Centos 7.6
應(yīng)用版本:Zabbix 4.2
數(shù)據(jù)庫(kù):mariadb
Onealert官方網(wǎng)址:http://www.onealert.com/

服務(wù)部署:

一:部署zabbix-server 1.部署zabbix的yum倉(cāng)庫(kù)
[root@xingdian ~] # rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm 2.清空yum緩存 [root@xingdian ~] # yum clean all

[root@xingdian ~] # yum makecache 3.安裝zabbix-server和zabbix-agent
[root@xingdian ~] # yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent 4.安裝數(shù)據(jù)庫(kù)服務(wù)(可選用mysql或者mariadb)
[root@xingdian ~] # yum -y install mariadb-server mariadb
5.部署數(shù)據(jù)庫(kù)服務(wù)

[root@xingdian ~] #mysqladmin -u root -p'password' mysql>create database zabbix character set utf8 collate utf8_bin;

msyql>grant all privileges on zabbix. to zabbix@localhost identified by 'password'; mysql> quit;
6.數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入
[root@xingdian ~] # zcat /usr/share/doc/zabbix-server-mysql
/create.sql.gz | mysql -uzabbix -p zabbix 7.修改zabbix配置文件 [root@xingdian ~] # vim /etc/zabbix/zabbix_server.conf

DBPassword=password 8.修改apache配置文件(修改時(shí)區(qū))
[root@xingdian ~] # vim /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/ShangHai
9.啟動(dòng)服務(wù)并做開機(jī)啟動(dòng)
[root@xingdian ~] # systemctl restart zabbix-server zabbix-agent httpd [root@xingdian ~] # systemctl enable zabbix-server zabbix-agent httpd

二:部署電話報(bào)警(Onealert)

注意: 這里可以使用阿里云、華為云等公有云的語(yǔ)音服務(wù),但是需要企業(yè)認(rèn)證。

1.切換到zabbix腳本目錄 [root@xingdian ~] # cd /lib/zabbix/alertscripts/ 2.獲取取OneITSM agent包

28/50

[root@xingdian ~] #wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz
3.解壓、安裝

[root@xingdian ~] # tar -xzf ca_zabbix_release-2.1.0.tar.gz 4.執(zhí)行oneitsm
[root@xingdian ~] # cd cloudalert/bin
[root@xingdian ~] # bash install.sh 7c5df639-4476-4e1a-bc7c-eb8f9362d919

注意:后面的應(yīng)用 Key從Onealter的配置中獲?。ǐ@取方式見(jiàn)第三步)
5.安裝過(guò)程中需要輸入zabbix的管理地址,格式:http://zabbix_server_ip/zabbix
6.輸入zabbix的管理員賬戶和密碼
7當(dāng)提示"安裝成功"時(shí)表示安裝成功!驗(yàn)證告警集成
產(chǎn)生新的zabbix告警(problem),動(dòng)作狀態(tài)為“已送達(dá)”表示集成成功。
三:Onealter圖形化部署
1.配置策略:用戶圖標(biāo)---個(gè)人中心---告警通知策略注意:在這有三個(gè)時(shí)段,分別對(duì)應(yīng)企業(yè)中報(bào)警發(fā)生的三個(gè)不同時(shí)段。告警發(fā)生時(shí):發(fā)生報(bào)警的一瞬間告知管理人員告警確認(rèn)時(shí):報(bào)警信息被管理確認(rèn)時(shí)關(guān)閉告警時(shí):警報(bào)解除時(shí)注意:這這里有四種告警方式。

郵件通知
電話通知
App通知
短信通知

2.電話報(bào)警關(guān)聯(lián)zabbix

3.分派策略:配置---分派策略注意:根據(jù)公司不同的崗位職責(zé),分配到不同的員工。

29/50

4.zabbix產(chǎn)生報(bào)警信息驗(yàn)證電話報(bào)警

5.收到電話報(bào)警

30/50

zabbix報(bào)警基于釘釘

1,安裝釘釘---注冊(cè)釘釘賬號(hào)。

首先創(chuàng)建一個(gè)群聊把需要得到監(jiān)控信息的人加到一起.在釘釘上面添加一個(gè)機(jī)器人.

31/50

32/50

33/50

因?yàn)槭峭ㄟ^(guò)釘釘?shù)膚behook實(shí)現(xiàn)報(bào)警就是一個(gè)api

釘釘已經(jīng)配置好了!

========================================================

2登陸zabbix-server的機(jī)器創(chuàng)建python腳本:

[root@zabbixserver-01 ~]# cd /usr/lib/zabbix/alertscripts/ [root@zabbixserver-01 alertscripts]# vim dingding.py #!/usr/bin/python

-- coding: utf-8 --import requests import json

import sys import os

headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "" ---這里就是剛才復(fù)制釘釘?shù)哪莻€(gè)webhook

def msg(text): json_text= { "msgtype": "text",

"at": {

34/50

"atMobiles": [

""

],

}, "text": {

"content": text

}

}

print requests.post(api_url,json.dumps(json_text),headers=headers).content

if name == 'main': text = sys.argv[1] msg(text)

設(shè)置權(quán)限

[root@zabbixserver-01 alertscripts]# chmod 777 dingding.py
創(chuàng)建釘釘?shù)娜罩疚募?br/>[root@zabbixserver-01 zabbix]# pwd /var/log/zabbix

[root@zabbixserver-01 zabbix]# touch dingding.log
修改屬組和屬主:
[root@zabbixserver-01 zabbix]# chown zabbix.zabbix dingding.log

======================================================

由于之前已經(jīng)配置好監(jiān)控項(xiàng)和觸發(fā)器了。就直接配置zabbix的報(bào)警媒介開始配置web界面:

35/50

36/50

添加用戶和報(bào)警等級(jí)。

37/50

40/50

看釘釘群:

用戶參數(shù)

1、介紹和用法
① 介紹

自定義用戶參數(shù),也就是自定義key有時(shí),你可能想要運(yùn)行一個(gè)代理檢查,而不是Zabbix的預(yù)定義
你可以編寫一個(gè)命令來(lái)檢索需要的數(shù)據(jù),并將其包含在代理配置文件("UserParameter"配置參數(shù))的用戶參數(shù)

用法格式 syntax UserParameter=<key>,<command>
A user parameter also contains a key 一個(gè)用戶參數(shù)也包含一個(gè)鍵

The key will be necessary when configuring an item 在配置監(jiān)控項(xiàng)時(shí),key是必需的 Note: Need to restart the agent 注意:需要重新啟動(dòng)agent 服務(wù)

2、用法展示
(1)修改agent 端的配置,設(shè)置用戶參數(shù)①自己需要查找的參數(shù)的命令

[root@zabbix-agent-none1 ~]# free | awk '/^Mem/{print $3}'

② 修改配置文件,把查找參數(shù)的命令設(shè)為用戶參數(shù)

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf UserParameter=memory.used,free | awk '/^Mem/{print $3}' ③ 重啟agent 服務(wù)

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service (2)在zabbix-server 端,查詢 [root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.used"

(3)在監(jiān)控上,設(shè)置一個(gè)item監(jiān)控項(xiàng),使用這個(gè)用戶參數(shù)配置-->主機(jī)-->none1-->監(jiān)控項(xiàng)-->創(chuàng)建監(jiān)控項(xiàng)(4)查詢graph 圖形

41/50

3、用法升級(jí)

(1)修改agent 端的配置,設(shè)置用戶參數(shù) ① 命令行查詢參數(shù)的命令
② 修改配置文件,把查找參數(shù)的命令設(shè)為用戶參數(shù)

[root@zabbix-agent-none1 zabbix_agentd.d]# ls memory_usage.conf userparameter_mysql.conf

[root@zabbix-agent-none1 zabbix_agentd.d]# vim memory_usage.conf ----繼續(xù)添加 UserParameter=memory.stats[],cat /proc/meminfo | awk '/^$1/{print $$2}' --添加到文件中注意去掉反斜杠 [root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent.service
注意:$$2:表示不是前邊調(diào)位置參數(shù)的$1,而是awk 的參數(shù)$2
注意:$1是調(diào)用前邊的[
],位置參數(shù),第一個(gè)參數(shù)(2)在zabbix-server 端,查詢使用這個(gè)用戶參數(shù)的key
傳參:
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[MemTotal]" 999696

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Cache]" 243832

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Buffer]" 2108
(3)在監(jiān)控上,設(shè)置一個(gè)item監(jiān)控項(xiàng),使用這個(gè)用戶參數(shù)
① 添加Memory Total 的item監(jiān)控項(xiàng),使用memory.stats[MemTotal] 的用戶參數(shù)在進(jìn)程中定義倍數(shù),規(guī)定單位

② clone 克隆Memory Total 創(chuàng)建Memory Free 的監(jiān)控項(xiàng) memory.stats[MemFree] 用戶參數(shù)

(4)上面2個(gè)監(jiān)控項(xiàng)的graph 圖形

① memory total

② memory free

4、使用用戶參數(shù)監(jiān)控php-fpm 服務(wù)的狀態(tài)

監(jiān)控php-fpm

在agent 端:192.168.246.226(1)下載,設(shè)置php-fpm
[root@zabbix-agent-none1 ~]# yum -y install php-fpm php [root@zabbix-agent-none1 ~]# vim /etc/php-fpm.d/www.conf #修改如下 user = nginx

group = nginx

pm.status_path = /php-fpm-status #php-fpm 的狀態(tài)監(jiān)測(cè)頁(yè)面 ,#打開注釋并修改 ping.path = /ping #ping 接口,存活狀態(tài)是否ok #打開注釋 ping.response = pong #響應(yīng)內(nèi)容pong #打開注釋

[root@zabbix-agent-none1 ~]# systemctl start php-fpm

(2)設(shè)置nginx ,設(shè)置代理php,和php-fpm的狀態(tài)頁(yè)面匹配

42/50

[root@zabbix-agent-none1 ~]# vim /etc/nginx/nginx.conf

server {

listen 80 default_server;

listen [::]:80 default_server;

servername ;

root /usr/share/nginx/html;

Load configuration files for the default server block. include /etc/nginx/default.d/*.conf;

location / {

}

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

location ~* /(php-fpm-status|ping) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params;

access_log off; #訪問(wèn)這個(gè)頁(yè)面就不用記錄日志了

}

}

[root@zabbix-agent-none1 ~]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful [root@zabbix-agent-none1 ~]# nginx -s reload
(3)在agent 端,設(shè)置用戶參數(shù)
① 查詢 curl 192.168.246.226/php-fpm-status

pool – fpm池子名稱,大多數(shù)為www process manager – 進(jìn)程管理方式,值:static, dynamic or ondemand. dynamic
start time – 啟動(dòng)日期,如果reload了php-fpm,時(shí)間會(huì)更新 start since – 運(yùn)行時(shí)長(zhǎng) accepted conn – 當(dāng)前池子接受的請(qǐng)求數(shù)
listen queue – 請(qǐng)求等待隊(duì)列,如果這個(gè)值不為0,那么要增加FPM的進(jìn)程數(shù)量 max listen queue – 請(qǐng)求等待隊(duì)列最高的數(shù)量 listen queue len – socket等待隊(duì)列長(zhǎng)度 idle processes – 空閑進(jìn)程數(shù)量 active processes – 活躍進(jìn)程數(shù)量

total processes – 總進(jìn)程數(shù)量 max active processes – 最大的活躍進(jìn)程數(shù)量(FPM啟動(dòng)開始算)
max children reached - 大道進(jìn)程最大數(shù)量限制的次數(shù),如果這個(gè)數(shù)量不為0,那說(shuō)明你的最大進(jìn)程數(shù)量太小了,請(qǐng)改大一點(diǎn)。 slow requests – 啟用了php-fpm slow-log,緩慢請(qǐng)求的數(shù)量

② 設(shè)置

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent-none1 zabbix_agentd.d]# vim php_status.conf ---添加
UserParameter=php-fpm.stats[],curl -s http://192.168.246.226/php-fpm-status | awk '/$1/{print $$NF}'
#設(shè)置用戶參數(shù)為php-fpm.stats[
],$1為第一個(gè)參數(shù);$$NF為awk中的參數(shù)
③ 重啟服務(wù)

[root@zabbix-agent-none1 zabbix_agentd.d]# systemctl restart zabbix-agent

(4)在zabbix-server 端,查詢使用這個(gè)用戶參數(shù)的key [root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[idle]" 4

43/50

[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "php-fpm.stats[max active]" 1

(5)創(chuàng)建一個(gè)模板,在模板上創(chuàng)建item監(jiān)控項(xiàng),使用定義的用戶參數(shù)

① 創(chuàng)建一個(gè)模板

② 在模板上配置items 監(jiān)控項(xiàng),使用剛定義的用戶參數(shù)配置---模板--fpm status---監(jiān)控項(xiàng)--創(chuàng)建監(jiān)控項(xiàng) fpm.stats[total processes] ③ 再clone克隆一個(gè)items監(jiān)控項(xiàng) fpm.stats[idle processes]

(6)host主機(jī)鏈接模板配置--主機(jī)--none1---模板---選擇---fpm status ---添加---更新(7)查看graph 圖形

① php-fpm total processes

② php-fpm idle processes

(8)把模板導(dǎo)出,可以給別人使用 ① 導(dǎo)出模板最下面有導(dǎo)出

② 自己定義用戶參數(shù)的文件,也不要忘記導(dǎo)出

/etc/zabbix/zabbix_agentd.d/php_status.conf

Network discovery

1、介紹
網(wǎng)絡(luò)發(fā)現(xiàn):zabbix server掃描指定網(wǎng)絡(luò)范圍內(nèi)的主機(jī);
網(wǎng)絡(luò)發(fā)現(xiàn)是zabbix 最具特色的功能之一,它能夠根據(jù)用戶事先定義的規(guī)則自動(dòng)添加監(jiān)控的主機(jī)或服務(wù)等優(yōu)點(diǎn):

加快Zabbix部署簡(jiǎn)化管理

在快速變化的環(huán)境中使用Zabbix,而不需要過(guò)度管理(2)發(fā)現(xiàn)方式:
ip地址范圍;可用服務(wù)(ftp, ssh, http, ...)
zabbix_agent的響應(yīng);snmp_agent的響應(yīng);
(3)網(wǎng)絡(luò)發(fā)現(xiàn)通常包含兩個(gè)階段:discovery發(fā)現(xiàn) 和actions動(dòng)作
① discovery:
Zabbix定期掃描網(wǎng)絡(luò)發(fā)現(xiàn)規(guī)則中定義的IP范圍; ② actions:網(wǎng)絡(luò)發(fā)現(xiàn)中的事件可以觸發(fā)action,從而自動(dòng)執(zhí)行指定的操作,把discvery events當(dāng)作前提條件;

添加/刪除主機(jī)啟用/禁用host

向組中添加主機(jī)移除組中的主機(jī)
從模板鏈接主機(jī)或取消鏈接

2、配置網(wǎng)絡(luò)發(fā)現(xiàn)Network discovery

(1)利用第二臺(tái)用于可被掃描發(fā)現(xiàn)的主機(jī)----192.168.246.227
① 安裝agent 段的包 yum -y install zabbix-agent zabbix-sender
② 設(shè)置agent 配置,可以把之前設(shè)置好的none1的配置傳過(guò)來(lái)
[root@zabbix-agent-none2 ~]# vim /etc/zabbix/zabbix_agentd.conf Hostname=zabbix-agent-none2 #只需修改hostname [root@zabbix-agent-none2 ~]# visudo #修改sudo的配置,添加如下信息 #Defaults !visiblepw

zabbix ALL=(ALL) NOPASSWD: ALL
④ 開啟服務(wù)

44/50

[root@zabbix-agent-none2 ~]# systemctl restart zabbix-agent

(2)設(shè)置自動(dòng)發(fā)現(xiàn)規(guī)則discovery配置--自動(dòng)發(fā)現(xiàn)--創(chuàng)建自動(dòng)發(fā)現(xiàn)規(guī)則ip范圍不要給的太大

注釋:在zabbix-server端
[root@zabbix-server ~]# zabbix_get -s 192.168.246.227 -p 10050 -k "system.hostname" zabbix-agent-none2

(3)自動(dòng)發(fā)現(xiàn)成功(在檢測(cè)中查看)

45/50

(4)設(shè)置自動(dòng)發(fā)現(xiàn)discovery 的動(dòng)作action
a)創(chuàng)建
b)設(shè)置action動(dòng)作

① 設(shè)置A條件,自動(dòng)發(fā)現(xiàn)規(guī)則=test net
② 設(shè)置B條件,自動(dòng)發(fā)現(xiàn)狀態(tài)=up

46/50

③ 要做什么操作添加主機(jī)到監(jiān)控
自動(dòng)鏈接Template OS Linux 到此host

c)配置action 完成,默認(rèn)是disabled 停用的,如果不是停用的,也需要再次選擇啟動(dòng),激活一下。

d)啟用動(dòng)作,查看效果

47/50

確實(shí)已經(jīng)生效,添加主機(jī)成功,模板鏈接成功(5)如果自己需要添加的主機(jī)已經(jīng)掃描添加完成,就可以關(guān)閉網(wǎng)絡(luò)掃描了,因?yàn)樘馁Y源

Web監(jiān)控

簡(jiǎn)介:

Web監(jiān)控:監(jiān)控指定的站點(diǎn)的資源下載速度,及頁(yè)面響應(yīng)時(shí)間,還有響應(yīng)代碼;

創(chuàng)建設(shè)置web場(chǎng)景配置--主機(jī)--none1--web場(chǎng)景--創(chuàng)建web場(chǎng)景
(1)創(chuàng)建(2)配置web 監(jiān)測(cè)

48/50

點(diǎn)擊步驟,設(shè)置web page web頁(yè)面

設(shè)置名為home page,URL為http://192.168.246.226/index.html 的web頁(yè)面

49/50

查看測(cè)試(略)創(chuàng)建圖形查看

50/50

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI