Zabbix企業級分散式監控系統

Zabbix企業級分散式監控系統

《Zabbix企業級分散式監控系統》從運維(OPS)角度對Zabbix的各項功能進行了詳細介紹,以自動化運維視角為出發點,對Zabbix的安裝配置、自動化功能、監控告警、性能調優、Zabbix API、Zabbix協定、RPM安裝包定製,結合saltstack實現自動化配置管理等內容進行了全方位的深入剖析。《Zabbix企業級分散式監控系統》分為初級內容、中級內容、高級內容和附錄部分,分別由淺入深地講解Zabbix監控系統這個開源軟體。從最簡單的安裝配置,到複雜的高級使用,詳細講解了資料庫分表、高可用、性能調優、架構設計,以及大量的監控案例,對即將構建Zabbix監控系統,或者已經在使用Zabbix的用戶具有非常高的參考價值。《Zabbix企業級分散式監控系統》適合想了解、學習和規劃構建監控系統的人員閱讀,可以作為學習Zabbix的工具書,也適合有一定基礎,想更深入學習Zabbix的讀者,通過大量的案例,讓讀者真正理解Zabbix。

基本介紹

內容簡介

本書從入門到高級套用,從Zabbix基本套用到安裝包定製、協定、API,全面剖析、應有盡有。
包含大量監控案例,詳解觸發器、告警等Zabbix監控中令人頭疼的問題,學到的不止是技術,還有思路和方法。

作者簡介

吳兆松,運維開發工程師,具有豐富的一線運維實戰經驗,曾做過CDN運維、遊戲運維、雲計算運維,對Linux系統、雲計算、監控系統有較深入的研究,熟悉運維自動化工具的使用和二次定製開發,樂於折騰開源軟體,偶爾寫寫部落格、技術文檔,其始終堅信,技術的積累只是時間問題,而解決問題的思路和思想高於具體的技術細節。

圖書目錄

第1部分 Zabbix基礎部分
第1章 監控系統簡介 2
1.1 為何需要監控系統 2
1.2 監控系統的實現 2
1.3 監控系統的開源軟體現狀 4
1.4 監控系統的原理探究 11
第2章 Zabbix簡介 14
2.1 Zabbix的客戶 14
2.2 使用Zabbix的準備 15
2.3 Zabbix為何物 15
2.4 選擇Zabbix的理由 16
2.5 Zabbix的架構 17
2.6 Zabbix的運行流程 18
2.7 Zabbix的功能特性 19
第3章 安裝部署 21
3.1 安裝環境概述 21
3.2 Zabbix_Server服務端的安裝 25
3.3 Zabbix_Agent客戶端的安裝 39
3.4 SNMP監控方式的安裝配置 40
3.5 Windows上安裝Zabbix-Agent 40
3.6 其他平台的安裝 43
3.7 zabbix_get的使用 43
3.8 Zabbix相關術語(命令) 44
3.9 Zabbix Server對數據的存儲 45
3.10 Zabbix init腳本解釋 55
3.11 高可用和安全 56
3.12 Zabbix資料庫的備份 57
第4章 快速配置使用 59
4.1 配置流程 59
4.2 主機組的添加 61
4.3 模板的添加 63
4.4 添加主機 65
4.5 Graphs的配置 68
4.6 Screen的配置 74
4.7 Slide shows的配置 78
4.8 Zatree的使用 79
4.9 Map的配置 80
4.10 Web監控 85
4.11 IT服務 92
4.12 報表 95
4.13 資產管理 97
第5章 深入配置使用 99
5.1 Items的添加 99
5.2 Items key的添加 105
5.3 Items的類型 109
5.4 宏的配置 129
5.5 維護時間 131
5.6 事件確認 132
5.7 數據的導入/導出配置 134
第6章 告警的配置 135
6.1 告警概述 135
6.2 Trigger的配置 136
6.3 添加Actions 151
6.4 郵件告警配置實例 160
6.5 自定義腳本告警 163
6.6 郵件告警腳本的配置實例 165
6.7 告警升級的機制 169
6.8 告警配置故障排查 172
第2部分 Zabbix中級部分
第7章 監控方式剖析 176
7.1 Zabbix支持的監控方式 176
7.2 Zabbix監控方式的邏輯 177
7.3 Agent監控方式 177
7.4 Trapper監控方式 177
7.5 SNMP監控方式 180
7.6 IPMI監控方式 189
7.7 JMX監控方式 194
7.8 命令執行 201
第8章 分散式監控 202
8.1 代理架構 202
8.2 節點架構 205
8.3 被動模式和主動模式 206
第9章 Zabbix與自動化運維 211
9.1 監控自動化 211
9.2 網路發現 212
9.3 主動方式的自動註冊 215
9.4 Low level discovery 221
9.5 Zabbix與自動化配置管理工具Saltstack 238
第10章 使用的經驗技巧 242
10.1 如何有效地設定監控告警 242
10.2 監控項的使用技巧 246
10.3 觸發器的使用技巧 246
10.4 觸發器配置 247
10.5 谷歌瀏覽器告警外掛程式 249
10.6 數據圖斷圖的原因 250
第11章 監控案例 252
11.1 監控TCP連線數 252
11.2 監控Nginx 254
11.3 監控PHP-FPM 256
11.4 監控MySQL 260
11.6 監控DELL伺服器 272
11.7 監控Cisco路由器 272
11.8 監控VMware 274
第3部分 Zabbix高級部分
第12章 性能最佳化 282
12.1 Zabbix性能最佳化概述 282
12.2 Zabbix性能最佳化的依據 283
12.3 配置檔案的參數最佳化 285
12.4 Zabbix的架構最佳化 287
12.5 Zabbix的Items中工作模式以及Trigger的最佳化 287
12.6 Zabbix的資料庫最佳化 287
12.7 其他方面 289
第13章 Zabbix API的使用 290
13.1 Zabbix API簡介 290
13.2 JSON-RPC 290
13.3 Zabbix API的使用流程 293
13.4 第三方Zabbix API模組 302
第14章 使用Zabbix協定 304
14.1 Zabbix協定概述 304
14.2 Zabbix Sender協定 305
14.3 Zabbix Get協定 310
14.4 Zabbix Agent協定 310
第15章 定製Zabbix安裝包 313
15.1 為什麼要定製安裝包 313
15.2 如何定製安裝包 313
第16章 大型分散式監控案例 316
16.1 監控系統構建概述 316
16.2 監控環境架構圖 317
16.3 架構實現的過程 317
16.4 業務相關的配置 335
16.5 其他需求 338
附錄A 源碼安裝及相關配置 339

