k8s部署daemonset logstash
  EeGZtZT5Jsfk 2023年11月02日 30 0

实现:收集容器控制台日志

k8s部署daemonset logstash_logstash

部署daemonset logstash,如上图红框位置

找一台机器打镜像

FROM logstash:7.12.1


USER root
WORKDIR /usr/share/logstash
ADD logstash.yml /usr/share/logstash/config/logstash.yml
ADD logstash.conf /usr/share/logstash/pipeline/logstash.conf

docker build . -t 10.0.7.12/k8s/logstash:7.9.0
docker push 10.0.7.12/k8s/logstash:7.9.0

logstash.conf文件

cat logstash.conf 
input {
file {
path => "/var/log/pods/*/*/*.log"
start_position => "beginning"
type => "jsonfile-daemonset-applog"
}

file {
path => "/var/log/*.log"
start_position => "beginning"
type => "jsonfile-daemonset-syslog"
}
}

output {
if [type] == "jsonfile-daemonset-applog" {
kafka {
bootstrap_servers => "${KAFKA_SERVER}"
topic_id => "${TOPIC_ID}"
batch_size => 16384 #logstash每次向ES传输的数据量大小,单位为字节
codec => "${CODEC}" # json编码
} }

if [type] == "jsonfile-daemonset-syslog" {
kafka {
bootstrap_servers => "${KAFKA_SERVER}"
topic_id => "${TOPIC_ID}"
batch_size => 16384
codec => "${CODEC}" #系统日志不是json格式
}}
}

在k8s集群部署daemonset

cat daemonset-logstash.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: logstash-elasticsearch
namespace: kube-system
labels:
k8s-app: logstash-logging
spec:
selector:
matchLabels:
name: logstash-elasticsearch
template:
metadata:
labels:
name: logstash-elasticsearch
spec:
tolerations:
#- key: node-role.kubernetes.io/unschedulable
- key: node.kubernetes.io/unschedulable
operator: Exists
effect: NoSchedule
imagePullSecrets:
- name: myregistrykey
containers:
- name: logstash-elasticsearch
image: 10.0.7.12/k8s/logstash:7.9.0
env:
- name: "KAFKA_SERVER"
value: "10.0.7.53:9092,10.0.7.54:9092,10.0.7.55:9092"
- name: "TOPIC_ID"
value: "jsonfile-log-topic"
- name: "CODEC"
value: "json"
volumeMounts:
- name: varlog #定义宿主机系统日志挂载路径
mountPath: /var/log #宿主机系统日志挂载点
- name: varlibdockercontainers #定义容器日志挂载路径,和logstash配置文件中的收集路径保持一直
mountPath: /var/log/pods #containerd挂载路径,此路径与logstash的日志收集路径必须一致
readOnly: false
terminationGracePeriodSeconds: 30
volumes:
- name: varlog
hostPath:
path: /var/log #宿主机系统日志
- name: varlibdockercontainers
hostPath:
path: /var/log/pods #containerd的宿主机日志路径

kubectl apply -f damonset-logstash.yaml

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xqA0sOKuvLcb   2023年11月22日   37   0   0 redisDockerredisdocker
  bifOjSxj34Bv   2023年12月07日   38   0   0 nginxDockerdockernginx
  IEgV2R47Wr6T   2023年11月12日   70   0   0 数据mysqldocker
EeGZtZT5Jsfk