第1章 服務器監測 1
1.1 理解監測的意義 1
1.2 通過命令瞭解係統的性能概況 2
1.2.1 ifconfig 2
1.2.2 w 3
1.2.3 df 4
1.2.4 ps 6
1.2.5 vmstat 8
1.2.6 netstat 8
1.2.7 iostat 9
1.3 其他常用工具 13
1.3.1 sar 13
1.3.2 dstat 14
1.3.3 mtr 17
1.3.4 IPtraf 18
1.3.5 TcpDump 19
1.3.6 Wireshark 22
1.3.7 strace 23
1.3.8 stap 24
1.4 SmokePing 網絡質量監測 34
1.4.1 原理 35
1.4.2 配置說明 37
1.4.3 報警 39
1.4.4 WebUI 40
1.5 Nagios 分布式監測 41
1.5.1 架構原理 42
1.5.2 Plugin 編寫 45
1.5.3 SNMP 網絡監控 46
1.5.4 Gearman 分布式 50
1.5.5 OMD 介紹 55
第2章 産品訪問監測 57
2.1 關注産品比服務器更重要 57
2.2 網站監測的明星指標 58
2.2.1 可用性 58
2.2.2 響應時間 59
2.2.3 首屏響應時間 59
2.3 網頁瀏覽過程簡介 60
2.3.1 解析域名 60
2.3.2 連接服務器 61
2.3.3 發送請求 61
2.3.4 等待響應 63
2.3.5 傳輸響應內容 63
2.3.6 瀏覽器渲染處理 64
2.3.7 並發請求 64
2.4 瀏覽器網絡監測與分析 65
2.4.1 Firebug 65
2.4.2 Chrome 開發人員工具 65
2.4.3 HttpWatch 66
2.4.4 rvictl 接口監控IOS 設備 67
2.4.5 HAR 格式 68
2.5 第三方監測 72
2.5.1 基調網絡 72
2.5.2 監控寶 91
2.6 簡單定製JS 監測 92
2.6.1 頁麵內嵌JS 92
2.6.2 Nginx 日誌記錄和存儲 93
2.6.3 數據展示 96
2.7 Boomerang 96
第3章 數據采集、傳輸與過濾 100
3.1 采集點的取捨 100
3.1.1 服務器數據 100
3.1.2 訪問日誌 101
3.1.3 係統日誌Syslog 102
3.2 收集傳輸 107
3.2.1 Rsyslog 107
3.2.2 message queue 115
3.2.3 RPC 118
3.2.4 Gearman 119
3.3 日誌收集係統框架 122
3.3.1 Flume-ng 122
3.3.2 logstash 125
第4章 數據分析與報警 136
4.1 時間序列存儲 136
4.1.1 RRDtool(Round-Robin Database Tool) 136
4.1.2 Graphite 141
4.1.3 OpenTSDB 143
4.2 全文搜索引擎ElasticSearch 144
4.2.1 簡介 144
4.2.2 安裝 145
4.2.3 集群 145
4.2.4 基礎查詢 146
4.2.5 優化 148
4.2.6 時間序列統計示例 152
4.3 數據可視化 156
4.3.1 RRDtool 156
4.3.2 Gnuplot 160
4.3.3 AmCharts 167
4.3.4 其他繪圖庫 176
4.4 報警 177
4.4.1 SendEmail 177
4.4.2 WebSocket 178
4.4.3 手機推送 182
4.4.4 分級和歸並 183
第5章 測試評估 185
5.1 服務器性能測試 185
5.1.1 IOzone 186
5.1.2 Netperf 189
5.1.3 pktgen 193
5.1.4 sysbench 194
5.2 應用性能測試 197
5.2.1 http_load 197
5.2.2 AB 198
5.2.3 weighttp 201
5.3 分布式測試環境 202
5.3.1 AutoBench 202
5.3.2 TCPCopy 205
第6章 集群架構規劃 207
6.1 IDC 的規劃和選擇 207
6.1.1 網站性質決定基礎麵 207
6.1.2 IDC 廠商服務質量 208
6.1.3 BGP 真僞的驗證 209
6.2 CDN 規劃 213
6.2.1 CDN 原理 213
6.2.2 DNS 原理 214
6.2.3 DNS 查詢結構實現 217
6.2.4 DNS 調度 223
6.2.5 其他調度方法概述 227
6.2.6 動態加速概述 229
6.3 緩存設計 236
6.3.1 HTTP Header 對緩存的影響 236
6.3.2 Squid 的LM-factor 過期算法 239
6.3.3 squid 的ACL 控製 241
6.3.4 Squid 的aufs/coss緩存引擎 243
6.3.5 squidclient 的運用 245
6.3.6 使用SSD 提高性能 250
6.4 本地負載均衡 255
6.4.1 LVS 負載均衡原理 255
6.4.2 keepalived 與VRRP 高可用原理 263
6.4.3 Nginx 的upstream 268
6.4.4 squid 的cache_peer 272
第7章 彈性控製和部署 274
7.1 配置集成的思想 274
7.1.1 抽象的集群管理 274
7.1.2 通用模式設計 275
7.2 操作係統部署KickStart 276
7.2.1 基本原理 277
7.2.2 配置安裝 278
7.3 應用部署與配置管理 279
7.3.1 SSH::Batch 279
7.3.2 Puppet 282
7.4 搭建私有軟件倉庫 312
7.4.1 使用spec 文件構建RPM 包 312
7.4.2 命令行打包工具FPM 322
7.4.3 yum 私有倉庫 324
7.5 隨時控製成本 324
7.5.1 CGroup 配置簡介 324
7.5.2 內存限製 328
7.5.3 CPU 共享限製 330
7.5.4 CPU 綁定限製 331
7.5.5 塊設備讀寫限製 333
7.5.6 配閤TC 完成網絡限速 335
7.6 關於雲計算 337
第8章 分布式文件係統 339
8.1 NFS 339
8.1.1 原理 340
8.1.2 服務器端配置和優缺點 341
8.1.3 客戶端參數優化 343
8.1.4 丟包與網絡參數優化 346
8.2 簡單易用的FUSE 協議 348
8.3 MogileFS 351
8.3.1 GFS 介紹 351
8.3.2 MogileFS 介紹 353
8.3.3 MogileFS 內部原理 356
8.3.4 安裝和配置 359
8.3.5 客戶端配置和使用 363
第9章 數據庫 368
9.1 MySQL 必知必會 368
9.1.1 常見SQL 369
9.1.2 導入導齣 370
9.1.3 簡單配置調優 371
9.2 慢查詢分析工具mysqlsla 372
9.2.1 使用 372
9.2.2 結果分析 373
9.3 Percona 工具集 374
9.3.1 備份恢復工具XtraBackup 374
9.3.2 在綫運維工具箱Toolkit 376
9.3.3 監控插件集 379
9.4 監控工具 380
9.4.1 mytop 和innotop 380
9.4.2 orzdba 381
9.5 MySQL 集群 384
9.5.1 MySQL 復製原理 384
9.5.2 MHA 原理 386
9.5.3 MHA 安裝使用 388
第10章 備份與同步技術 390
10.1 rsync 390
10.1.1 原理 391
10.1.2 常見運用 393
10.2 inotify 和sersync 工具 396
10.2.1 inotify 概述和示例 396
10.2.2 sersync 介紹 397
10.2.3 sersync 配置用例 398
10.3 Netcat 400
10.3.1 文件傳輸 400
10.3.2 端口掃描 401
10.3.3 遠程控製 401
10.4 P2P 傳輸網絡 402
10.4.1 P2P 協議概述 403
10.4.2 BitTorrent 概述 405
10.4.3 murder 部署和運用 406
第11章 運維製度化與自管理 408
11.1 運維製度化 408
11.1.1 運維為什麼要製度化 408
11.1.2 運維如何製度化 409
11.1.3 SLA(Service Level Agreement)協議 409
11.1.4 故障處理的五問法 410
11.1.5 知識庫 413
11.1.6 流程跟蹤的Tracker係統 425
11.2 自管理 431
11.2.1 時間管理 431
11.2.2 思維導圖 433
11.2.3 Git 管理和應用 434
11.2.4 交流與活動 445
· · · · · · (
收起)