hyperf/docs/zh-hk/tutorial/aliyun-logger.md
2022-12-27 13:37:04 +08:00

128 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阿里雲日誌服務
`Docker 集羣` 部署項目時,收集日誌會是一個比較麻煩的問題,但阿里雲提供了十分好用的 `日誌收集系統`,本篇文檔就是簡略介紹一下阿里雲日誌收集的使用方法。
* [Docker Swarm 集羣搭建](zh-hk/tutorial/docker-swarm.md)
## 開通日誌服務
首先第一步便是在阿里雲上開通 `日誌服務`
[日誌服務文檔](https://help.aliyun.com/product/28958.html)
以下的教程是一個順序的操作方式,一步一步講述如何使用日誌服務。
## 安裝 Logtail 容器
[標準 Docker 日誌採集流程文檔](https://help.aliyun.com/document_detail/66659.html)
| 參數 | 説明 |
| :-----------------------------------: | :-----------------------------------------: |
| ${your_region_name} | 區域 ID 比如華東 1 區域是 cn-hangzhou |
| ${your_aliyun_user_id} | 用户標識,請替換為您的阿里雲主賬號用户 ID。 |
| ${your_machine_group_user_defined_id} | 集羣的機器組自定義標識 以下使用 Hyperf |
```
docker run -d -v /:/logtail_host:ro -v /var/run/docker.sock:/var/run/docker.sock \
--env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${your_region_name}/ilogtail_config.json \
--env ALIYUN_LOGTAIL_USER_ID=${your_aliyun_user_id} \
--env ALIYUN_LOGTAIL_USER_DEFINED_ID=${your_machine_group_user_defined_id} \
registry.cn-hangzhou.aliyuncs.com/log-service/logtail
```
## 配置日誌收集
### 創建 Project
登錄阿里雲日誌服務,點擊 `創建 Project`,填寫以下信息
| 參數 | 填寫示例 |
| :----------: | :--------------: |
| Project 名稱 | hyperf |
| 註釋 | 用於日誌系統演示 |
| 所屬區域 | 華東 1杭州 |
| 開通服務 | 詳細日誌 |
| 日誌存儲位置 | 當前 Project |
### 創建 Logstore
除以下參數,按需填寫,其他都使用默認即可
| 參數 | 填寫示例 |
| :-----------: | :-------------: |
| Logstore 名稱 | hyperf-demo-api |
| 永久保存 | false |
| 數據保存時間 | 60 |
### 接入數據
1. 選擇 Docker 文件
2. 創建機器組
如果已經創建過機器組,可以跳過這一步
| 參數 | 填寫示例 |
| :------------: | :------------: |
| 機器組名稱 | Hyperf |
| 機器組標識 | 用户自定義標識 |
| 用户自定義標識 | Hyperf |
3. 配置機器組
應用剛剛創建的機器組
4. 配置 Logtail
`Label` 白名單,這裏可以按需填寫,以下按照項目名字來配置,而項目名會在 Docker 容器運行時設置。
| 參數 | 填寫示例 | 填寫示例 |
| :------------: | :-------------------------------------------------: | :-------------: |
| 配置名稱 | hyperf-demo-api | |
| 日誌路徑 | /opt/www/runtime/logs | *.log |
| Label 白名單 | app.name | hyperf-demo-api |
| 模式 | 完整正則模式 | |
| 單行模式 | false | |
| 日誌樣例 | `[2019-03-07 11:58:57] hyperf.WARNING: xxx` | |
| 首行正則表達式 | `\[\d+-\d+-\d+\s\d+:\d+:\d+\]\s.*` | |
| 提取字段 | true | |
| 正則表達式 | `\[(\d+-\d+-\d+\s\d+:\d+:\d+)\]\s(\w+)\.(\w+):(.*)` | |
| 日誌抽取內容 | time name level content | |
5. 查詢分析配置
字段索引屬性
| 字段名稱 | 類型 | 別名 | 中文分詞 | 開啓統計 |
| :------: | :---: | :-----: | :------: | :------: |
| name | text | name | false | true |
| level | text | level | false | true |
| time | text | time | false | false |
| content | text | content | true | false |
### 運行鏡像
運行鏡像時,只需要設置 Container `labels` 即可。
| name | value |
| :------: | :-------------: |
| app.name | hyperf-demo-api |
比如以下 Dockerfile
```Dockerfile
# Default Dockerfile
FROM hyperf/hyperf:7.4-alpine-v3.11-swoole
LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" app.name="hyperf-demo-api"
# 其它內容省略
```
## 注意事項
- Docker 存儲驅動限制:目前只支持 `overlay`、`overlay2`,其他存儲驅動需將日誌所在目錄 `mount` 到本地,然後改為收集宿主機 `~/logtail_host/your_path` 下的日誌即可。