注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)深入理解Zabbix監(jiān)控系統(tǒng)

深入理解Zabbix監(jiān)控系統(tǒng)

深入理解Zabbix監(jiān)控系統(tǒng)

定 價(jià):¥99.90

作 者: 鮑光亞 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115558336 出版時(shí)間: 2021-05-01 包裝: 平裝
開本: 16開 頁數(shù): 312 字?jǐn)?shù):  

內(nèi)容簡介

  Zabbix是一個(gè)開源監(jiān)控系統(tǒng),在我國各類信息技術(shù)企業(yè)和金融企業(yè)中被廣泛應(yīng)用。本書主要從源碼和功能兩個(gè)角度,分析Zabbix監(jiān)控系統(tǒng)的底層工作機(jī)制。本書首先講述跨進(jìn)程的總體工作機(jī)制,然后按照監(jiān)控?cái)?shù)據(jù)的處理流程依次講解Zabbix服務(wù)器端和Zabbix客戶端各類進(jìn)程的內(nèi)部工作機(jī)制,最后講述Zabbix Web應(yīng)用的工作機(jī)制。本書能夠幫助讀者深入理解Zabbix系統(tǒng)的核心原理,有助于在運(yùn)維工作中快速定位和解決問題。本書適合具有一定Zabbix應(yīng)用經(jīng)驗(yàn)并想要進(jìn)一步理解Zabbix工作機(jī)制的讀者閱讀,包括相關(guān)企業(yè)的運(yùn)維人員、技術(shù)主管、架構(gòu)師、產(chǎn)品經(jīng)理和決策者等。

作者簡介

  鮑光亞,本科畢業(yè)于山東大學(xué),精通Zabbix和Prometheus監(jiān)控軟件,對IT系統(tǒng)和服務(wù)監(jiān)控軟件有深入研究。他在2014年至2019年就職于京東,從事Zabbix監(jiān)控系統(tǒng)的運(yùn)維和相關(guān)開發(fā)工作,對分布式、并行軟件開發(fā)和項(xiàng)目管理具有濃厚興趣。他在工作期間始終踐行終身學(xué)習(xí)理念,不斷充實(shí)、提高自己,在2012年獲得了中國社會科學(xué)院研究生院MBA學(xué)位。作者個(gè)人郵箱:bgy.cn@outlook.com。

圖書目錄

