什麼是機器分組
上一篇中我們對機器分組進行了簡單的介紹,從更通俗的角度講:機器分組就是一批産生相同日志的機器,一般情況下是一組應用,比如Nginx、MongoDB、HDFS等叢集。通常一個機器分組下會産生多種日志,會分别采集到多個logstore。而同時一個機器也可以扮演多種角色(比如同時擔目前端和後端的角色,既部署了Nginx也部署了應用worker),是以一個機器也會屬于多個機器分組中。是以我們有了以下的機器分組模型:
機器分組類型
目前我們支援了兩種不同的機器分組,分别是IP辨別和自定義辨別分組。
IP辨別機器組
IP辨別的機器組通俗易懂,非常易于上手,隻需簡單的将IP輸入到分組裡即可完成配置,同時也支援一個分組裡面輸入多個IP。
IP辨別的機器組雖然配置簡單,但存在非常大的缺陷:不支援動态縮擴容。在實際使用中機器組中機器經常會發生變化(例如機器替換、服務擴容/縮容),尤其在使用彈性伸縮服務、Kubernetes容器服務更為明顯,如果沒有及時同步更新或忘記配置,新增加的機器便無法采集到日志。
自定義辨別機器組
基于集團内數年來的Agent運維經驗總結,我們設計了一種靈活性更高、使用更加便捷、耦合度更低的配置&機器管理方式:自定義辨別機器分組。
自定義辨別機器分組操作非常簡單:機器上設定一個或多個辨別,并把機器組配置為自定義辨別類型(userdefined-id),輸入相應的辨別,機器組即會自動比對。
此種方式對于動态環境非常适用,尤其适用于彈性伸縮服務和swarm、pouch(阿裡docker)、Kubernetes等容器環境。隻需在虛拟機鏡像、DockerFile或Kubernetes的yaml模闆等提前配置好辨別,後續擴容的機器一上線就會立即加入到對應的機器分組中,并根據對應機器分組上的采集配置開始工作。
使用方式
詳細使用方式參見
。
步驟一 本地配置
- Linux Logtail
通過檔案
/etc/ilogtail/user_defined_id
來設定userdefined-id。
例如,設定自定義機器辨別如下:
cat /etc/ilogtail/user_defined_id
k8s-demo
- Windows Logtail
C:\LogtailData\user_defined_id
C:\LogtailData>more user_defined_id
k8s-demo
注意: 若目錄
/etc/ilogtail/
、
C:\LogtailData
或檔案
/etc/ilogtail/user_defined_id
C:\LogtailData\user_defined_id
不存在,請手動建立。
- Docker 應用
如果您在容器中安裝Logtail,可以在DockerFile中使用以下方式在釋出時配置辨別:
RUN mkdir /etc/ilogtail/
RUN echo ${您的機器組自定義辨別} > /etc/ilogtail/user_defined_id
- Kubernetes 叢集
K8S使用可以參見
Kubernetes日志采集步驟二 建立自定義辨別機器組
- 在機器組清單頁面單擊右上角的建立機器組。
- 填寫機器組配置。
-
- 機器組名稱。填寫自定義的機器組名稱。
- 機器組辨別。選擇使用者自定義辨別。
- 使用者自定義辨別。填寫步驟一中配置的userdefined-id,例如
k8s-demo
- 單擊确認結束配置。後續擴容無需修改機器組。
步驟三 檢視機器組心跳
在機器組清單頁面,單擊目标機器組右側的檢視狀态,可以檢視使用相同自定義辨別的機器清單及其心跳狀态。
若有收獲,就點個贊吧