在服务器上部署Docker后可以采集日志,Docker的日志分为两种类型:标准输出和文件日志。文件日志是指容器内生成的日志被写入服务器的指定文件目录中,而标准输出则指容器自身的实时输出流。本文介绍使用Logtail采集容器的标准输出到Logstore的操作步骤。
概览
在宿主机中安装Docker后,针对您在该环境中部署的业务容器所产生的标准输出(stdout)及标准错误(stderr)日志,您可以使用Logtail进行采集。采集的日志数据将被传输至Logstore中,便于查询和分析。
前提条件
已创建Project和Logstore。更多信息,请参见管理Project和管理Logstore。
宿主机已安装Docker且可以持续产生标准输出日志。
Logtail只采集增量日志。如果下发Logtail配置后,日志文件无更新,则Logtail不会采集该文件中的日志。更多信息,请参见读取日志。
步骤一:安装Logtail容器并创建机器组
拉取Logtail镜像
登录宿主机,根据日志服务Project所在地域,获取对应的
${region_id}
。替换${region_id}
后,使用以下命令拉取Logtail镜像。各地域对应的
${region_id}
请参见开服地域,例如华东 1(杭州)对应的${region_id}
为cn-hangzhou
。
#拉取Logtail镜像: docker pull registry.${region_id}.aliyuncs.com/log-service/logtail #如果您的服务器处于阿里云VPC网络中,请使用如下命令行拉取Logtail镜像: docker pull registry-vpc.${region_id}.aliyuncs.com/log-service/logtail
启动Logtail容器
参数说明
参数
参数说明
参数
参数说明
${region_id}
根据日志服务Project所在地域,获取对应的
${region_id}
,各地域对应的${region_id}
请参见开服地域。网络类型选择请参见选择网络。示例:若Project位于华东1(杭州),则以阿里云内网访问时
${region_id}
为cn-hangzhou
,公网访问时使用cn-hangzhou-internet
。
${aliyun_account_id}
日志服务所在的阿里云账号(主账号)ID。获取方法,请参见获取日志服务所在的阿里云账号(主账号)ID。
${user_defined_id}
设置机器组的用户自定义标识,例如
user-defined-docker-1
。该标识在Project所在地域内必须唯一。根据参数说明,替换命令模板中的3个参数:
${region_id}
、${aliyun_account_id}
和${user_defined_id}
,然后执行以下命令启动Logtail容器。# 启动Logtail容器,替换${region_id},${aliyun_account_id},${user_defined_id} docker run -d \ -v /:/logtail_host:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${region_id}/ilogtail_config.json \ --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \ --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \ registry.${region_id}.aliyuncs.com/log-service/logtail
如果您要自定义配置Logtail容器的启动参数,只需保证以下前提条件。
启动时,必须配置3个环境变量
ALIYUN_LOGTAIL_CONFIG
,ALIYUN_LOGTAIL_USER_ID
和ALIYUN_LOGTAIL_USER_DEFINED_ID
。将宿主机上的
/var/run
目录挂载到Logtail容器的/var/run
目录。将宿主机根目录挂载到Logtail容器的
/logtail_host
目录。如果Logtail日志(
/usr/local/ilogtail/ilogtail.LOG
)中出现The parameter is invalid : uuid=none
的错误日志,请在宿主机上创建一个product_uuid
文件,在其中输入任意合法UUID(例如169E98C9-ABC0-4A92-B1D2-AA6239C0D261
),并把该文件挂载到Logtail容器的/sys/class/dmi/id/product_uuid
目录。
输入
docker ps
查看容器是否启动成功。
创建用户自定义标识机器组
检查机器组状态
在机器组列表中,单击目标机器组。在机器组配置页面,可查看机器组配置信息以及服务器状态。
如果心跳状态显示OK,说明配置成功,如果显示FAIL,请等待1分钟后单击刷新重试,若心跳状态仍为FAIL,请检查:
Logtail容器与Project是否同地域。
宿主机安全组是否放行Logtail出方向流量(默认端口80)。
处理操作请参见如何排查容器日志采集异常。
步骤二:创建Logtail采集配置
在
页签中,单击目标Logstore。展开Logstore菜单栏,单击Logtail配置,然后单击添加Logtail配置。
在快速数据接入页面,单击Docker标准输出-旧版。
由于步骤一创建了机器组,此处请单击使用现有机器组。
在机器组配置步骤中,选择步骤一中创建的机器组,单击>添加机器组到应用机器组中,并单击下一步。
在Logtail配置步骤中,输入配置名称,单击下一步。
在查询分析配置步骤中,单击刷新,可预览采集到的日志。若无日志,请确认容器是否持续产生标准输出日志,一般来说,标准输出默认在/var/lib/docker/containers/容器ID/容器ID-json.log中。若确认后仍无预览日志,请查看如何排查容器日志采集异常。
步骤三: 查看上传结果
Logtail只采集增量日志,如果下发Logtail配置后标准输出无新日志产生,则Logtail不会采集以前的日志。更多信息,请参见读取日志。
Docker标准输出的每条日志默认包含如下字段:
字段名 | 说明 |
字段名 | 说明 |
__source__ | Logtail容器的IP地址。 |
__tag__:__hostname__ | 宿主机的名称。 |
__tag__:__receive_time__ | 日志到达服务端的时间。 |
_time_ | 数据上传时间,例如 |
_source_ | 输入源类型,stdout或stderr。 |
_image_name_ | 镜像名。 |
_container_name_ | 容器名。 |
_container_ip_ | 业务容器IP地址。 |
相关文档
查看Logtail运行状态等信息,请参见Logtail容器信息。
Docker基本使用,请参见安装Docker。
采集Docker文本日志,请参见采集Docker容器文本日志。
采集宿主机文本日志,请参见采集主机文本日志。默认情况下,宿主机根目录会被挂载到Logtail容器的
/logtail_host
目录。使用Logtail采集Docker容器日志遇到异常情况时,请参见如何排查容器日志采集异常进行排查。
- 本页导读 (1)
- 概览
- 前提条件
- 步骤一:安装Logtail容器并创建机器组
- 步骤二:创建Logtail采集配置
- 步骤三: 查看上传结果
- 相关文档