Kubernetes接入
选择project,建立logstore
建立了ps-pro
配置logtail,接入pod数据
日志格式非常多,我们选择docker标准输出
配置如下
{
"inputs": [
{
"detail": {
"Stderr": true,
"IncludeLabel": {
"io.kubernetes.container.name": "you_pod_name"
},
"Stdout": true,
"ExcludeEnv": {
"POD_NAMESPACE": "your_pod_namespace"
},
"BeginLineRegex": "\\[\\w.*]\\s\\d.+\\/\\d+\\s\\-\\s\\d+\\:\\d+\\:\\d+\\s\\|\\s\\d+\\s\\|"
},
"type": "service_docker_stdout"
}
]
}
查找pod日志
集群日志中心
k8s 应用程序日志文件输出导致pod内存过高
写入日志文件时,通常会将数据先存储到内存缓存区中,然后定期或根据某些条件将缓存中的数据批量写入到磁盘中,这个过程被称为“延迟写入”(Delayed Writing)或“异步写入”(Asynchronous Writing)。
在操作系统中,缓存分为多级缓存,从最接近CPU的一级缓存到最接近磁盘的缓存。其中,缓存管理中的高速缓存(Buffer Cache)通常用于管理磁盘数据的读写,缓存一部分磁盘数据的内容,以加快读写操作的速度。
相对于标准输出(stdout),写入日志文件使用的是文件IO,数据在写入磁盘时需要通过缓存机制来提高写入速度。而标准输出则是直接将数据输出到终端,不需要使用缓存,因此不会有高速缓存的影响。
此外,缓存的大小和写入的频率也会影响缓存的大小。如果写入日志文件的频率较高,缓存可能会增大以提高性能。相反,如果标准输出频率较高,则不需要缓存太多数据,以避免影响程序的性能。
总的来说,高速缓存的大小取决于缓存管理的策略和数据写入的频率,这也是为什么写入日志文件时buffer cache比较高的原因。
程序内使用sdk
也可在程序内定义 log aliyun-log-go-sdk
----------------------------------------------2022.04.25-------------------------------------------------
阿里云sls在宿主机上采集日志
配置对应的机器组,机器选择阿里云的sls
配置logtail,隔一段时间,就有日志了