您好,登錄后才能下訂單哦!
監(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ù)。
集群: LVS,Keepalived,HAproxy,RHCS,F5
硬件: 服務(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ù)掛
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
import urllib,urllib2,json import sys
reload(sys) sys.setdefaultencoding( "utf-8" )
class WeChat(object): __token_id = ''
def init(self,url): self.__url = url.rstrip('/')
self.__corpid = 'wwf59d011ead30f194'
self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGNr7A'
params = {'corpid':self.corpid, 'corpsecret':self.secret} data = urllib.urlencode(params)
content = self.getToken(data)
try:
self.__token_id = content['access_token']
raise KeyError
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
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
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
配置公網(wǎng)郵箱信息:
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è)試:
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
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;
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
免責(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)容。