网站首页 > 技术文章 正文
流程图
服务器可用资源 4 核 8G,Kubernetes 集群版本信息
源码
https://gitee.com/pingfanrenbiji/k8s/
创建命名空间
kubectl create -f create-logging-namespace.yaml
创建 ElasticSearch 集群
kubectl create -f es-service.yaml
kubectl create -f es-statefulset.yaml
查看资源是否已创建
kubectl get service -n logging
kubectl get pods -n logging
部署 Kibana
kubectl create -f kibana-deployment.yaml
kubectl create -f kibana-service.yaml
查看Kibana
kubectl get pod -n logging|grep kibana
查看Kibana Service
访问Kibana
http://10.1.2.190:32032/kibana/
安装helm
mkdir -p /tmp/helm
cd /tmp/helm
wget -O helm.tar.gz https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz
tar zxvf helm.tar.gz
sudo cp linux-amd64/helm /usr/bin/
helm version
若输出:version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"},说明安装成功。
初始化 Helm
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
部署kafka 和 Logstash
cd k8s/efk-7.10.2/filebeat
helm install zookeeper zookeeper/ -n logging # 安装 zookeeper
kubectl get pods -n logging -l app.kubernetes.io/name=zookeeper
helm install kafka kafka/ -n logging # 安装 Kafka
kubectl get pods -n logging -l app.kubernetes.io/component=kafka
当所有 Pod 都正常后,创建 logstash 服务
kubectl create -f logstash-service.yaml -f logstash-cm.yaml -f logstash.yaml -n logging
注意
logstash-cm.yaml 文件中的一些配置:
input: 数据来源,本次示例配置的是 kafka
input.kafka.bootstrap_servers: kafka 的地址,由于是安装在集群内,可以直接使用 kafka 集群的 Service 接口,如果是外部地址,按需配置既可;
input.kafka.topics: Kafka 的 topic,需要和 Filebeat 输出的 topic 一致;
input.kafka.type: 定义一个 type,可以用于 logstash 输出至不同的 Elasticsearch 集群;
output: 数据输出至哪里,本次示例输出至 Elasticsearch 集群,在里面配置了一个判断语句,当 type 为 filebeat-sidecar 时,将会输出至 Elasticsearch 集群,并且索引为 filebeat-xxx。
注入 Filebeat Sidecar
当应用的日志没有输出到控制台,而是被输出到一个文件中时,此时可以使用 Filebeat 进行采集。以下示例会创建一个模拟程序,该程序会在 /opt/date.log 文件输出当前日志
``
cd k8s/efk-7.10.2/filebeat
kubectl create -f app.yaml -n logging
kubectl get configmap -n logging|grep filebeat
创建模拟程序
kubectl create -f app-filebeat.yaml -n logging
创建es索引
查询日志
最终pod情况
最终service情况
数据流转情况
这个pod中有2个docker程序 一个是filebeat一个应用程序,这个应用程序是往指定目录下写入日志。
查看pod yaml
kubectl edit pod app-b8677899d-h44gf -n logging
应用程序往/opt/date.log文件写入数据
该目录并没有做宿主机映射
filebeat从logpath目录下读取日志数据,并映射到/data/log/app/,从filebeatconf目录读取filebeat的配置文件。并映射到usr/share/filebeat/filebeat.yml
而logpath就是应用pod日志,并没有映射到宿主机上,filebeatconf表示读取宿主机上的filebeat.yml(configmap文件)映射到pod中usr/share/filebeat/filebeat.yml目录下。
configmap的内容读取pod中/data/log/xxxx.log日志文件,存储到kafka中。
查看应用产生的日志
kubectl exec -ti -n logging app-b8677899d-h44gf -- tail -1 /data/log/app/date.log
进入kafka中
验证是否收到filebeat传送过来的数据
监听kafaka消息队列
cd /opt/bitnami/kafka/bin
sh kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic filebeat-sidecar --from-beginning
应用pod中的filebeat进程可以读取到应用进程产生的日志,并可以正常穿给kafka中的消息队列中并且可以由消费者消费。
kafka消息了之后,发送给logstach进行处理并发给es
logstach的输入是kafka消息,输出是es,es中的数据再由kibana展示出来。
猜你喜欢
- 2024-09-22 经典案例复盘——运维专家讲述如何实现K8S落地
- 2024-09-22 EFK 日志系统收集K8s日志 (二)
- 2024-09-22 Docker安装ELK并实现JSON格式日志分析
- 2024-09-22 开发利器丨如何使用ELK设计微服务中的日志收集方案?
- 2024-09-22 智汇华云 | 集群日志动态采集方案
- 2024-09-22 使用Elastic进行事件响应的便携式SIEM
- 2024-09-22 日志服务架构设计
- 2024-09-22 如何将 Python 项目日志接入到 ELK
- 2024-09-22 搭建ELK容器化,so easy
- 2024-09-22 Elasticsearch Service 数据接入
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)