首页 > 其他分享 >k8s部署daemonset filebeat

k8s部署daemonset filebeat

时间:2023-02-25 22:32:51浏览次数:42  
标签:10.0 filebeat name daemonset 日志 k8s log

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

k8s部署daemonset filebeat_默认值

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

找一台机器打镜像

FROM docker.elastic.co/beats/filebeat:7.9.0
COPY filebeat.yml /usr/share/filebeat/filebeat.yml
USER root
RUN chown root:filebeat /usr/share/filebeat/filebeat.yml
USER filebeat

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

filebeat配置文件

cat filebeat.yml
filebeat.inputs:
- input_type: log
paths:
# 收集日志的路径
- /var/log/pods/*/*/*.log
fields:
# 设置字段
log_topic: ${TOPIC_ID}
tail_files: true
# 删除文件状态,该clean_inactive设置必须大于以ignore_older + scan_frequency(简隔多久扫描一次日志文件,默认十秒)
clean_inactive: 48h
# 超过该时间之前更新的文件filebeta不采集,默认关闭(ignore_older为大于close_inactive)
ignore_older: 24h
# harvester读取文件最后一行后,1分钟后日志文件没有变动。关闭文件句柄
close_inactive: 1m

output.kafka:
# 获取集群元数据的 Kafka 代理地址列表
hosts: ["10.0.7.53:9092", "10.0.7.54:9092", "10.0.7.55:9092"]
# 此配置使用自定义字段 fields.log_topic来为每个事件设置主题
topic: '%{[fields.log_topic]}'
partition.round_robin:
# reachable_only设置为true,事件将仅发布到可用分区
reachable_only: true
# ACK 可靠性级别。0=无响应,1=等待本地提交,-1=等待所有副本提交。默认值为 1
required_acks: 1
# 设置输出压缩编解码器。必须是none、snappy和lz4之一gzip。默认值为gzip。
compression: gzip
# JSON 编码消息的最大允许大小。更大的消息将被丢弃。默认值为 1000000(字节
max_message_bytes: 1000000
# filebeat只收级错误日志
logging.level: error

在k8s集群部署daemonset

cat daemonset-filebeat.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: filebeat-kafka
namespace: kube-system
labels:
k8s-app: filebeat-kafka
spec:
selector:
matchLabels:
name: filebeat-kafka
template:
metadata:
labels:
name: filebeat-kafka
spec:
imagePullSecrets:
- name: myregistrykey
containers:
- name: filebeat-kafka
image: 10.0.7.12/k8s/filebeat:7.9.0
imagePullPolicy: Always
env:
- name: "TOPIC_ID"
value: "daemonset-pod-console-log"
volumeMounts:
- name: containerdlog # 定义容器日志挂载路径,和logstash配置文件中的收集路径保持一直
mountPath: /var/log/pods # containerd挂载路径,此路径与logstash的日志收集路径必须一致
readOnly: false
volumes:
- name: containerdlog
hostPath:
path: /var/log/pods #containerd的宿主机日志路径

kubectl apply -f daemonset-filebeat.yaml

标签:10.0,filebeat,name,daemonset,日志,k8s,log
From: https://blog.51cto.com/yht1990/6085704

相关文章

  • 部署logstash收集daemonset filebeat发过去的kafka日志
    实现:部署如下图红框位置logstash架构:主机:10.0.7.56部署logstashyum-yinstalljava-1.8.0-openjdkyum-yinstallhttps://mirror.tuna.tsinghua.edu.cn/elasticstack/7......
  • k8s-操作系统初始化
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。1.关闭防火墙systemctlstopfirewalld#临时systemctldisablefirewalld#永久2.关闭SeL......
  • k8s operator开发与使用
    k8soperator开发与使用本篇文章用于记录k8soperator的开发,此处以一个简单的demo来记录operator的开发过程及相关要点;本文中使用kubebuilder工具来生成相关代码一、......
  • k8s workloads 练习
    练习主题练习deployment创建扩容所容练习pods自动扩所容和metric安装配置练习升级和回滚练习configmap创建和使用一命令创建创建depolymentnginx,副本为2kubectl......
  • K8S集群+负载均衡层+防火墙 实例
    实验拓扑图:实验要求:(1)Kubernetes区域可采用Kubeadm方式进行安装。(2)要求在Kubernetes环境中,通过yaml文件的方式,创建2个NginxPod分别放置在两个不同的节点上,Pod使用......
  • K8S污点容忍案例
    [root@lecode-pre74~]#setenforce0setenforce:SELinuxisdisabled[root@lecode-pre74~]#sed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config[......
  • 收集日志方式1:k8s集群通过ELK收集容器控制台输出日志(logstash方式)
    集群架构:控制台日志,相当于容器的1号进程。或者容器内的日志正确和错误日志重定向到了如下/var/log/nginx/access.log->/dev/stdout /var/log/nginx/error.log->/dev/st......
  • 本地部署一套k8s集群
    我这里准备三台本地vmware虚拟机,版本号centos7.9,一台master节点,一台node1,一台node2kubeadm方式部署。Kubeadm是一个K8s部署工具,提供kubeadminit和kubeadmjoin,用于......
  • k8s的滚动更新
    一、什么是滚动更新当某个服务需要升级时,传统的做法是,先将要更新的服务下线,业务停止后再更新版本和配置,然后重新启动服务。如果业务集群规模较大时,这个工作就变成了一个......
  • DaemonSet
    DaemonSet简介DaemonSet:服务守护进程,它的主要作用是在k8s集群所有的节点中运行我们部署的守护进程,相当于在集群节点上分别部署pod副本,如果有新的节点加入集群,DaemonSet会......