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为处理配置,用于解析数据。可选项,您可以配置一种或多种处理方式。
如果当前的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_ | 事件的时间戳。 |