pod的日志收集(一)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: pod的日志收集

pod的日志收集

大部分内容来自:

https://blog.csdn.net/weixin_43266367/article/details/127517467

1. 介绍

日志收集分类:1来自POD的日志 2来自APP的日志输出。本次部署第1种,收集POD的日志

2. 构建logstash的镜像

内容如下:

FROM logstash:7.17.6

 

LABEL author="admin@163.com"

WORKDIR /usr/share/logstash

ADD logstash.yml /usr/share/logstash/config/logstash.yml

ADD logstash.conf /usr/share/logstash/pipeline/logstash.conf

USER root

RUN usermod -a -G root logstash#将logstash用户加入root组,避免因权限不足导致logstash无法读取日志文件

 

logstash.yml的内容:

http.host: "0.0.0.0"

 

Logstash.conf的内容:

 

input {

 file {

   #path => "/var/lib/docker/containers/*/*-json.log" #docker

   path => "/var/log/pods/*/*/*.log"#使用containerd时,Pod的log的存放路径

   start_position => "beginning"

   type => "applog"#日志类型,自定义

 }

 

 file {

   path => "/var/log/*.log"#操作系统日志路径

   start_position => "beginning"

   type => "syslog"

 }

}

 

output {

 if [type] == "applog" {#指定将applog类型的日志发送到kafka的哪个topic

   kafka {

     bootstrap_servers => "${KAFKA_SERVER}"

     topic_id => "${TOPIC_ID}"

     batch_size => 16384  #logstash每次向ES传输的数据量大小,单位为字节

     codec => "${CODEC}"#日志格式

  } }

 

 if [type] == "syslog" {##指定将syslog类型的日志发送到kafka的哪个topic

   kafka {

     bootstrap_servers => "${KAFKA_SERVER}"

     topic_id => "${TOPIC_ID}"

     batch_size => 16384

     codec => "${CODEC}" #系统日志不是json格式

 }}

}

 

 

 

3. 编写yaml文件

minikube的文件内容:

apiVersion: apps/v1

kind: DaemonSet

metadata:

 name: logstash-daemonset

 namespace: log

spec:

 selector:

   matchLabels:

     app: logstash

 template:

   metadata:

     labels:

       app: logstash

   spec:

     containers:

     - name: logstash

       image: harbor-server.linux.io/n70/logstash-daemonset:7.17.6

       imagePullPolicy: Always

       env:

       - name: KAFKA_SERVER

         value: "192.168.122.33:9092,192.168.122.34:9092,192.168.122.35:9092"

       - name: TOPIC_ID

         value: "jsonfile-log-topic"

       - name: CODEC

         value: "json"

       volumeMounts:

       - name: varlog

         mountPath: /var/log

         readOnly: False

       - name: varlogpods

         mountPath: /var/log/pods

         readOnly: False

     volumes:

     - name: varlog

       hostPath:

         path: /var/log

     - name: varlogpods

       hostPath:

         path: /var/log/pods

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
Kubernetes Perl 容器
K8s查看集群 状态事件描述以及Pod日志信息
K8s查看集群 状态事件描述以及Pod日志信息
241 3
|
6月前
|
运维 Kubernetes 监控
CKA备考攻略:掌握Pod日志收集,事半功倍的秘诀!
CKA备考攻略:掌握Pod日志收集,事半功倍的秘诀!
177 0
CKA备考攻略:掌握Pod日志收集,事半功倍的秘诀!
|
6月前
|
Kubernetes 监控 容器
k8s学习-CKA真题-监控Pod日志
k8s学习-CKA真题-监控Pod日志
109 0
|
3月前
|
存储 Kubernetes 容器
在k8S中,如何查看一个Pod最近20分钟日志?
在k8S中,如何查看一个Pod最近20分钟日志?
|
3月前
|
存储 Kubernetes 网络安全
[k8s]使用nfs挂载pod的应用日志文件
[k8s]使用nfs挂载pod的应用日志文件
146 1
|
3月前
|
Kubernetes 容器 Perl
在K8S中,如何查看Pod中某个容器日志?
在K8S中,如何查看Pod中某个容器日志?
|
3月前
|
Kubernetes 容器 Perl
在k8S中,如何查看Pod中上一个挂掉的容器日志?
在k8S中,如何查看Pod中上一个挂掉的容器日志?
|
6月前
|
Kubernetes Perl 容器
【CKA模拟题】过滤Pod错误日志
【CKA模拟题】过滤Pod错误日志
48 1
|
6月前
|
Kubernetes 监控 Shell
【CKA模拟题】如何优雅地融合Pod日志与ConfigMap
【CKA模拟题】如何优雅地融合Pod日志与ConfigMap
85 0
|
6月前
|
Kubernetes Perl 容器
【CKA模拟题】掌握Pod日志输出的秘密
【CKA模拟题】掌握Pod日志输出的秘密
40 0