Docker事件信息記錄了容器、鏡像、插件、網絡、存儲等所有交互事件。本文介紹如何通過日志服務控制臺創建Logtail采集配置采集Docker事件。
前提條件
已在服務器上安裝Linux Logtail 0.16.18及以上版本。具體操作,請參見安裝Logtail(Linux系統)。
限制說明
Logtail可運行在容器模式或宿主機上,需具備訪問Docker的權限(可以訪問到
/var/run/docker.sock
)。Logtail采集Kubernetes日志請參見采集Kubernetes日志,采集標準容器日志請參見采集標準Docker容器日志。
Logtail在重啟或停止期間,無法采集容器事件。
應用場景
監控所有容器的啟停事件,當核心容器停止后立即告警。
采集所有容器事件,用于審計、安全分析、問題排查。
監控所有鏡像的拉取事件,如果拉取非合法路徑的鏡像時立即告警。
操作步驟
登錄日志服務控制臺。
在接入數據區域,選擇自定義數據插件。
- 選擇目標Project和Logstore,單擊下一步。
在機器組配置頁面,配置機器組。
根據實際需求,選擇使用場景和安裝環境。
重要無論是否已有機器組,都必須根據實際需求正確選擇使用場景和安裝環境,這將影響后續的頁面配置。
確認目標機器組已在應用機器組區域,單擊下一步。
已有機器組
從源機器組列表選擇目標機器組。
沒有可用機器組
單擊創建機器組,在創建機器組面板設置相關參數。機器組標識分為IP地址和用戶自定義標識,更多信息請參見創建用戶自定義標識機器組(推薦)或創建IP地址機器組。
重要創建機器組后立刻應用,可能因為連接未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在數據源設置頁簽中,設置配置名稱和插件配置,然后單擊下一步。
inputs為數據源配置,必選項。
重要一個inputs中只允許配置一個類型的數據源。
processors為處理配置,用于解析數據??蛇x項,您可以配置一種或多種處理方式。
如果當前的inputs配置無法滿足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件處理數據。例如提取字段、提取日志時間、脫敏數據、過濾日志等。更多信息,請參見使用Logtail插件處理數據。
{ "inputs": [ { "detail": {}, "type": "service_docker_event" } ] }
配置項
類型
是否必須
說明
type
string
是
數據源類型,固定為service_docker_event。
EventQueueSize
int
否
事件緩沖隊列大小。不配置時,默認為10,無特殊需求請保持默認設置。
創建索引和預覽數據,然后單擊下一步。日志服務默認開啟全文索引。您也可以根據采集到的日志,手動創建字段索引,或者單擊自動生成索引,日志服務將自動生成字段索引。更多信息,請參見創建索引。
重要如果需要查詢日志中的所有字段,建議使用全文索引。如果只需查詢部分字段、建議使用字段索引,減少索引流量。如果需要對字段進行分析(SELECT語句),必須創建字段索引。
- 單擊查詢日志,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。更多信息,請參見查詢和分析日志。
問題排查
使用Logtail采集日志后,如果預覽頁面或查詢頁面無數據,您可以參見Logtail采集日志失敗的排查思路進行排查。
日志樣例
Docker事件樣例如下所示。
樣例1:鏡像拉取事件
__source__: 10.10.10.10 __tag__:__hostname__: logtail-ds-77brr __topic__: _action_: pull _id_: registry.cn-hangzhou.aliyuncs.com/ringtail/eventer:v1.6.1.3 _time_nano_: 1547910184047414271 _type_: image name: registry.cn-hangzhou.aliyuncs.com/ringtail/eventer
樣例2:Kubernetes中容器的銷毀事件
__source__: 10.10.10.10 __tag__:__hostname__: logtail-ds-xnvz2 __topic__: _action_: destroy _id_: af61340b0ac19e6f5f32be672d81a33fc4d3d247bf7dbd4d3b2c030b8bec4a03 _time_nano_: 1547968139380572119 _type_: container annotation.kubernetes.io/config.seen: 2019-01-20T15:03:03.114145184+08:00 annotation.kubernetes.io/config.source: api annotation.scheduler.alpha.kubernetes.io/critical-pod: controller-revision-hash: 2630731929 image: registry-vpc.cn-hangzhou.aliyuncs.com/acs/pause-amd64:3.0 io.kubernetes.container.name: POD io.kubernetes.docker.type: podsandbox io.kubernetes.pod.name: logtail-ds-44jbg io.kubernetes.pod.namespace: kube-system io.kubernetes.pod.uid: 6ddcf598-1c81-11e9-9ddf-00163e0c7cbe k8s-app: logtail-ds kubernetes.io/cluster-service: true name: k8s_POD_logtail-ds-44jbg_kube-system_6ddcf598-1c81-11e9-9ddf-00163e0c7cbe_0 pod-template-generation: 9 version: v1.0
Docker事件的日志字段如下。更多信息,請參見Docker官方文檔。
字段 | 說明 |
_type_ | 資源類型,例如container、image。 |
_action_ | 操作類型,例如destroy、status。 |
_id_ | 事件唯一標識。 |
_time_nano_ | 事件的時間戳。 |