Kubernetes Part6 ---- ELK Stack收集Kubernetes应用日志
2021-01-05 17:29
标签:标准 模式 stat 集合 环境 map 发展 eth 控制 ?业务发展越来越庞大,服务器越来越多 应用程序日志记录体现方式分为两类: 针对标准输出:以DaemonSet方式在每个Node上部署一个日志收集程序,采集/var/lib/docker/containers/目录下所有容器日志 针对容器中日志文件:在Pod中增加一个容器运行日志采集器,使用emtyDir共享日志目录让日志采集器读取到日志文件 ELK 是三个开源软件的缩写,提供一套完整的企业级日志平台解决方案。 准备YAML文件 搭建日志系统: 应用YAML NodePort访问 http://172.16.0.21;30601 验证可以登录 应用 filebeat 获取所有容器标准输出 查看索引(日志记录集合):Management -> Stack Management -> 索引管理 将索引关联到Kibana:索引模式-> 创建-> 匹配模式-> 选择时间戳 一般一个索引对应一个应用日志 导航至 discover 基于条件过滤 (只看ops namespace下的pod日志) kubernetes.namespace : "ops" 查看索引(日志记录集合):Management -> Stack Management -> 索引管理 Kubernetes Part6 ---- ELK Stack收集Kubernetes应用日志 标签:标准 模式 stat 集合 环境 map 发展 eth 控制 原文地址:https://www.cnblogs.com/houcong24/p/14220600.html需求背景
?各种访问日志、应用日志、错误日志量越来越多
?开发人员排查问题,需要到服务器上查日志,效率低、权限不好控制
?运维需实时关注业务访问情况K8S环境中需要查看的应用日志
?标准输出:输出到控制台,使用kubectl logs可以看到
?日志文件:写到容器的文件系统的文件日志获取方式
ELK 日志系统介绍
分别是:
?Elasticsearch:搜索、分析和存储数据
?Logstash :采集日志、格式化、过滤,最后将数据推送到Elasticsearch存储
?Kibana:数据可视化
?Beats :集合了多种单一用途数据采集器,用于实现从边缘机器向Logstash 和Elasticsearch 发送数据。里面应用最多的是Filebeat,是一个轻量级日志采集器。ELK 日志系统安装配置
[root@k8s-master03 elk]# ls -l
total 20
-rw-r--r-- 1 root root 2108 Jan 1 18:09 app-log-logfile.yaml
-rw-r--r-- 1 root root 528 Jan 1 18:09 app-log-stdout.yaml
-rw-r--r-- 1 root root 1450 Jan 1 18:09 elasticsearch.yaml
-rw-r--r-- 1 root root 3166 Jan 1 18:09 filebeat-kubernetes.yaml
-rw-r--r-- 1 root root 924 Jan 1 18:09 kibana.yaml
?elasticsearch.yaml # ES数据库
?kibana.yaml # 可视化展示
日志收集:
?filebeat-kubernetes.yaml # 采集所有容器标准输出
?app-log-stdout.yaml # 标准输出测试应用
?app-log-logfile.yaml # 日志文件测试应用[root@k8s-master03 elk]# kubectl apply -f elasticsearch.yaml
deployment.apps/elasticsearch created
persistentvolumeclaim/es-pvc created
service/elasticsearch created
[root@k8s-master03 elk]# kubectl apply -f kibana.yaml
deployment.apps/kibana created
service/kibana created
[root@k8s-master03 elk]# kubectl get pod -n ops
NAME READY STATUS RESTARTS AGE
elasticsearch-549b496f94-hnj4v 1/1 Running 0 79s
grafana-757fcd5f7c-wdnt4 1/1 Running 0 90m
kibana-55c8979979-kxqgh 1/1 Running 0 72s
[root@k8s-master03 elk]# kubectl get svc -n ops
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch ClusterIP 10.106.236.50
[root@k8s-master03 elk]# kubectl apply -f filebeat-kubernetes.yaml
configmap/filebeat-config created
configmap/filebeat-inputs created
daemonset.apps/filebeat created
clusterrolebinding.rbac.authorization.k8s.io/filebeat created
clusterrole.rbac.authorization.k8s.io/filebeat created
serviceaccount/filebeat created
[root@k8s-master03 elk]# kubectl get pod -n ops | grep file
filebeat-7s9xq 1/1 Running 0 41s
filebeat-qg7jw 1/1 Running 0 41s
上一篇:[FAQ] golang-migrate/migrate error: default addr for network '127.0.0.1:3306' unknow
下一篇:针对网站设计技巧有哪些要掌握
文章标题:Kubernetes Part6 ---- ELK Stack收集Kubernetes应用日志
文章链接:http://soscw.com/essay/40316.html