Zabbix監控系統深度實踐

broadviewbj發表於2014-09-19

Zabbix監控系統深度實踐(企業級分散式系統自動化運維必選利器,大規模Zabbix叢集實戰經驗技巧總結,由淺入深全面講解配置、設計、案例和內部原理

姚仁捷 著 

ISBN 978-7-121-24013-3

20148月出版

定價:69.00

364

16

編輯推薦

國內最大規模Zabbix叢集負責人力作

全面講解Zabbix配置應用,深入剖析Zabbix內部原理

用真實工作需求驅動,以獨家實踐案例指引,助您監控利器出鞘

Zabbix是目前最流行的分散式圖形化開源監控系統解決方案,它有健全靈活的監控資料採集、儲存、告警規則配置以及圖形化展示介面。豐富的功能背後是極高的複雜性,特別在國內缺乏相關的中文資料的背景下,系統管理人員很難參透工具內在的精髓和侷限,從而高效地將其用於大規模監控場景。本書作者曾參與大規模Zabbix叢集應用專案,系統覆蓋了當時5000多臺主機和幾十萬個監控點,近百萬的監控點記錄,修改了Zabbix多處原始碼,實現了很多自動化的監控部署和Proxy-Master 的分散式監控,以及透過Zabbix Trigger自動分析等,從實踐中總結了極具價值的方法、思想和技巧在本書中分享。

內容提要

Zabbix監控系統深度實踐》是一本由淺入深,全面講解Zabbix應用與原理的技術書籍,也是作者多年實戰經驗的總結和濃縮。在概念篇,從一個簡單但完整的入門案例講起,案例中有最基本的概念介紹,透過案例幫助那些只要將伺服器加入監控,並且看到監控資料的讀者;然後逐步深入,在進階篇介紹Zabbix的各方各面的配置;在設計篇中對Zabbix的內部原理進行深入剖析,包括Zabbix與資料庫的互動Zabbix資料庫表的設計等,並分享作者在Zabbix上踩過的坑以及解決問題的思路。最後會在開源部分介紹58同城開源的ZatreeChrome的外掛、手機客戶端等工具。

這本書會從我們工作中的實際需求出發,以實際案例作為指引,希望對於讀者而言,不僅僅是學會某些具體的操作,而是深入瞭解Zabbix 的設計思路,掌握解決問題的方法。

Zabbix監控系統深度實踐》適合想使用Zabbix構建監控系統的技術人員閱讀,也適合有一定基礎、對於Zabbix有更高的要求的讀者。

目錄

第一部分 概念篇

1 章 自動化運維和監控系統… ????????????????????? 2

1.1 網際網路公司的運維工作…????????????????????????? 2

1.2 何謂自動化運維…???????????????????????????? 3

1.3 監控系統在運維自動化中的角色…????????????????????? 5

1.4 監控系統的理想化模樣…????????????????????????? 5

2 Zabbix簡介… ?????????????????????????? 7

2.1 Zabbix發展現狀… ???????????????????????????? 7

2.2 選擇Zabbix的理由… ??????????????????????????? 8

2.3 Zabbix部分名詞約定… ?????????????????????????? 9

3 Zabbix安裝… ?????????????????????????? 11

3.1 獲取Zabbix… ??????????????????????????????11

3.2 Zabbix Server安裝… ???????????????????????????12

3.2.1 Zabbix資料庫配置… …………………………………………………………12

3.2.2 安裝Zabbix Server… …………………………………………………………13

3.2.3 安裝Zabbix Web前端……………………………………………………………… 16

3.3 Zabbix Agent安裝…????????????????????????????18

3.3.1 UNIX/Linux上安裝Zabbix Agent………………………………………………… 18

3.3.2 Windows上安裝Zabbix Agent… ………………………………………………… 18

3.4 測試Zabbix AgentZabbix Server執行… ???????????????????20

3.5 配置檔案詳解…?????????????????????????????20

3.5.1  zabbix_server.conf… …………………………………………………………20

3.5.2 zabbix_agentd.conf… …………………………………………………………24

4 章 監控第一臺Host… ???????????????????????? 26

4.1 Host在監控系統中的活動… ????????????????????????26

4.2 新增一個使用者…?????????????????????????????27

4.3 把伺服器加入Zabbix監控… ????????????????????????27

4.4 新增Item… ???????????????????????????????28

4.5 新增Trigger… ??????????????????????????????29

4.6 設定Action… ??????????????????????????????31

4.7 收到第一封報警郵件吧…?????????????????????????33

4.8 Zabbix 報警流程… ????????????????????????????33

4.9 看,Zabbix在工作呢… ??????????????????????????34

4.9.1 全域性搜尋框………………………………………………………………………… 35

4.9.2 檢視監控資料……………………………………………………………………… 35

4.9.3 檢視報警資訊……………………………………………………………………… 36

4.10 新增自定義監控點… ??????????????????????????37

第二部分 配置篇

5 章 增加監控… ??????????????????????????? 40

5.1 Host配置… ???????????????????????????????41

5.2 Item屬性… ???????????????????????????????45

5.3 Item型別… ???????????????????????????????48

5.3.1 Zabbix Agent型別… ……………………………………………………………… 48

5.3.2 SNMP型別… …………………………………………………………………51

5.3.3 IPMI型別…………………………………………………………………………… 52

5.3.4 日誌檔案監控……………………………………………………………………… 53

5.3.5 計算型Item… …………………………………………………………………54

5.3.6 Zabbix內部監控… ……………………………………………………………55

5.3.7 ssh型別Item……………………………………………………………………58

5.3.8 Telnet型別Item… ……………………………………………………………60

5.3.9 External Check型別Item………………………………………………………60

5.3.10 Aggregate型別Item……………………………………………………………… 60

5.3.11 Trapper型別Item… …………………………………………………………62

5.3.12 JMX型別Item… ………………………………………………………………… 62

5.3.13 ODBC型別Item…………………………………………………………………… 64

5.4 Item歷史資料HistoryTrends…???????????????????????66

5.5 使用ApplicationItem分組…????????????????????????67

5.6 Item Key詳解… ?????????????????????????????68

5.7 Template模板… ?????????????????????????????69

5.7.1 新建和配置一個Template… …………………………………………………69

5.7.2 建立/取消HostTemplate的關聯……………………………………………71

5.7.3 修改Template… ………………………………………………………………73

5.7.4 TemplateHost… ……………………………………………………………73

5.7.5 Template之間的父子關係… …………………………………………………74

5.8 CloneFull CloneMass Update… ?????????????????????75

5.9 Windows監控… ?????????????????????????????76

5.10 VMware監控… ?????????????????????????????82

5.11 Zabbix監控效能…????????????????????????????84

6 章 報警配置… ??????????????????????????? 86

6.1 Triggers…????????????????????????????????86

6.1.1 配置Triggers……………………………………………………………………86

6.1.2 Trigger expression… ……………………………………………………………… 87

6.1.3 Function詳解… ………………………………………………………………89

6.1.4 Trigger依賴………………………………………………………………………… 92

6.1.5 Trigger等級………………………………………………………………………… 94

6.1.6 單位………………………………………………………………………………… 95

6.2 Events… ????????????????????????????????95

6.3 Actions… ????????????????????????????????96

6.3.1 Action… ………………………………………………………………………97

6.3.2 Operation………………………………………………………………………99

6.3.3 Condition………………………………………………………………………… 104

6.3.4 Escalations………………………………………………………………………… 107

6.3.5 Unsupported狀態的Items的報警… …………………………………………… 110

6.4 Media型別… ????????????????????????????? 111

6.5 Maintenance狀態…??????????????????????????? 116

7 章 資料視覺化… ????????????????????????? 118

7.1 Graph… ??????????????????????????????? 118

7.2 Network Maps… ???????????????????????????? 123

7.2.1 新建Maps………………………………………………………………………… 123

7.2.2 建立元素………………………………………………………………………… 124

7.2.3 選擇元素………………………………………………………………………… 126

7.2.4 關聯元素………………………………………………………………………… 126

7.2.5 關聯指示器……………………………………………………………………… 126

7.3 Screens …??????????????????????????????? 127

7.4 Slide shows … ????????????????????????????? 131

8 UsersMacros…??????????????????????? 133

8.1 UserUser group…??????????????????????????? 133

8.1.1 配置User… ……………………………………………………………………… 133

8.1.2 User group… …………………………………………………………………… 135

8.2 Macros… ??????????????????????????????? 136

8.2.1 自帶宏…………………………………………………………………………… 136

8.2.2 使用者自定義宏…………………………………………………………………… 137

8.2.3 自定義宏的適用範圍…………………………………………………………… 139

9 IT services服務監控與Web monitoring網路監控… ???????? 140

9.1 Services服務監控…??????????????????????????? 140

9.2 服務配置…?????????????????????????????? 141

9.3 Web monitoring網路監控配置…?????????????????????? 145

9.4 監控百度示例…???????????????????????????? 148

10 Zabbix前端介面… ?????????????????????? 151

10.1 Monitoring板塊… ??????????????????????????? 151

10.1.1 Dashboard欄目… …………………………………………………………151

10.1.2 Overview欄目… ……………………………………………………………… 157

10.1.3 Web欄目… …………………………………………………………………… 158

10.1.4 Latest data欄目… …………………………………………………………159

10.1.5 Triggers欄目… ………………………………………………………………… 159

10.1.6 Events欄目……………………………………………………………………… 160

10.1.7 Graphs&Screens&Maps欄目… ……………………………………………161

10.2 Inventory板塊…???????????????????????????? 161

10.3 Reports板塊… ???????????????????????????? 161

10.4 Configuration板塊… ?????????????????????????? 166

10.4.1 Host groups欄目… …………………………………………………………… 166

10.4.2 Template欄目…………………………………………………………………… 167

10.4.3 Hosts欄目… …………………………………………………………………… 168

10.4.4 Maintenance欄目… …………………………………………………………… 170

10.4.5 其他… ………………………………………………………………………… 170

10.5 Administration板塊…?????????????????????????? 171

10.5.1 General欄目… ………………………………………………………………… 171

10.5.2 DM欄目………………………………………………………………………… 177

10.5.3 Authentication欄目… ………………………………………………………… 178

10.5.4 Users欄目… …………………………………………………………………… 179

10.5.5 Media types欄目……………………………………………………………181

10.5.6 Scripts欄目……………………………………………………………………… 181

10.5.7 Audit欄目… …………………………………………………………………… 185

10.5.8 Queue欄目……………………………………………………………………… 186

10.5.9 Notification欄目… …………………………………………………………… 186

10.5.10 Installation欄目……………………………………………………………187

10.6 前端配置… ????????????????????????????? 187

10.6.1 全域性配置引數… ……………………………………………………………… 187

10.6.2 前端維護狀態顯示… ………………………………………………………… 189

10.6.3 Profile設定……………………………………………………………………… 190

10.7 全域性搜尋框… ???????????????????????????? 192

11 Discovery… ????????????????????????? 193

11.1 基於網路的Discovery????????????????????????? 193

11.2 Discovery的一個例子????????????????????????? 195

11.3 Discovery RuleDiscovery Action的配置…????????????????? 196

11.4 存活Agent自動加入監控… ??????????????????????? 199

11.5 low-level discovery…?????????????????????????? 200

第三部分 進階篇

12 Zabbix API… ???????????????????????? 206

12.1 Zabbix API POST引數… ???????????????????????? 206

12.2 Item支援的Zabbix API方法… ?????????????????????? 207

12.2.1 Item object……………………………………………………………………… 208

12.2.2 item.create… ………………………………………………………………209

12.2.3 item.delete… ………………………………………………………………210

12.2.4 item.exists… …………………………………………………………………… 210

12.2.5 item.get… ……………………………………………………………………… 211

12.2.6 item.getobjects… ……………………………………………………………… 214

12.2.7 item.isreadable/item.iswritable… …………………………………………215

12.2.8 item.update……………………………………………………………………… 215

12.3 如何閱讀Zabbix API文件…??????????????????????? 216

13 Zabbix分散式監控… ????????????????????? 217

13.1 兩種分散式架構對比… ???????????????????????? 217

13.2 Proxy單級分散式架構… ???????????????????????? 218

13.3 Proxy配置… ????????????????????????????? 219

13.4 Node多級分散式架構… ???????????????????????? 220

14 Zabbix系統最佳化… ?????????????????????? 227

14.1 Zabbix內部執行機制…????????????????????????? 227

14.2 Items過多造成效能下降… ??????????????????????? 228

14.3 資料庫及其他調優… ????????????????????????? 232

15 章 輕量級日誌監控應用…????????????????????? 233

15.1 準備工作… ????????????????????????????? 233

15.2 新增 Item… ????????????????????????????? 234

15.3 測試… ??????????????????????????????? 234

15.4 配置報警… ????????????????????????????? 236

15.5 輪轉的日誌檔案… ?????????????????????????? 237

15.6 獲取關鍵字… ???????????????????????????? 238

第四部分 設計篇

16 Zabbix資料庫表結構解析… ?????????????????? 240

16.1 表結構概述… ???????????????????????????? 240

16.2 Hosts表… ?????????????????????????????? 241

16.3 Items表… ?????????????????????????????? 244

16.4 Trigger在資料庫中的結構…??????????????????????? 248

16.5 Events表…?????????????????????????????? 253

16.6 TriggersEvents生成的規則…?????????????????????? 255

17 HistoryTrends… ?????????????????????? 256

17.1 sync欄位的含義…??????????????????????????? 257

17.2 historytrends的區別… ???????????????????????? 261

17.3 housekeepertrends表… ???????????????????????? 262

17.4 Graph對於historytrends的選擇…???????????????????? 263

18 Zabbix和資料庫互動詳解… ?????????????????? 268

18.1 include/zbxdb.h… ??????????????????????????? 268

18.2 zbxdb/db.c… ????????????????????????????? 270

18.3 zbxdbhigh… ????????????????????????????? 271

19 Zabbix 2.2新功能介紹…???????????????????? 274

19.1 資料庫自動升級… ?????????????????????????? 274

19.1.1 檢查資料庫版本… …………………………………………………………… 274

19.1.2 mandatoryoptional欄位…………………………………………………275

19.1.3 資料庫升級過程… …………………………………………………………… 277

19.1.4 前端提示… …………………………………………………………………… 278

19.2 Web監控…?????????????????????????????? 279

19.2.1 Web監控Template化…………………………………………………………… 279

19.2.2 Web監控重試機制… ………………………………………………………… 279

19.2.3 使用HTTP代理………………………………………………………………… 280

19.2.4 URL監控中使用頁面內容作為變數… ……………………………………… 281

19.3 資料對映… ????????????????????????????? 282

19.4 網頁字串匹配… ?????????????????????????? 282

19.5 日誌檔案監控… ??????????????????????????? 283

19.6 Latest Data區域性重新整理… ????????????????????????? 284

19.7 動態載入模組… ??????????????????????????? 285

19.8 SNMP監控改進…??????????????????????????? 289

19.8.1 SNMPv3相關的增強…………………………………………………………… 289

19.8.2 SNMP重試和超時機制改進…………………………………………………… 290

19.8.3 lld的複雜OIDs… ……………………………………………………………… 290

20 Zabbix內建監控項實現???????????????????? 291

20.1 system.hostname…??????????????????????????? 291

20.2 system.cpu.load… ??????????????????????????? 292

第五部分 社群和開源

21 章 典型案例分析…???????????????????????? 296

21.1 前端顯示Zabbix server停止工作問題… ?????????????????? 296

21.2 Item設定了但沒有資料…???????????????????????? 302

21.2.1 看頁面是否有報錯… ………………………………………………………… 302

21.2.2 Zabbix ServerZabbix Agent的網路是否互通… …………………………… 303

21.2.3 zabbix_get是否能夠獲取到資料… …………………………………………… 304

21.2.4 總結… ………………………………………………………………………… 304

21.3 一個掃描history全表的SQL問題… ???????????????????? 305

21.4 解決問題的思路… ?????????????????????????? 315

22 Zabbix程式碼問題和解決…???????????????????? 316

22.1 Duplicated Host問題… ????????????????????????? 316

22.2 拼接大SQL問題…??????????????????????????? 318

22.3 nextid問題… ????????????????????????????? 319

22.4 在Zabbix中列印日誌…????????????????????????? 321

23 PPTVZabbix監控體系…??????????????????? 322

23.1 Python Zabbix API… ?????????????????????????? 322

23.2 Spider——伺服器新增Zabbix監控… ??????????????????? 324

23.3 Event Console…???????????????????????????? 326

23.4 Rule Engine… ???????????????????????????? 326

23.5 報警系統架構… ??????????????????????????? 327

24 Zatree…??????????????????????????? 328

25 Zabbix第三方外掛?????????????????????? 331

25.1 Chromix… ?????????????????????????????? 331

25.2 Zabbix Notifier… ??????????????????????????? 332

25.3 手機端Zabbix App…?????????????????????????? 333

25.3.1 ZBX Mobile… ………………………………………………………………… 333

25.3.2 Zabbkit… ……………………………………………………………………… 335

26 章 微信公眾平臺報警…?????????????????????? 338

26.1 申請微信公眾平臺賬號… ??????????????????????? 338

26.2 配置微信公眾平臺賬號… ??????????????????????? 339

26.2.1 使用SAE進行測試開發………………………………………………………… 341

26.2.2 申請測試賬號… ……………………………………………………………… 342

26.2.3 獲取access_token… ………………………………………………………342

26.2.4 獲取使用者的openid……………………………………………………………… 343

26.2.5 傳送第一條文字訊息… ……………………………………………………… 343

26.3 微信介面請求次數限制… ??????????????????????? 344

27 章 社群論壇…?????????????????????????? 345

附錄 Zabbix自帶宏… ????????????????????????? 347

後記????????????????????????????????? 349

作者簡介

姚仁捷:資深工程師,現就職於唯品會上海研發中心工作,負責日誌平臺建設,包括日誌基礎架構,資料視覺化和報警系統的開發。

國內最早研究Zabbix的技術人員之一,Zabbix Python API作者。曾擔任社群內最大的Zabbix叢集——PPTV監控系統專案負責人。精通Zabbix叢集運維、使用和二次開發,深入瞭解Zabbix原始碼,善於從程式碼級別分析解決問題。

資深《冰與火之歌》粉絲,業餘跑步愛好者,樂於嘗試並推廣一切可以給網際網路使用者帶來便利和優質體驗的技術。

媒體評論

Zabbix是目前很流行的分散式圖形化開源監控系統解決方案。它有健全靈活的監控資料採集、儲存、告警規則配置以及圖形化展示介面,已經被越來越多的網際網路公司所應用,成為運維基礎架構系統的重要組成部分。

三年前,姚仁捷作為聚力傳媒(PPTV)的系統工程師,參與並承擔PPTV生產環境運維監控系統的建設工作。在短短三個月的時間裡,完成了從方案選取、部署測試、小範圍應用、全面上線的一整套工作,從無到有建設了覆蓋數千臺裝置的運維監控系統。我作為專案負責人,對於他的成就感到非常欣慰。

本人作為姚仁捷的同事、朋友,向有志於運維自動化的朋友們鄭重推薦此書!

陳文春

聚力傳媒(PPTV)系統平臺部高階總監

Zabbix是一個用於基礎架構監控和告警的開源解決方案,可以說是近幾年來國內外中小型網際網路企業中最流行的一種。它結合了Cacti繪圖和Nagios的告警機制,並擁有非常簡易的Web配置介面,再配合一些標準的監控模板,就能很輕鬆地上手了。姚仁捷曾經在PPTV負責過Zabbix大規模叢集的工作,積累了豐富的經驗和技巧,本書是他多年實踐工作的結晶,從功能到部署,從原理到案例,全面講解了Zabbix相關知識,值得一讀!

程國強

攜程網站運營系統開發總監

Zabbix是近幾年湧現出來的開源企業級監控工具,集資料採集,圖表繪製,報警等功能於一身,適合中小型企業快速的從無到有建立一個完備的監控體系。豐富的功能背後是極高的複雜性,特別在國內缺乏相關的中文資料的背景下,系統管理人員很難參透工具內在的精髓和侷限,從而高效地將其用於大規模監控場景。姚仁捷是國內Zabbix大規模應用場景的實踐先驅,在原始碼級對Zabbix的工作機制進行過研究及最佳化。相信本書可以幫助後來者少走彎路,趨利避害,讓Zabbix成為監控專案實施中的利器。

吳曉剛

攜程網站運營中心繫統開發部高階經理

Zabbix是近年來非常流行的分散式監控工具,但是上手容易,精通難。八牛曾經是國內最大規模Zabbix叢集的維護者,在Zabbix運維、最佳化及二次開發方面都有豐富的經驗。本書作為他多年經驗的結晶,不但詳細闡述了Zabbix的部署運用,還有針對性地解析了Zabbix架構設計的關鍵點和具體實現方式,更列舉了常見的疑難問題和解決方案,堪稱監控領域難得的精品書籍,相信不同層次的讀者都會有所收穫。

饒琛琳

新浪網技術保障部系統架構師

前言

本書的由來

我從職業生涯開始至今,就一直在和監控系統打交道。

我最早在eBay 容量規劃小組工作,使用監控系統檢視伺服器狀態及網站運營指標;後來到PPTV 運維部,透過監控系統的資料瞭解上線釋出的結果和網站的健康程度等情況;現在到了唯品會,我們的監控系統能夠從業務、技術兩個維度考察當前公司網站的運作情況。

在有監控系統之前,工程師需要到伺服器上去敲命令來獲取系統資料;為了分析問題,可能還需要將資料複製到本地計算機的Excel 裡進行畫圖;最要命的是,在出現問題的時候無法知道,只有在使用者報障後才能察覺。這是多麼駭人聽聞的場景!

而當我們有了一個好的監控系統後,這些問題就迎刃而解了。我們可以在一個介面中瀏覽整個機房的伺服器狀態、可以在Web 前端上方便地檢視監控資料、可以回溯尋找事故發生時候系統的問題和報警情況。現在,我們的工程師們已經可以一邊悠閒地喝著咖啡,一邊分析問題了。

監控系統是整個運維自動化體系中非常重要的環節。從伺服器上架到最後被回收重用,都有監控系統的身影。伺服器上架時,它需要新增監控;伺服器工作過程中,監控系統要時刻注意伺服器的健康,並且在伺服器出現異常時,要發出報警通知對應的人員;在伺服器被回收時,監控系統要取消伺服器的監控。這些都需要監控系統擁有API,能夠方便地跟外部其他系統一起工作,把自己的工作自動化起來。

國內的網際網路巨頭們,可以自行開發一套監控系統。而對於絕大多數企業來說,開源的Zabbix 是非常棒的選擇。它能夠非常好地實現以上這些需求。可以說,在目前Zabbix 是最熱門的開源監控系統。

本書的內容結構

從周圍的QQ 群、論壇等地方,我發現大家對於Zabbix 的學習都是非常零散的,缺少一個系統的學習過程和解決問題的正確思路。在這本書的前面,我會先向大家介紹一個最簡單的入門案例,案例中有最基本的概念介紹,透過案例幫助那些只要將伺服器加入監控,並且看到監控資料的讀者。後面深入一些,會介紹Zabbix 的方方面面的配置,適合打算使用Zabbix 高階功能的讀者。在接下來的部分,會深入剖析Zabbix 的內部原理,包括Zabbix 與資料庫的互動,Zabbix 資料庫表的設計等,我在Zabbix 上踩過的坑以及解決問題的思路,等等,希望能授之以漁。在本書的最後部分,主要是介紹Zabbix 在開源方面的進展,最主要的就是58 同城開源的Zatree,以及Chrome 的外掛和手機客戶端。

這本書會從我們工作中的實際需求出發,介紹Zabbix 的使用方法和其配置管理。在這些內容之後,會有深入一些的對於Zabbix 實現的講解,希望對於讀者而言,不僅僅是學會某些具體的操作,而是深入瞭解Zabbix 的設計思路,掌握解決問題的方法。

作者聯絡方式

由於經驗的不足,書中可能會有一些不足之處,大家可以聯絡微博@ 超大杯摩卡星冰樂,或者是我的郵箱baniu.yao@gmail.com

宣告

在剛開始進行寫作時,我考慮到很多讀者是用中文版的Zabbix,所以文中的Zabbix 的術語都是使用中文。但後來我覺得對於Zabbix 的術語,研究人員是需要了解它的英文說法的,這樣在同行之間才能更好的交流,也可以在Google 上更好地檢索資訊。基於這個原因,我將之前的中文術語全部又換成了英語。由於這些術語非常多,雖然編輯幫我細緻的檢查,難免有疏漏,非常抱歉。希望大家能夠諒解。

致謝

在前言的最後,要感謝很多人。首先感謝的是我的父母,沒有你們,就沒有我。然後要感謝我的老婆,因為要忙於寫書,好多時候不能陪你。最後要感謝的是諸超、陳文春、吳曉剛、周昕毅、朱寧和劉海陽等同事的幫助,在我寫書的過程中,給出了很多寶貴的建議。謝謝各位。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1273797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章