序言

為何要寫這本書
“運籌帷幄之中,決勝千里之外。”在IT運維中,監控占據著很重要的地位,按比例來算,說30%一點也不為過。對IT運維工程師來說,構建一個真正可用的監控告警系統是一項艱巨的任務。在監控系統的開源軟體中,可供選擇的工具眾多,然而真正適合自己需求,能夠真正解決自己業務問題的監控系統軟體卻鳳毛麟角。
在筆者的運維從業生涯中,監控系統用過Cacti、Nagios,以及筆者公司開發的監控告警系統,直到接觸了Zabbix,才發現這個靈活而強大的自動化監控工具正是筆者以前所尋找的。Zabbix靈活的設計為用戶提供了易用的二次開發接口,讓用戶既可以使用Zabbix本身提供的功能,又可以自定義更多的監控項功能,從硬體監控,到作業系統,再到服務進程,以及網路設備,其無所不能的監控功能令人嘆為觀止,不禁要為這么優秀的開源工具而震撼。
在Zabbix的使用過程中,也會遇到很多問題,包括:配置使用、架構設計、性能調優、大規模部署套用等。由於Zabbix是一個集眾多功能於一體的工具,自帶的功能實在太多,一般用戶往往僅用到基本的功能,對更高級的功能並未使用到。然而隨著使用的加深,會遇到更多的問題,這其中最大的問題是告警和數據存儲。本書對這兩部分內容都有深入的講解。
筆者從2012年12月開始學習並使用Zabbix,在此過程中,通過對Zabbix官網的學習,將Zabbix的部署和配置,以及其豐富的功能整理成文檔,並對外公開,已在網路上公開過兩個版本《Zabbix使用手冊V1.4》和《Zabbix使用手冊V2.0》,對不少學習Zabbix的朋友有所幫助。然而,為了將Zabbix的功能更加詳細地展示出來,於是有了本書的出現。本書以簡潔通俗的方式將Zabbix的各項功能展現給讀者,使讀者即學即用,以此來節省讀者寶貴的時間。
本書將不會開源電子書PDF版本,但筆者將來會對《Zabbix使用手冊》做更多的更新,本書的所有代碼和軟體是開源的。另外,筆者開源的Zabbix安裝包定製項目對重新打包Zabbix RPM安裝包有一定的參考價值,
如何閱讀本書
本書從運維(OPS)角度對Zabbix的各項功能進行了詳細介紹,以自動化運維視角為出發點,對自動化功能、高可用、監控告警、性能調優、Zabbix API、Zabbix協定、RPM安裝包定製等進行了深入淺出的探討。
第1部分為基礎部分,包括第1~6章,介紹了監控系統的原理,讓初次接觸監控的讀者了解監控的組成架構,從巨觀上認識監控系統,接下來講解了Zabbix的架構、Zabbix的安裝、監控配置、自定義監控項、告警配置、告警腳本等功能。這部分內容適合初學者系統地學習Zabbix監控系統,對稍有經驗的使用者來說,重點掌握3.9節中Zabbix對數據存儲的處理,以及第5章中深入配置使用Zabbix和第6章中監控告警部分。
第2部分為中級部分,包括第7~11章,對Zabbix的多種監控方式進行了詳述(如IPMI、SNMP、JMX等),對Zabbix的自動化功能進行了深入講解,介紹了分散式監控系統,並有大量自定義腳本的監控案例,對自動化發現LLD功能進行了深入的講解,適合對Zabbix有一定基礎的讀者深入學習。通過這部分的學習,讀者將會深入理解Zabbix的自動化功能。
第3部分為高級部分,包括第12~16章,介紹了Zabbix的性能調優,解決Zabbix使用過程中遇到性能瓶頸的問題,並讓讀者學會使用Zabbix API、Zabbix協定來擴展Zabbix,從而為構建運維平台提供了更多的擴展性。同時,也講解了如何定製RPM包,以及如何使用Saltstack來自動化部署和配置,最後用一個實例來講解如何構建企業級分散式監控系統,適合對Zabbix非常熟悉的讀者進行深入套用。通過這部分的學習,讀者能夠深入理解Zabbix。
第4部分為附錄部分,介紹了Zabbix的源碼安裝和Zabbix的升級,僅供讀者參考。在介紹Zabbix的安裝時,作者極力推薦在RHEL這類系統中使用RPM包的安裝方式,但網路中大部分資料都採用源碼安裝,且在多種書籍中均有使用源碼安裝的習慣,從而誤導了讀者,認為源碼安裝才是真正的懂Linux,以此造成部分用戶以使用源碼安裝為榮,讓源碼安裝具有“優越感”。使用源碼安裝導致了部分初學者連最基本的安裝和配置都會遇到很多麻煩,甚至為了安裝一個軟體需要幾天才能完成。當然,這裡並不排斥使用源碼安裝,只是為了糾正一個觀念,請讀者儘量使用自己打包的RPM這種適合大規模安裝的方式去部署Zabbix程式。本書將RPM定製的內容作為單獨的一章進行介紹,讓讀者深入理解安裝和定製的過程。
讀者對象
中/高級Linux系統管理員
系統運維工程師
運維開發工程師
系統集成商
運維監控系統工程師
監控系統軟體開發(設計)人員
IT管理人員
架構設計人員
勘誤和支持
因作者水平有限,書中的錯誤或不妥之處難免,懇請讀者批評、指正。如果讀者有任何寶貴的意見或建議,可以傳送郵件到[email protected],期待您的真摯反饋。
本書所有的代碼和安裝軟體將放在github中託管,讀者可以自行下載使用。另外,本書的勘誤也會在此連結中得到反饋。
聲明
本書採用的Zabbix版本為2.0和2.2,因此對Zabbix 1.8不再討論,Zabbix 2.4將在未來兩年內會發布,其功能與Zabbix 2.2將會有所不同(例如,Zabbix 2.4中的分散式模式會去掉node架構等)。本書採用的作業系統以RHEL(CentOS)、Windows為主,對於其他系統,其配置方法類似,請讀者舉一反三。本書對部分不重要的內容只是簡略地介紹,希望能起到拋磚引玉的作用。
另外,本書在編寫過程中,參考了以下網址中的內容,並對官網的部分內容進行了翻譯整理,後面不再單獨聲明。
鳴謝
本書在編寫過程中得到了眾多朋友的支持。在這裡要感謝姚炫偉、陳益超、竇喆、馮穎聰等對本書的技術問題進行審校;感謝電子工業出版社編輯任曉露和李利健對本書的精心指導,更正了書稿中的很多錯誤之處,才得以與讀者面市。特別感謝以下朋友對作者的支持與鼓勵:伊楊林、吳華、黃小路、芮峰雲、羅坤、溫宏強、曾兵、范仁更、鄺玲、張克元(網名Geek)、沈燦、薛群、李佃田、羅苗、楊晨、焦婷婷、KissPuppet(網名)、司鼎任、湯永全、羅偉、水喜雲、唐文軍、李彬(網名彬彬)、高鵬程、唐博、羅濤(網名MorningSong)等。注意,以上排名不分先後(使用Linux命令sort -R隨機生成排序)。感謝SJCloud公司的全體成員,感謝金總,陶總,付總在我工作期間的支持和幫助。
另外,也要感謝史應生、李慶雷、姚仁捷、鄧磊、馬永亮、孫科偉、虛擬的現實(網名)等分享的有關Zabbix的技術文檔、視頻錄製和講座等內容,這些內容對促進Zabbix在國內的推廣和發展有很大幫助。很多網友也寫了大量的有關Zabbix的部落格文章,相關連結會放在本書的github項目中。
本書的代碼示例規範
1.在shell環境中使用,shell命令用黑體加粗。
shell# vim /etc/php.ini
2.在MySQL環境中使用,SQL命令用黑體加粗。
mysql> flush privileges;
3.在本書中,Zabbix-Server(Zabbix Server)表示zabbix-server服務或zabbix_server進程,其他Zabbix Agent,Zabbix Get,Zabbix Proxy情況類似,後面不再聲明。
4.重要參數的解釋,用灰色底紋標示。
 Proxy name,即zabbix-proxy的hostname。
 Proxy mode,即zabbix-proxy的工作模式,被動或主動,默認是主動模式。