第 一部分 Zabbix的基礎(chǔ)工作機(jī)制
第 1章 Zabbix總體架構(gòu)及演變 2
1.1 監(jiān)控系統(tǒng)概述 2
1.2 Zabbix的總體架構(gòu) 3
1.2.1 Zabbix服務(wù)器 4
1.2.2 Zabbix代理 6
1.2.3 Zabbix java gateway 7
1.2.4 Zabbix客戶端 7
1.3 Zabbix服務(wù)器的技術(shù)演進(jìn) 7
1.3.1 Zabbix 2.2版本的Zabbix服務(wù)器 7
1.3.2 Zabbix 3.0版本的Zabbix服務(wù)器 8
1.3.3 Zabbix 4.0版本的Zabbix服務(wù)器 8
1.3.4 Zabbix 5.0版本的Zabbix服務(wù)器 9
1.4 小結(jié) 9
第 2章 Zabbix進(jìn)程間通信與協(xié)調(diào) 10
2.1 主進(jìn)程和子進(jìn)程的創(chuàng)建 10
2.1.1 主進(jìn)程的啟動(dòng)和值守化 11
2.1.2 子進(jìn)程的分類和創(chuàng)建 13
2.1.3 子進(jìn)程從主進(jìn)程繼承的內(nèi)容 17
2.1.4 進(jìn)程的回收 20
2.2 信號捕捉與處理 21
2.2.1 Zabbix進(jìn)程處理的信號類型 21
2.2.2 信號處理函數(shù) 22
2.2.3 信號的觸發(fā)與接收 24
2.2.4 用日志跟蹤信號 24
2.3 Zabbix的共享內(nèi)存 25
2.3.1 共享內(nèi)存結(jié)構(gòu)——內(nèi)存池 25
2.3.2 共享內(nèi)存的分配與釋放 28
2.3.3 共享內(nèi)存狀態(tài)的獲取 30
2.3.4 Zabbix共享內(nèi)存舉例 31
2.4 TCP/IP套接字 32
2.4.1 zbx_socket_t結(jié)構(gòu)體 32
2.4.2 作為服務(wù)器端的套接字 33
2.4.3 作為客戶端的套接字 33
2.5 基于Unix域套接字的進(jìn)程間通信服務(wù) 34
2.5.1 Libevent庫在進(jìn)程間通信服務(wù)中的應(yīng)用 34
2.5.2 進(jìn)程間通信服務(wù)的數(shù)據(jù)結(jié)構(gòu)及其工作過程 35
2.5.3 進(jìn)程間通信服務(wù)的初始化 37
2.5.4 進(jìn)程間通信服務(wù)的通信協(xié)議 37
2.5.5 從日志查看進(jìn)程間通信服務(wù)消息 37
2.6 鎖與信號量 38
2.6.1 互斥鎖的應(yīng)用 38
2.6.2 讀寫鎖的應(yīng)用 40
2.6.3 信號量的應(yīng)用 40
2.7 小結(jié) 41
第3章 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 42
3.1 向量 42
3.1.1 向量的數(shù)據(jù)結(jié)構(gòu)定義 42
3.1.2 向量支持的操作 43
3.1.3 向量的應(yīng)用場景 45
3.2 哈希集 45
3.2.1 哈希集的數(shù)據(jù)結(jié)構(gòu)定義 45
3.2.2 哈希集支持的操作 47
3.2.3 哈希函數(shù)及關(guān)鍵字 48
3.2.4 哈希集的應(yīng)用場景 49
3.3 哈希映射 50
3.3.1 哈希映射的數(shù)據(jù)結(jié)構(gòu)定義 50
3.3.2 哈希映射支持的操作 51
3.4 二叉堆 51
3.4.1 二叉堆的數(shù)據(jù)結(jié)構(gòu)定義 51
3.4.2 二叉堆支持的操作 52
3.4.3 二叉堆的應(yīng)用場景 54
3.5 隊(duì)列 54
3.5.1 隊(duì)列的數(shù)據(jù)結(jié)構(gòu)定義 55
3.5.2 隊(duì)列支持的操作 55
3.5.3 隊(duì)列的應(yīng)用場景 56
3.6 鏈表 56
3.6.1 鏈表的數(shù)據(jù)結(jié)構(gòu)定義 56
3.6.2 鏈表支持的操作 57
3.6.3 鏈表的應(yīng)用場景 57
3.7 zbx_ json和zbx_ json_ parse結(jié)構(gòu) 57
3.7.1 zbx_ json和zbx_ json_ parse結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)定義 58
3.7.2 zbx_ json和zbx_ json_ parse結(jié)構(gòu)支持的操作 58
3.7.3 zbx_ json和zbx_ parse結(jié)構(gòu)的應(yīng)用場景 61
3.8 小結(jié) 62
第4章 數(shù)據(jù)緩存 63
4.1 ConfigCache和configuration syncer進(jìn)程 63
4.1.1 ConfigCache的數(shù)據(jù)結(jié)構(gòu)定義 64
4.1.2 ConfigCache的初始化和首次加載 70
4.1.3 configuration syncer進(jìn)程 71
4.1.4 實(shí)時(shí)導(dǎo)出ConfigCache數(shù)據(jù) 74
4.2 HistoryCache和HistoryIndexCache 74
4.2.1 數(shù)據(jù)結(jié)構(gòu)與共享內(nèi)存的區(qū)別 75
4.2.2 HistoryCache和HistoryIndexCache的數(shù)據(jù)結(jié)構(gòu)定義 75
4.2.3 將監(jiān)控值寫入緩存 77
4.2.4 HistoryCache數(shù)據(jù)的讀取 78
4.2.5 ids變量 79
4.3 TrendCache 79
4.3.1 TrendCache的數(shù)據(jù)結(jié)構(gòu)定義 79
4.3.2 TrendCache數(shù)據(jù)的寫入和讀取 80
4.4 ValueCache 81
4.4.1 ValueCache的數(shù)據(jù)結(jié)構(gòu)定義 81
4.4.2 ValueCache數(shù)據(jù)的寫入 84
4.4.3 ValueCache數(shù)據(jù)的淘汰 87
4.4.4 ValueCache數(shù)據(jù)的讀取 89
4.5 小結(jié) 89
第5章 套接字通信與加密 90
5.1 TCP/IP套接字通信的過程 90
5.1.1 多路復(fù)用與接受連接過程 91
5.1.2 接收緩存與發(fā)送緩存 92
5.1.3 超時(shí)機(jī)制 92
5.1.4 關(guān)閉連接 93
5.2 ZBXP 93
5.2.1 ZBXP通信測試工具 94
5.2.2 服務(wù)器-代理的ZBXP 94
5.2.3 客戶端-服務(wù)器的通信協(xié)議 98
5.2.4 Web應(yīng)用-服務(wù)器的通信協(xié)議 100
5.3 TCP/IP套接字通信的加密 104
5.4 小結(jié) 105
第6章 Zabbix日志及其應(yīng)用 106
6.1 日志輸出 106
6.1.1 日志輸出函數(shù) 106
6.1.2 日志記錄格式 107
6.1.3 日志鎖 108
6.2 日志級別 109
6.2.1 日志級別的劃分 109
6.2.2 在日志記錄中添加日志級別 110
6.2.3 日志相關(guān)代碼的統(tǒng)計(jì) 111
6.3 小結(jié) 112
第二部分 Zabbix服務(wù)器端的各個(gè)進(jìn)程
第7章 trapper類和poller類進(jìn)程——監(jiān)控?cái)?shù)據(jù)的收集 114
7.1 trapper類進(jìn)程 114
7.1.1 trapper進(jìn)程 115
7.1.2 snmp trapper進(jìn)程 120
7.2 poller類進(jìn)程 120
7.2.1 poller類進(jìn)程的工作過程 121
7.2.2 poller進(jìn)程 123
7.2.3 unreachable poller進(jìn)程 130
7.2.4 ipmi manager進(jìn)程和ipmi poller進(jìn)程 130
7.2.5 icmp pinger進(jìn)程 133
7.2.6 java poller進(jìn)程 133
7.2.7 proxy poller進(jìn)程 134
7.2.8 http poller進(jìn)程 134
7.3 小結(jié) 135
第8章 預(yù)處理進(jìn)程和LLD進(jìn)程 136
8.1 進(jìn)程間通信服務(wù)消息格式 137
8.2 預(yù)處理進(jìn)程 138
8.2.1 預(yù)處理工作總體框架 138
8.2.2 preprocessing manager進(jìn)程 140
8.2.3 preprocessing worker進(jìn)程 143
8.3 LLD進(jìn)程 145
8.3.1 進(jìn)程間通信服務(wù)中的LLD消息 145
8.3.2 LLD原始數(shù)據(jù)的采集和預(yù)處理 146
8.3.3 lld manager進(jìn)程 146
8.3.4 lld worker進(jìn)程 149
8.4 小結(jié) 150
第9章 history syncer進(jìn)程——監(jiān)控?cái)?shù)據(jù)的計(jì)算與入庫 151
9.1 history syncer進(jìn)程的工作機(jī)制 151
9.1.1 監(jiān)控值的同步過程 152
9.1.2 趨勢數(shù)據(jù)的同步過程 154
9.1.3 事件的生成與處理 155
9.1.4 動(dòng)作的處理 160
9.1.5 history syncer進(jìn)程之間的協(xié)作 161
9.2 觸發(fā)器的計(jì)算過程 162
9.2.1 觸發(fā)器表達(dá)式的表示法 162
9.2.2 表達(dá)式函數(shù)的計(jì)算 163
9.2.3 外層的計(jì)算 165
9.3 自定義history write模塊 165
9.3.1 接口函數(shù) 165
9.3.2 自定義模塊的注冊 167
9.4 小結(jié) 168
第 10章 escalator進(jìn)程、alert進(jìn)程族和task manager進(jìn)程——事件激發(fā)的動(dòng)作 169
10.1 escalator進(jìn)程 169
10.1.1 理解升級序列 169
10.1.2 工作過程 171
10.1.3 escalator進(jìn)程與alert進(jìn)程族以及task表的關(guān)系 173
10.2 alert進(jìn)程族 173
10.2.1 核心數(shù)據(jù)結(jié)構(gòu)與工作機(jī)制 173
10.2.2 進(jìn)程間通信服務(wù)消息與進(jìn)程間交互 178
10.2.3 alert syncer進(jìn)程 180
10.2.4 alert manager進(jìn)程 180
10.2.5 alerter進(jìn)程 181
10.2.6 看門狗邏輯 181
10.3 task manager進(jìn)程 182
10.3.1 遠(yuǎn)程命令任務(wù)和任務(wù)執(zhí)行結(jié)果 182
10.3.2 數(shù)據(jù)任務(wù)和數(shù)據(jù)結(jié)果任務(wù) 183
10.3.3 立即檢查任務(wù) 184
10.3.4 問題確認(rèn)任務(wù)和問題關(guān)閉任務(wù) 185
10.4 小結(jié) 186
第 11章 Zabbix內(nèi)部監(jiān)控 187
11.1 self-monitoring進(jìn)程與collector變量 187
11.1.1 測量指標(biāo)和單位 188
11.1.2 數(shù)據(jù)結(jié)構(gòu) 189
11.1.3 數(shù)據(jù)處理過程 190
11.1.4 數(shù)據(jù)溢出問題 191
11.1.5 共享內(nèi)存中的collector變量 191
11.2 從數(shù)據(jù)庫獲取狀態(tài)信息 192
11.3 從緩存獲取狀態(tài)信息 193
11.3.1 獲取ConfigCache的狀態(tài)信息 193
11.3.2 獲取ValueCache的狀態(tài)信息 194
11.3.3 獲取HistoryCache和HistoryIndexCache的狀態(tài)信息 195
11.3.4 獲取VMwareCache的狀態(tài)信息 195
11.4 從其他渠道獲取信息 195
11.4.1 從poller進(jìn)程獲取信息 195
11.4.2 從進(jìn)程間通信服務(wù)獲取信息 196
11.4.3 遠(yuǎn)程獲取數(shù)據(jù) 196
11.5 小結(jié) 197
第 12章 Zabbix代理專述 198
12.1 Zabbix代理端分擔(dān)的功能 198
12.1.1 功能劃分的現(xiàn)狀與評估 198
12.1.2 未來功能劃分的可能性 200
12.2 Zabbix代理端的工作機(jī)制 200
12.2.1 Zabbix代理端的configuration syncer進(jìn)程 200
12.2.2 Zabbix代理端的data sender進(jìn)程 201
12.2.3 被動(dòng)模式下的Zabbix代理 203
12.2.4 Zabbix代理端的housekeeper進(jìn)程 204
12.2.5 Zabbix代理端的heartbeat sender進(jìn)程 205
12.3 小結(jié) 206
第 13章 數(shù)據(jù)庫表和housekeeper進(jìn)程 207
13.1 Zabbix服務(wù)器訪問數(shù)據(jù)庫 207
13.1.1 連接的建立與關(guān)閉 208
13.1.2 SQL語句的構(gòu)造與運(yùn)行 209
13.1.3 事務(wù)與數(shù)據(jù)的一致性 211
13.1.4 訪問量的計(jì)算 211
13.2 進(jìn)程使用的數(shù)據(jù)庫表 212
13.2.1 history syncer進(jìn)程使用的表 212
13.2.2 lld worker進(jìn)程使用的表 212
13.2.3 alert syncer進(jìn)程使用的表 213
13.2.4 escalator進(jìn)程使用的表 213
13.2.5 proxy poller進(jìn)程使用的表 214
13.2.6 configuration syncer進(jìn)程使用的表 215
13.3 housekeeper進(jìn)程 216
13.3.1 相關(guān)結(jié)構(gòu)體定義 216
13.3.2 清理數(shù)據(jù)的過程 217
13.3.3 housekeeping_cleanup()函數(shù) 219
13.4 小結(jié) 220
第 14章 Zabbix java gateway 221
14.1 JMX監(jiān)控 221
14.2 ZJG的內(nèi)部結(jié)構(gòu) 222
14.2.1 功能結(jié)構(gòu) 222
14.2.2 ThreadPoolExecutor線程池 225
14.2.3 日志輸出 226
14.3 java poller進(jìn)程與ZJG的交互 227
14.4 ZJG的安裝部署 229
14.4.1 編譯和部署ZJG 229
14.4.2 啟動(dòng)和停止ZJG 229
14.5 小結(jié) 230
第三部分 Zabbix客戶端及源碼構(gòu)建
第 15章 Zabbix客戶端的工作機(jī)制 232
15.1 Zabbix客戶端主進(jìn)程 232
15.1.1 Zabbix客戶端主進(jìn)程的工作過程 232
15.1.2 collector變量與共享內(nèi)存 234
15.2 collector進(jìn)程 236
15.2.1 collector進(jìn)程的工作過程 236
15.2.2 system.cpu.util監(jiān)控值的收集 237
15.2.3 proc.cpu.util監(jiān)控值的收集 239
15.2.4 vfs.dev.read與vfs.dev.write數(shù)據(jù) 242
15.3 listener進(jìn)程 244
15.4 active checks進(jìn)程 246
15.5 可加載模塊 247
15.5.1 模塊加載過程 247
15.5.2 制作模塊文件(.so文件)及測試 248
15.6 小結(jié) 249
第 16章 Zabbix客戶端的原生監(jiān)控項(xiàng) 250
16.1 agent類監(jiān)控項(xiàng) 250
16.2 simple類監(jiān)控項(xiàng) 251
16.3 common類監(jiān)控項(xiàng) 252
16.3.1 系統(tǒng)通用監(jiān)控項(xiàng) 253
16.3.2 web.page組監(jiān)控項(xiàng) 254
16.3.3 vfs.file組監(jiān)控項(xiàng) 255
16.3.4 vfs.dir組監(jiān)控項(xiàng) 256
16.3.5 dns組監(jiān)控項(xiàng) 257
16.3.6 log組監(jiān)控項(xiàng) 257
16.3.7 zabbix.stats監(jiān)控項(xiàng) 258
16.4 specific類監(jiān)控項(xiàng) 259
16.4.1 kernel組監(jiān)控項(xiàng) 259
16.4.2 net組監(jiān)控項(xiàng) 260
16.4.3 proc組監(jiān)控項(xiàng) 260
16.4.4 文件系統(tǒng)監(jiān)控項(xiàng) 261
16.4.5 塊設(shè)備監(jiān)控項(xiàng) 262
16.4.6 內(nèi)存監(jiān)控項(xiàng) 263
16.4.7 系統(tǒng)專用監(jiān)控項(xiàng) 263
16.4.8 傳感器監(jiān)控項(xiàng) 266
16.5 hostname監(jiān)控項(xiàng) 266
16.6 小結(jié) 267
第 17章 Zabbix的構(gòu)建過程 268
17.1 總體構(gòu)建過程 268
17.1.1 源碼文件的目錄結(jié)構(gòu) 268
17.1.2 gcc的構(gòu)建過程 269
17.2 configure過程 270
17.2.1 理解configure.a(chǎn)c文件 271
17.2.2 理解aclocal.m4文件 272
17.2.3 理解configure腳本 273
17.3 make過程 276
17.3.1 Makefile文件的內(nèi)容結(jié)構(gòu) 277
17.3.2 理解Makefile.a(chǎn)m文件 280
17.3.3 src目錄的構(gòu)建過程 283
17.4 make install過程 284
17.5 Zabbix客戶端的構(gòu)建過程 284
17.6 Zabbix的構(gòu)建過程示例 285
17.7 小結(jié) 286
第四部分 Zabbix Web
第 18章 Zabbix Web API 288
18.1 類的關(guān)系與類的職責(zé) 288
18.2 設(shè)計(jì)模式 291
18.2.1 單例模式 291
18.2.2 類工廠模式 291
18.3 jsonrpc消息的處理過程 292
18.3.1 準(zhǔn)備階段 293
18.3.2 消息處理階段 294
18.4 擴(kuò)展Zabbix Web API 297
18.4.1 相關(guān)源碼文件的組織 297
18.4.2 擴(kuò)展方法示例 298
18.5 小結(jié) 299
第 19章 Zabbix Web應(yīng)用 300
19.1 Zabbix的MVC模式 300
19.1.1 MVC中的類圖與類的職責(zé) 300
19.1.2 請求處理過程 302
19.2 前端頁面的結(jié)構(gòu)與構(gòu)建 304
19.2.1 布局與視圖 305
19.2.2 HTML的構(gòu)建過程 307
19.3 CController類 309
19.4 Zabbix Web應(yīng)用的擴(kuò)展 309
19.4.1 源碼文件的目錄結(jié)構(gòu) 309
19.4.2 在頁面增加篩選條件 310
19.5 小結(jié) 312

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號