Filebeat是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定的日志文件或位置,收集日志事件,并将其转发给[Elasticsearch]或[Logstash]进行索引。
Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收割机都读取单个日志以获
取新内容,并将新日志数据发送到libbeat, libbeat将聚集事件并将聚集的数据发送到为Filebeat配置的输出。
将Filebeat部署为DaemonSet,以确保集群的每个节点上都有一个正在运行的实例.Docker日志主机文件夹(/var/lib/码头工人/容器)安装在Filebeat容器上.Filebeat会开始输入文件,并在文件出现在
文件夹中后立即开始收集它们。
这里使用官方提供的方式部署:
curl - l - o https://raw.githubusercontent.com/elastic/beats/7.5/deploy/kubernetes/filebeat-kubernetes.yaml
引用>
默认情况下,Filebeat将事件发送到现有的Elasticsearch部署(如果存在)。要指定其他目标,请在清单文件中更改以下参数:
env: ——名称:ELASTICSEARCH_HOST 价值:elasticsearch ——名称:ELASTICSEARCH_PORT 价值:“9200” ——名称:ELASTICSEARCH_USERNAME 价值:弹性 ——名称:ELASTICSEARCH_PASSWORD 价值:changeme ——名称:ELASTIC_CLOUD_ID 值: ——名称:ELASTIC_CLOUD_AUTH 价值:
- - - - - - apiVersion: v1 :ConfigMap 元数据: 名称:filebeat-config 名称空间:kube-system 标签: k8s-app: filebeat 数据: filebeat。yml: | - filebeat.config: 输入: #安装“filebeat-inputs configmap”: 路径:$ {path.config}/inputs.d/* .yml #重载时输入配置变化: 重新加载。启用:假 模块: 路径:$ {path.config}/modules.d/* .yml #重新加载模块配置改变时: 重新加载。启用:假 # autodiscover启用提示,删除“filebeat.config。输入的配置和取消: # filebeat.autodiscover: #提供者: # -类型:kubernetes #提示。启用:真 处理器: - add_cloud_metadata: #云。id: $ {ELASTIC_CLOUD_ID} #云。身份验证:$ {ELASTIC_CLOUD_AUTH} # output.elasticsearch: #主机:[' $ {ELASTICSEARCH_HOST: elasticsearch}: $ {ELASTICSEARCH_PORT: 9200}’) 用户名:$ {ELASTICSEARCH_USERNAME} #密码:$ {ELASTICSEARCH_PASSWORD} output.logstash: 主机(“192.168.0.104:5044”): --- apiVersion: v1 :ConfigMap 元数据: 名称:filebeat-inputs 名称空间:kube-system 标签: k8s-app: filebeat 数据: kubernetes。yml: | - 类型:日志#设置类型为日志 道路: ——/var/lib/docker/containers/*/*.log #字段: #应用:美丽 #类型:docker-log fields_under_root:真 json。keys_under_root:真 json。overwrite_keys:真 utf - 8编码: 字段。sourceType: docker-log #索引名格式 ---/v1beta1 apiVersion:扩展 :DaemonSet 元数据: 名称:filebeat 名称空间:kube-system 标签: k8s-app: filebeat 规范: 模板: 元数据: 标签: k8s-app: filebeat 规范: serviceAccountName: filebeat terminationGracePeriodSeconds: 30 容器: ——名称:filebeat 图片:docker.elastic.co/比/filebeat: 6.5.4 #提前准备好镜像,需要* * *下载 args:( “c”、“/etc/filebeat.yml”, “e”, ] securityContext: runAsUser: 0 #如果使用Red Hat OpenShift取消: #特权:真 资源: 限制: 内存:200米 请求: cpu: 100 内存:100米 volumeMounts: ——名称:配置 mountPath:/etc/filebeat.yml 只读的:真 子路径:filebeat.yml ——名称:输入 mountPath:/usr/share/filebeat/inputs.d 只读的:真 名称:数据 mountPath:/usr/share/filebeat/data ——名称:varlibdockercontainers mountPath:/var/lib/docker/containers 只读的:真 卷: ——名称:配置 configMap: defaultMode: 0600 名称:filebeat-config ——名称:varlibdockercontainers hostPath: 路径:/var/lib/docker/containers ——名称:输入 configMap: defaultMode: 0600 名称:filebeat-inputs #数据文件夹存储读取状态为所有文件的注册表,所以我们不要再发送一切alt=" filebeat收集k8日志">filebeat收集k8日志