作者 2014年6月1號於上海

名人推薦

運維離不開監控就像魚離不開水,一款功能強大的監控系統可以有力地保證業務的性能和穩定性。近幾年各種監控系統層出不窮,Zabbix作為監控系統的新興貴族迅速崛起,不過中文資料還比較少,itnihao作為Zabbix監控系統國內領先的使用者,厚積薄發撰寫了此書,大家可以通過這本書詳細地了解Zabbix的各個方面,熟悉它、了解它、使用它,並最後愛上它。
——竇喆,中國最大開源社區ChinaUnix創始人之一
對於略具規模的IT系統而言,監控組件通常都是其運維管理工具箱中核心組件的排頭兵。開源運動碩果纍纍的今天,監控工具領域亦是百花齊放,然而,儘管Zabbix是個後來者,卻迅速一枝獨秀,甚至由於愈加完善的特性和豐富的功能以及越來越多企業或組織的青睞而冠蓋群芳。相信有不少初次接觸使用Zabbix的網友都是從itnihao公開的且不斷豐富和完善著的Zabbix技術文檔開始的,許多網友也坦言正是由itnihao及他的文檔伴著走過了Zabbix資料匱乏、使用經驗缺少的“蠻荒”時代。由此,我們有理由相信,他這次把多年的研究成果及實踐經驗精心打造並集結成冊的這本《Zabbix企業級分散式監控系統》,一定會成為愛好及使用Zabbix的朋友們的案頭必備寶典。
——馬永亮,馬哥Linux運維培訓創始人
本書是作者在運維領域多年實踐的精彩總結,沒有花哨的語言,不是大而全的磚頭書。從頭至尾,循序漸進,抽絲剝繭,讓你對Zabbix的基本操作及其原理有全面、系統的認識。作者大部分篇幅都採用圖例加腳本實例闡述,相信這也是他對Zabbix架構的深刻理解,只有掌握了紮實的原理架構,才能讓實戰操作井井有條,避免一些人為的低級錯誤。本書一定能給Zabbix學習者帶來幫助。
——黃小路,PPS高級運維工程師
作為開源監控系統的一員,Zabbix提供了All in One的解決方案,使用戶能夠快速構建出企業級的監控平台,讓運維環境變得可知可控,本書作為第一本中文Zabbix書籍,非常系統地講解了Zabbix的各個方面,從功能到部署使用,從原理到案例技巧,幾乎所有關於Zabbix的問題都可以從中找到答案或啟發,值得一讀!
——姚炫偉,中國SaltStack用戶組發起人之一
本書理論與實踐相結合,包含Zabbix的各項技術細節,由淺入深,無論是新手還是老用戶,看完本書,一定能給你帶來技術和思路的拓展,正如作者所言,本書學的不止是技術,而是解決問題的思路。
——鄺玲,高級系統運維工程師

相關詞條

熱門詞條

聯絡我們