前端錯誤日誌監控-sentry安裝

前端錯誤日誌監控-sentry 之 安裝篇

題外話

前端作爲最接近用戶的一端,有非常重要的責任。響應要快,操作要流暢等,然而 JS 的單線程設計,和 dom 不能同時渲染的設計,讓你的 JS 報錯分分鐘就卡在那裏動不了。簡單來說:體驗賊差

有報錯咋辦?調試唄,可以看之前出的很多調試的文章:

主推是 spy-debugger。我日常用的最多的也是spy-debugger

  • chrome 調試手機網頁

    • 優點:原生 chrome 控制檯。原生!!這控制檯無敵,挑不出毛病

    • 缺點:

      1. 有牆,很有可能連不上(新出的 edge 也支持調試,貌似直連,不怕牆)。
      2. 需要數據線,連接不穩定(線松)。
      3. 還需要配套 手機 chrome,無法調試其他瀏覽器

以上的工具,非常實用,可是也有弊端:就是必須復現 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
    1. 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
    1. 一開始沒留意,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換行符,導致有很多額外的符號影響了腳本

解決方法:

  1. 編輯 install.sh。修改換行符:
vim install.sh

# 然後點擊 esc 。輸入
:set ff=unix
# 然後保存退出
  1. 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 那麼多依賴一個鏡像就搞定了,雖然換鏡像源卡了一下,整體來說總比以前一個個依賴去裝方便得多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章