1. 概述


神策環境檢測工具主要用於檢測伺服器是否滿足部署神策分析的要求。  

主要檢測項目有:

  • 硬體:cpu 核心數、記憶體大小、硬碟容量、硬碟讀寫速度等;
  • 系統:發行版本、核心版本、防火牆設定、當前運作的服務等;
  • 其他:叢集之間頻寬、是否可正常連接 ntp 伺服器、python 標準的 paramiko 庫是否可用等。

2. 檢測步驟


若檢測叢集,只需在其中一台機器上下載、設定並執行即可。

2.1. 取得檢測程式


wget http://update.sensorsdata.cn/release/devops/sa-env_checker-2.0.tar.gz
BASH

2.2. 解壓並進入程式目錄


tar zxf sa-env_checker-2.0.tar.gz && cd sa-env_checker-2.0
BASH

2.3. 複製設定模板並編輯設定


cp env.yml.example env.yml
vim env.yml
BASH

2.3.1. 設定參數說明


  • 所有符號均需為半型,即英文輸入法下的符號;
  • 需依循 yaml 語法,如冒號後面必需要有空格。
  • ips內網 ip 地址,多個以逗號分隔。不可為空;
  • hosts:正式部署時要修改為的主機名,多個以逗號分隔,需與 ips 一一對應,需符合 FQDN 要求。不可為空;
  • ssh_port:ssh 埠號,預設為 22。不可為空;
  • password:ssh 密碼,若所有節點密碼相同,則只需填寫一個字串,如 Password;若節點之間密碼不同,則以列表形式填寫,如 ['Passwd1', 'Passwd2', 'Passwd3']。不可為空;
  • meta_disk_path:元數據盤掛載點,目前只支援一塊,做了 raid 的 ssd 硬碟。不可為空;
  • data_disk_paths:數據盤掛載點,多塊以逗號分隔,一般未做 raid 的裸盤。若為單機版則與 meta_disk_path 保持一致即可。不可為空;
  • ntp:ntp server 網址,不能連接外網的客戶必須填寫,預設檢測 0.cn.pool.ntp.org
  • sudo_need_password:非 root 帳號執行 sudo 需要輸入密碼時,則更改為 True,預設為 False;
  • ex_ips:已有環境的已有主機的 ip 地址,用於增加節點時,測試與已存在主機之間的頻寬,非必選;

2.4. 執行檢測


檢測全部

./env_checker env.yml
BASH

若數據碟太多,可並行檢測 n 塊數據碟以縮短檢測時間,但需滿足 1 <= n <= 6,且 n <= 數據碟數量。例如同時檢測 3 塊數據碟

./env_checker env.yml --disk_thread 3
BASH

2.5. 查看檢測結果


全部合格輸出結果

Check done, you can view the results via https://www.json.cn
Get the results by:
  cat /data/sa-env_checker-2.0/runtime/all_results.json
  cat /data/sa-env_checker-2.0/runtime/all_unmatch.json

Congratulations~ All matched
BASH

有不合格項目輸出結果

Check done, you can view the results via https://www.json.cn
Get the results by:
  cat /data/sa-env_checker-2.0/runtime/all_results.json
  cat /data/sa-env_checker-2.0/runtime/all_unmatch.json

10.10.10.10.unmatch:
  cpu count 4 < 16
BASH

2.6. 提交檢測結果


所有檢測結果及紀錄檔都保存在執行目錄的 runtime/ 下,需把 all_results.jsonall_unmatch.json 提交給神策的同學.

檢測結果的絕對路徑如檢測結果輸出中的

/data/sa-env_checker-2.0/runtime/all_results.json
/data/sa-env_checker-2.0/runtime/all_unmatch.json
BASH

3. 其他使用方法


取得使用幫助

./env_checker -h
BASH

不分發包直接檢測 用於第 n 次檢測時使用 n > 1

./env_checker env.yml -s
BASH

只檢測叢集間頻寬

./env_checker env.yml --only_bw
BASH

不檢測叢集間頻寬

./env_checker env.yml --no_bw
BASH

只檢測硬碟

./env_checker env.yml --only_disks
BASH

不檢測硬碟

./env_checker env.yml --no_disks
BASH

不檢測當前運作服務

./env_checker env.yml --no_services
BASH

不檢測 ntp server 等服務的可連接性,用於伺服器未設定 dns 時檢測

./env_checker env.yml --no_connections
BASH

不檢測安裝包下載速度,用於無外網環境

./env_checker env.yml --no_check_download
BASH