1 - 采集任务管理
采集任务管理,用于采集Kubernetes集群中容器的日志,包括容器的标准输出和容器中的日志文件。
创建日志采集任务
如图所示,点击【创建日志任务】,创建指定服务的日志采集任务。
基础配置:
基础配置部分如图所示:
日志任务名称:可任意填写服务的日志采集任务名,比如nginx等;
日志源类型:
- 容器标准输出:容器中的标准输出流;
- 容器日志:容器内产生的日志文件;
标签选择器:标签选择器类似Kubernetes中的LabelSelector,用于指定日志采集任务匹配的Pods,需要和需要被采集日志的Pods中Label保持一致;
日志采集路径:如果选择采集容器日志文件,需要输入日志路径,路径为glob表达式的形式,例如:
/var/log/*.log
。另外需注意的是,如果填写/var/log
,不会采集目录下的所有文件,会被认为是采集/var
目录下的log
文件。如果填写/var/log/*
,则会采集/var/log
下本级的目录,如果需要遍历,可以填写/var/log/**
;
高级配置:
容器:如果Pod中有多个容器,则建议指定具体的容器名称,否则会给采集所有容器下的日志;
元信息/注入Pod标记:在日志配置中注入Pod的label(标签)、env(环境变量)、annotation(注解),可用作日志查询页面的筛选条件;
元信息/自定义标记:自定义Key-Value值,可用作日志查询页面的筛选条件;
日志多行配置:日志多行配置用于指定处理跨多行消息的处理方式
- pattern:指定用于匹配多行的正则表达式;
- negate:定义模式是否被否定;
- match:指定如何把多行合并成一条;
单条日志大小上限:避免单行日志太大会导致日志采集Agent OOM异常等;
排除日志:该路径下的文件将被忽略,日志内容不被收集;支持正则匹配,建议排除压缩文件,例如:.gz$;
忽略日志文件:将忽略日志任务创建时间起对应时间段内的日志文件;
日志保留:可指定日志保留文件数或日志保留天数,日志Agent会帮助定时清理;
更新日志采集任务
在日志任务管理的列表中,点击操作
列的设置
即可,更新字段可参考上面创建部分。
删除日志采集任务
在日志任务管理的列表中,点击操作
列的删除
即可,删除后不再采集匹配的Pod的日志。
2 - 日志查询
搜索模式
查询条件
如下图所示,支持按以下条件筛选日志任务,查询日志数据:
- 日志任务:选择在日志任务管理中创建的日志采集任务;
- 查询语句:输入查询语句,示例:status:200 AND extension:PHP;
- 筛选条件:选择Key-Value值,可组合条件,快速筛选所需日志数据;
- 时间范围:
- 默认查询时间范围为近1小时;
- 提供快捷选项,可快速选择日志查询时间范围;
- 自定义时间:自定义选择开始日期和结束日期;点击【切换】,可自定义填写具体的开始时间和结束时间,时间粒度最小为秒级。
日志柱形图
返回日志数据结果后,日志查询页面将展示日志柱形图。日志柱形图是时间横轴、日志采集数纵轴组成的蓝色柱形图表。根据蓝色柱形的波动可以直观看出该时间段内日志产生数量的变化趋势。如果当前日志为服务器的访问日志,就可以快速地发现这段时间内整个服务的负载情况以及用户访问情况。
日志柱状图还提供了丰富的交互,用户可快速定位日志。点击柱形即可定位到更细粒度的时间区间;或者拖动选择所需查找的时间区间,前端立即返回该时间段内的日志数据。
鼠标移动至柱形,即可展示该柱形对应日志的入库时间以及日志数目。
日志柱形图上方展示完整时间区间内的日志采集条数,并支持自定义柱形图展示粒度,最小粒度为秒级。
日志内容展示
设置完成日志查询条件后,前端界面即可展示日志内容。左侧为日志采集时间,可正逆序排列。右侧为日志内容,点击左上方组件,可切换日志内容展示形式,提供的形式有原始日志以及Json形式。
自定义日志内容展示列
用户可自定义感兴趣字段,展示或者隐藏不必要的列信息。
如图所示,用户可按需选择字段,或输入字段名称进行模糊搜索,选择完成后,前端界面将展示用户所选字段的内容列。比如,选择namespace
和pod_name
这个两个字段后,可在日志查询页面看到日志的namespace
和产生的pod_name
信息,便于排查问题。
实时流模式
实时流模式可用于上线场景,用户可实时关注与跟踪日志数据。通过设置刷新频率,前端界面实时滚动输出日志数据。