2020-11-11記錄piwik相關問題

背景

Piwik是一套基於Php+MySQL技術構建,能夠與Google Analytics相媲美的開源網站訪問統計系統,前身是phpMyVisites。Piwik可以給你詳細的統計信息,比如網頁瀏覽人數, 訪問最多的頁面, 搜索引擎關鍵詞等等,並且採用了大量的AJAX/Flash技術,使得在操作上更加便易。此外,它還採用了插件擴展及開放API架構,可以讓開發人員根據自已的實際需求創建更多的功能。

項目中使用的是內部封裝好的安裝過程。直接傻瓜式安裝後一直使用至今,偶爾服務器重啓可能會使服務不可用外,並無其他問題。

問題

系統中使用piwik一直都是正常情況,忽然前端說js訪問測試環境的piwik請求500,領導要求我去排查解決,沒搞過也得硬上,沒辦法,就只能先試試了。首先排查是否是程序自身問題,分別驗證測試環境和生產環境,生產環境一切正常。測試環境訪問如下:
在這裏插入圖片描述

排查

確實是服務問題,登錄piwik所在服務器,因爲piwik是依賴mysql和php,需要啓動mysql與apache服務,首先檢查下服務情況:
在這裏插入圖片描述
emmmm看樣子是被人停了服務,不過也說明問題應該很好解決,長舒一口氣,準備手動啓動服務,可是真正執行卻發現。。。
在這裏插入圖片描述
後來想起了項目中piwik是採用腳本去部署的,那麼服務應該也是可以使用腳本進行啓停,找到服務安裝路徑,果然有幾個腳本文件在這裏插入圖片描述
查看這個腳本文件,裏面介紹了服務啓停相關命令使用,在使用了啓動命令後,檢查服務啓動情況:
在這裏插入圖片描述
在這裏插入圖片描述

完美,服務啓動成功,可以通知前端去驗證問題了,可是…

在這裏插入圖片描述
這麼看的話,apache服務是沒有問題了,所以排查是mysql還有其他問題,翻看以前聊天記錄,在後臺服務中,有調用piwik內部mysql的服務,去查看系統日誌,果然存在貓膩。。。
在這裏插入圖片描述
在這裏插入圖片描述
看來piwik的mysql還是有問題,導致piwik內部和外部系統,都無法連接,導致出錯,之前都是單個重啓,更改一下啓停腳本,讓mysql和Apache服務順序啓停,mysql在前,Apache在後啓動:
在這裏插入圖片描述
檢查服務情況:
在這裏插入圖片描述
服務啓動成功,登錄控制檯,可以看到piwik頁面內部已經有數據了。
在這裏插入圖片描述
再去檢查測試環境的頁面請求,發現也由原來的500,變成200了。大功告成~

在這裏插入圖片描述

問題記錄下,雖然內部原理還不太懂,先存下來後續有問題沿用此思路解決~