银河麒麟高级服务器操作系统V10上基于k8s部署EFK(ElasticSearch Fluentd Kibana)日志收集方案
前言 本文介绍基于银河麒麟高级服务器操作系统V10已安装部署的k8s单机集群上部署EFK方案
本文涉及部署脚本主要基于kubernetes官方项目https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch在arm64上的迁移适配项目https://github.com/hknarutofk/fluentd-elasticsearch-arm64
前置条件 银河麒麟高级服务器操作系统V10上安装k8s单机集群:https://blog.csdn.net/m0_46573967/article/details/112935319
银河麒麟高级服务器操作系统V10上k8s部署集成GlusterFS、Heketi:https://blog.csdn.net/m0_46573967/article/details/112983717
一、下载fluentd-elasticsearch-arm64项目
[yeqiang@192-168-110-185 桌面]$ sudo su
[sudo] yeqiang 的密码:
[root@192-168-110-185 桌面]# cd ~
[root@192-168-110-185 ~]# git clone --depth=1 https://github.com/hknarutofk/fluentd-elasticsearch-arm64.git
正克隆到 'fluentd-elasticsearch-arm64'...
remote: Enumerating objects: 36, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 36 (delta 7), reused 15 (delta 0), pack-reused 0
展开对象中: 100% (36/36), 完成.
二、执行部署
[root@192-168-110-185 fluentd-elasticsearch-arm64]# sh deploy.sh
serviceaccount/elasticsearch-logging created
clusterrole.rbac.authorization.k8s.io/elasticsearch-logging created
clusterrolebinding.rbac.authorization.k8s.io/elasticsearch-logging created
statefulset.apps/elasticsearch-logging created
service/elasticsearch-logging created
configmap/fluentd-es-config-v0.2.0 created
serviceaccount/fluentd-es created
clusterrole.rbac.authorization.k8s.io/fluentd-es created
clusterrolebinding.rbac.authorization.k8s.io/fluentd-es created
daemonset.apps/fluentd-es-v2.7.0 created
deployment.apps/kibana-logging created
service/kibana-logging created
说明:脚本会等待es启动,需要耐心等待
检查部署结果
[root@192-168-110-185 fluentd-elasticsearch-arm64]# kubectl get statefulset -n kube-system
NAMEREADYAGE
elasticsearch-logging2/25m2s
[root@192-168-110-185 fluentd-elasticsearch-arm64]# kubectl get ds -n kube-system
NAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLENODE SELECTORAGE
fluentd-es-v2.7.0111115m16s
kube-flannel-ds-arm64111114h10m
[root@192-168-110-185 fluentd-elasticsearch-arm64]# kubectl get deployment -n kube-system
NAMEREADYUP-TO-DATEAVAILABLEAGE
coredns1/1114h10m
dashboard-metrics-scraper1/1114h10m
kibana-logging1/1114m11s
kubernetes-dashboard1/1114h10m
metrics-server1/1114h10m
可以看到elasticsearch-logging启动了两个实例,fluentd因为只有一个节点,因此启动了一个实例,kibana启动了一个实例
三、登陆kibana、创建index pattern 获取登陆地址
[root@192-168-110-185 fluentd-elasticsearch-arm64]# kubectl get svc -n kube-system | grep kibana
kibana-loggingNodePort10.68.206.1625601:25742/TCP5m52s
得到登陆地址:http://localhost:25742/
打开火狐,输入地址
文章图片
选择Explore on my own(右边的安全警告忽略掉)
文章图片
【银河麒麟高级服务器操作系统V10上基于k8s部署EFK(ElasticSearch Fluentd Kibana)日志收集方案】点击Kibana Visualize & analyze
文章图片
选择Add your data
文章图片
点击Create index pattern按钮
文章图片
index pattern name输入logstash*, 点击Next step
文章图片
Time field选择 @timestamp,点击Create index pattern按钮
文章图片
可以看到index pattern创建成功
四、kibana搜索日志
文章图片
点击左侧菜单图标,选择Kibana下面的Discover
文章图片
接下来就可以通过KQL或者Lucene语法搜索想要的日志内容了。
总结 pv自动创建依赖glusterfs、heketi,配置内容在es-statefulset.yaml,可以根据实际情况修改申请空间大小,本文只是演示,10Gi非常小
# 基于heketi glusterfs 采用gluster-storage存储类型动态创建
volumeClaimTemplates:
- metadata:
name: elasticsearch-logging
creationTimestamp: null
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: glusterfs-storage
volumeMode: Filesystem
本文涉及的镜像
es-image: https://github.com/hknarutofk/fluentd-elasticsearch-arm64/tree/master/es-image
fluentd-es-image:https://github.com/hknarutofk/fluentd-elasticsearch-arm64/tree/master/fluentd-es-image
kibana:https://github.com/hknarutofk/hknarutofk-kibana-oss-docker-arm64/tree/master/7.10.2
推荐阅读
- MySQL|MySQL高级-SQL优化步骤
- 麒麟操作系统|麒麟操作系统 (kylinos) 从入门到精通 - 研发环境- 第三十五篇 屏幕录制、录音
- WebRTC源码级深度解析,进阶大厂高级音视频开发者含资料
- 大咖说·图书分享|了不起的 JavaScript 工程师(从前端到全端高级进阶)
- MySQL数据库|MySQL高级篇之索引结构
- {调取该文章的TAG关键词}|我,高级商业作者,也被骗走5000块
- 高级前端二面高频面试题合集
- 读《javaScript高级程序设计-第6章》之理解对象
- Java|Java高级笔试宝典覆盖近3年Java笔试中98%高频知识点
- 14.88万起,这些日系车稳得不行,感觉很高级()