最開始使用的是thinkphp框架,tp有日誌的功能,但是每次要查詢日誌的時候,都需要ftp到服務器下載下日誌用編輯查看。日誌數據多的時候,很不方便查找到自己需要的信息。
所以有一定條件下,可以考慮加入日誌系統。這樣可以使用平臺的日誌分析功能,方便的查詢到自己需要的日誌信息。我這裏使用的是阿里雲的日誌服務。
有關thinkphp日誌對接到日誌服務可以看這個資料
這裏記錄一下,我的部署過程。文檔有點繁雜。
1 開通 日誌服務
2 創建一個日誌項目
3 開啓全球加速功能(一般使用公網就不用開了)
4 進入日誌項目,開啓全球加速(上面那個是阿里雲功能項的開通,這個是這個 日誌項目對應的加速 )
5 服務器安裝logtail
wget http://logtail-release-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/linux64/logtail.sh -O logtail.sh; chmod 755 logtail.sh; ./logtail.sh install cn-shenzhen-acceleration
6 創建機器組,這個,因爲我是使用的其它雲的服務器,所以必須要配置爲非本賬號ECS、自建IDC配置AliUid。
#創建自己ID的文件,如果對應目錄不存在,自己創建目錄
touch /etc/ilogtail/users/1xxx
Linux Logtail
通過文件/etc/ilogtail/user_defined_id
來設置用戶自定義標識。
例如,設置用戶自定義標識爲shoee
,執行如下命令:
#內容與自己定義的機器組的標識一樣,自己定的,如shoee,就在下面的文件裏寫入shoee,並保存
vim /etc/ilogtail/user_defined_id
查看機器組狀態。
在機器組列表頁面,雙擊機器組名稱,在右側機器組配置頁面查看機器組狀態,可以看到使用相同用戶自定義標識的服務器列表及其心跳狀態。
7 logtail的配置,這個比較關鍵。
日誌路徑,這個界面比較友好了。前面部分你直接寫父目錄就可以,後面寫帶通配符的文件類型就好(如*.log)
單行模式,thinkphp是多行的,這裏要取消。這個選項默認是勾選的。
日誌樣例,這個需要放3到4條實際日誌信息,這個是爲了接下來的正式匹配測試用的,很重要。不要放太多數據,會保存不了的。不要多於5條吧。
提取正則修改一下更符合我的情況
\[\s(\S+?)\s\]\s(\S+)\s+(\S+)\s+(\S+)\s+(.*)
這裏要注意,樣例裏日誌,你需要自己在WARN前面加換行符,因爲UI的問題,如果你不加,和實際的日誌是不一樣的,加了就可以正常匹配了。
接下來按照thinkphp 日誌文檔說明添加對應的正則就好了。具體看上圖。 日誌抽取內容裏的Key,是自己定義的,不過time這個key必須要有,而且是固定的。其它的可以根據value來自己定義。
時間格式也可以手動正則匹配,自動生成的好像是一樣的,所以也可以不用自己填寫。