k8s-日志落地

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s-日志落地相关的知识,希望对你有一定的参考价值。

参考技术A #容器方便的同时带来的挑战

1. 如果日志还放在容器内部,会随着容器删除而删除

2. 容器多按照传统的仓库日志方式 显然不现实

#本身特性

1. 容器日志输出到控制台 本身docker提供了一种日志采集能力 如果落地到了本地文件 目前还没有一种比较好的动态采集方式

2. 新扩容的pod属性信息(日志文件路径 日志源 可能发生的变化)

#需要收集那些日志

1. k8s 系统组件日志 部署在k8s应用的日志

#当我们执行docker logs查看日志的时候是调用了docker守护进程去查看他接管的这个日志 在本地的文件系统中去读这个日志

#cd /var/lib/docker/找到容器ID进入里面 有一个已json文件已容器id命名的里面就是日志

#/var/lib/kubelet/pods/08ec113c8abdf4544

方案一:Node上部署一个日志收集程序

• DaemonSet方式部署日志收集程序

• 对本节点/var/log/kubelet/pods和

/var/lib/docker/containers/两个目录下的日志进

行采集

• Pod中容器日志目录挂载到宿主机统一目录上

方案二:Pod中附加专用日志收集的容器

• 每个运行应用程序的Pod中增加一个日志

收集容器,使用emtyDir共享日志目录让

日志收集程序读取到。

方案一:Node上部署一个日志收集程序 每个Node仅需部署一个日志收集程序,

资源消耗少,对应用无侵入 应用程序日志如果写到标准输出和标准错误输出,

那就不支持多行日志。

方案二:Pod中附加专用日志收集的容器 低耦合

每个Pod启动一个日志收集代理,增加资源消耗,

并增加运维维护成本

#匹配目录收集规则

方案(1):DaemonSet方式部署日志收集程序

/var/lib/docker/containers/*/*-json.log

/var/lib/kubelet/pods/*/volumes/kubermetes.io~emtpdir/

/var/lib/kubelet/pods/*/

方式2: 挂载到统一的目录 解决日志覆盖的方法  推荐方法让开发根据容器名称命名日志文件

保持唯一性就可以了 这种方法维护起来比较好 也比较简单 但是缺点可能消耗资源多一点

data:

  kubernetes.yml: |-

    - type: docker

      containers.ids:

      - "*"

https://www.cnblogs.com/Dev0ps/p/10778962.html

#传统日志配置采集工具重要设置什么

1. 日志路径

2. 写正则 格式化日志

3. 日志源(命名空间 容器 service 项目)

阿里云日志采集工具:log-pilot

R中的多变量K-S检验

【中文标题】R中的多变量K-S检验【英文标题】:Multivariate K-S test in R 【发布时间】:2015-10-12 08:13:10 【问题描述】:

因此,我们可以运行 K-S 测试来评估 dtwo 数据集的分布是否存在差异,如 here 所述。

让我们获取以下数据

set.seed(123)
N <- 1000
var1 <- runif(N, min=0, max=0.5)
var2 <- runif(N, min=0.3, max=0.7)
var3 <- rbinom(n=N, size=1, prob = 0.45)

df <- data.frame(var1, var2, var3)

然后我们可以根据 var3 结果分开

df.1 <- subset(df, var3 == 1)
df.2 <- subset(df, var3 == 0)

现在我们可以运行 Kolmogorov-Smirnov 检验来检验每个单独变量的分布差异。

ks.test(jitter(df.1$var1), jitter(df.2$var1))
ks.test(jitter(df.1$var2), jitter(df.2$var2))

不出所料,我们没有发现差异,可以假设不同的数据集来自相同的分布。这可以通过以下方式可视化:

plot(ecdf(df.1$var1), col=2)
lines(ecdf(df.2$var1))

plot(ecdf(df.1$var2), col=3)
lines(ecdf(df.2$var2), col=4)

但是现在我们想考虑var3==0var3==1 之间的分布是否在我们同时考虑var1var2 时不同。 当我们有多个预测变量时,是否有一个 R 包可以运行这样的测试

here提出了类似的问题,但没有得到任何答复

似乎有一些文献: Example 1 Example 2

但似乎没有任何东西与 R 相关

【问题讨论】:

这个问题似乎是题外话,因为它是关于统计的,而不是真正的特定编程问题。也许最好在Cross Validated 上问这个问题 【参考方案1】:

Peacock, J. A. (1983) 中讨论了二维 KS 检验。天文学中的二维拟合优度检验。皇家天文学会月报,202(3),615–627。 https://doi.org/10.1093/mnras/202.3.615

有一个实现,https://cran.r-project.org/web/packages/Peacock.test/

【讨论】:

以上是关于k8s-日志落地的主要内容,如果未能解决你的问题,请参考以下文章

K8S日志收集方案实践

后起之秀Loki,帮你快速落地日志系统

9 个技巧,解决 K8s 中的日志输出问题

k8s容器环境收集应用日志到已有的ELK日志平台

k8s集群日志收集

k8s部署-49-k8s日志采集的解决方案思路梳理