背景
1,k8s屬於自建。
2,需要收集應用服務容器里面指定目錄的日志。
3,計划收集所有私有雲php和nginx日志。
4,日志格式化處理。
思考
1,一個私有雲一個Project,還是統一放入一個Project。
2,logstore 是一個日志類型一個還是一個私有雲一個。
3,logtail配置多個在一個logstore,還是在一個logstore。
注:因為alibaba-log-controller 安裝使用的是helm,所以集群需要有helm命令。helm就類似於yum apt。
傳送門:helm安裝
一、介紹
- 阿里雲的日志服務SLS:https://sls.console.aliyun.com/lognext/profile
- 阿里雲官方文檔:https://help.aliyun.com/document_detail/48869.html
- 日志服務SLS是雲原生觀測與分析平台,為Log、Metric、Trace等數據提供大規模、低成本、實時的平台化服務。
- 日志服務一站式提供數據采集、加工、查詢與分析、可視化、告警、消費與投遞等功能,全面提升您在研發、運維、運營、安全等場景的數字化能力。
- 日志服務提供50多種數據接入方案。
- 一句話就是很牛逼。
我今天要說的是,我公司的一個實際的需求:
- 利用阿里雲的ilogtail采集工具。
- 收集我們本地idc機房。
- 自建k8s集群。
- 多個日志文件。
再說一點為啥要用阿里雲的ilogtail:
- ilogtail可以收集容器里面指定目錄下的文件。
- 我們的日志文件沒有掛載到宿主機。filebeat就做不到收集容器里面的日志。
- 我們需要收集的文件有nginx的access error。php的info,error.
- 日志分類。
二、安裝阿里alibaba-log-controller
2.1 新建Project
- 登錄阿里雲日志服務控制台https://sls.console.aliyun.com/lognext/profile
- 創建一個以
k8s-log-custom-
開頭的Project。k8s-log-custom-all-pcloud - k8s-log-custom- 這個是固定開頭,但是我看阿里雲的安裝腳本,這個可以改一下試試。
2.2 安裝logtail組件
安裝腳本:點擊下載腳本
# 這個腳本是被我稍微改了一下,可以定義機器組,傳入的最后一個參數就是定義機器組。
bash ./alicloud-log-k8s-custom-install.sh all-pcloud cn-beijing 1234567890 ak sk pcloud-hkgc
參數說明:
參數 | 說明 |
all-pcloud | 創建的Project的名稱中的自定義部分。k8s-log-custom-all-pcloud,則此處填寫all-pcloud |
cn-beijing |
Project所在的地域ID,傳送門:點擊 |
1234567890 | 阿里雲賬號ID,傳送門:點擊 |
ak | ak |
sk | sk |
pcloud-hkgc |
Project的機器組名稱,不同的私有雲用不同的機器組區分,這個是我加的,方便區別機器組 |
驗證:
helm status alibaba-log-controller
查看機器組:
- 然后去阿里雲SLS服務上面的Project里面看機器組。
- 這個機器組就是pcloud-hkgc。
- 可以看到這個機器組下面的機器都是在線的。
2.3 收集日志
ilogtail采集器安裝完畢了之后就要配置規則去收集日志了。
創建logstore:
- logstore其實就是一個各種日志的集合。
- 其實就是給你想要的日志分個組。
- 很靈活,我就是按照一個私有雲集群來分的。
- 一個私有雲一個logstore
創建logtail配置:
- logtail其實就是一組收集日志的規則。
- 收集哪個目錄 文件的日志,格式化日志。
- 並且可以設置白名單,只收集哪個容器的,或者只收集那個namespaces的。官方文檔:https://help.aliyun.com/document_detail/66655.html
說一下我工作中實際的用法:
- nginx access error文件各創建一個logtail配置
- php info error文件各創建一個logtail配置
- 因為我只收集zhumeng命名空間下的,所以我加上了io.kubernetes.pod.namespace:zhumeng 白名單。
- 並且日志路徑匹配那每次都會收集/var/www/html/storage/logs/schedule*.log,所以這里的需要過濾掉。采集黑名單文件路徑。
- config-operation-log logstore不能刪除。這個是logtail容器插件自己的心跳。
下面再貼一個我收集php日志的截圖
三、展示
- 我用機器組區分不同的k8s集群
- 用logstore把集群的不同日志放到一個日志庫里
- 用logtail掛載到不同的機器組