前端錯誤日誌監控-sentry 之 安裝篇
題外話
前端作爲最接近用戶的一端,有非常重要的責任。響應要快,操作要流暢等,然而 JS 的單線程設計,和 dom 不能同時渲染的設計,讓你的 JS 報錯分分鐘就卡在那裏動不了。簡單來說:
體驗賊差
有報錯咋辦?調試唄,可以看之前出的很多調試的文章:
主推是 spy-debugger
。我日常用的最多的也是spy-debugger
-
- 優點:
- 操作方便,自動注入,
- 可以調試 JS 和 css,查看請求等。
- 缺點:
- 調試需要代理
- 如果是 https 還需要裝證書。
- 優點:
-
-
優點:原生 chrome 控制檯。原生!!這控制檯無敵,挑不出毛病
-
缺點:
- 有牆,很有可能連不上(新出的 edge 也支持調試,貌似直連,不怕牆)。
- 需要數據線,連接不穩定(線松)。
- 還需要配套 手機 chrome,無法調試其他瀏覽器
-
-
PC 調試移動端 H5 vue-devtools+weinre+fiddler
- 這個沒啥優缺點 純屬對
vue-devtools
的一個好奇探索。對fiddler
的一個入門
- 這個沒啥優缺點 純屬對
以上的工具,非常實用,可是也有弊端:就是必須復現 bug 的手機就在身旁,你得還連數據線,或者開代理各種操作。對於市場用戶來說,這基本不可能,根本復現不了那麼多場景。
最後只能說一句:我的電腦/手機上沒問題啊
所以我們需要更多的監控,常說的前端埋點,這裏直接介紹 sentry
senrry 「哨兵」 優點
- 開源(有收費版的,當然選擇自己搭建)
- 工具齊全
- 多端集成
- 支持 SourceMap(復現 bug 必需品)
- 快速使用(實在沒有空閒自己寫一套埋點,搞不好還四不像)
正題:senrry 安裝
安裝方式
注意事項
- 服務器的內存至少 2G,否則在執行 sentry upgrade 命令時會出現問題
- Docker 版本要在
17.05.0+
- Compose 版本要在
1.23.0+
安裝 docker
這裏有坑,不想踩的可以先看完後面的截圖
# 安裝docker
yum install docker -y
# pip安裝docker-compose
pip install docker-compose
-
- pip 安裝 docker-compose 失敗
Cannot uninstall ‘requests’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
問題解析:
舊版本依賴多,不能清晰的刪除,此時應該忽略舊版本升級,即如下
解決辦法:
sudo pip install docker-compose --ignore-installed requests
-
- 一開始沒留意,yum 源的 docker 版本太低了。。。
我的 docker 版本才 1.13.3
解決方法:升級 docker 版本
# 刪除舊的docker
yum remove docker docker-common docker-selinux docker-engine
# 安裝需要的軟件包
## yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 設置Docker yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 查看所有倉庫中所有docker版本
yum list docker-ce --showduplicates | sort -r
# 安裝docker。默認裝最新的
sudo yum install docker-ce
# 如果需要指定版本安裝(版本號上面的命令有的看)
sudo yum install docker-ce-18.06.1.ce
查看 docker 版本
安裝完成後。docker 的準備就差不多了,啓動下 docker
systemctl start docker
下載安裝腳本
就是上面寫的 docker 的 Git 地址。找個地方把 git 獲取下來
git clone https://github.com/getsentry/onpremise.git
會看到有一個 onpremise
文件夾。後續的操作都在這個文件夾裏面,所以
cd onpremise
# 執行安裝
./install.sh
如果遇到 沒有那個文件或目錄
。是因爲換行符的問題,git 拉下來的 sh 腳本用了CRLF
換行符,導致有很多額外的符號影響了腳本
解決方法:
- 編輯
install.sh
。修改換行符:
vim install.sh
# 然後點擊 esc 。輸入
:set ff=unix
# 然後保存退出
- 把
install.sh
拉到 vscode 中。直接修改換行符
點一下 CRLF 換成 LF。重新上傳到服務器就好
換行符搞定了,那就繼續執行腳本
修改鏡像
有坑,先看說明:
然後你會發現 Fetching and updating Docker images
等了幾個世紀都沒反應!實在是太慢了,所以我們要改成阿里雲的鏡像在執行 install 命令
到阿里雲裏面獲取最新的鏡像地址(要獲取鏡像地址需要註冊阿里雲,就隨便註冊下而已)
https://promotion.aliyun.com/ntms/act/kubernetes.html
搜索 docker
查看鏡像加速器。側邊的文檔也寫的很清楚了:
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://hkoa9dfz.mirror.aliyuncs.com”]
}
EOF是一句命令,複製進去就行
或者用常用的 vi.vim。把
{
“registry-mirrors”: [“https://hkoa9dfz.mirror.aliyuncs.com”]
}
粘貼進去效果是一樣的
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hkoa9dfz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
鏡像也找到了。就正式可以運行 ./install.sh
安裝,等幾分鐘。看到這個就是安裝完成了
創建初始帳號
詢問是否創建一個帳號,輸入郵箱地址即可,後面還會要求輸入密碼,再次確認
不小心點了 n 咋辦?
重新運行下面的命令,會在讓你輸入一個賬戶的
docker-compose run --rm web upgrade
運行 sentry
docker-compose up -d
然後瀏覽器訪問 http://{ip}:9000
。IP 改成自己服務器的 ip 地址。默認是 9000 端口
成功了一半~
帳號密碼就是剛纔填寫的帳號密碼,沒生成的話重新看下上面的步驟
寫到這裏安裝的算是告一段落了,文章篇幅太長,sentry 的使用還有很多要記的,所以下一篇文章在細說!
最後說一句
docker 牛逼!sentry 那麼多依賴一個鏡像就搞定了,雖然換鏡像源卡了一下,整體來說總比以前一個個依賴去裝方便得多