ChaosBlade 是阿里巴巴開源的一款遵循混沌工程原理和混沌實驗模型的實驗注入工具,幫助企業提升分布式系統的容錯能力,並且在企業上雲或往雲原生系統遷移過程中業務連續性保障。
地址:https://github.com/chaosblade-io/chaosblade
文檔:https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/blade
安裝
從以下路勁獲取最新版本
https://github.com/chaosblade-io/chaosblade/releases/
解壓即用
tar -zxvf chaosblade-0.6.0-linux-amd64.tar.gz
解壓后進入chaosblade-0.6.0目錄
[cli@node1 chaosblade-0.6.0]$ ls bin blade chaosblade.dat lib logs
故障演練
cpu滿載
./blade create cpu fullload
返回信息
[cli@node1 chaosblade-0.6.0]$ ./blade create cpu fullload {"code":200,"success":true,"result":"04387569ffd9e877"}
top查看cpu使用情況
故障恢復
./blade destroy 04387569ffd9e877
返回信息
[cli@node1 chaosblade-0.6.0]$ ./blade destroy 04387569ffd9e877 {"code":200,"success":true,"result":{"Target":"cpu","Scope":"","ActionName":"fullload","ActionFlags":{}}}
查看cpu使用情況,已經恢復正常
磁盤滿
填充20個G的文件
./blade create disk fill --size 20480
返回信息
{"code":200,"success":true,"result":"13bfcd49ce80b5a5"}
查看磁盤
恢復故障
./blade destroy 13bfcd49ce80b5a5
磁盤io高
./blade create disk burn --write --read --size 10 --timeout 300
禁止端口訪問
blade create network drop --local-port 80 --remote-port 80
網絡丟包
網絡掉包50% blade create network loss --interface eth0 --percent 50 --local-port 6483 --remote-port 6483
網絡延時
對網卡eth0,延時3秒 blade create network delay --interface eth0 --time 3000 --local-port 6483 --remote-port 6483
查看創建的故障記錄
./blade status --type create
查看銷毀的故障記錄
./blade status --type destroy
各種故障演練參考官方文檔