Kubernetes K8S之Helm部署ELK日志分析系统;由于Logstash比较消耗资源,因此本次我们使用Fluentd实现日志收集(EFK)。
主机配置规划
服务器名称(hostname) | 系统版本 | 配置 | 内网IP | 外网IP(模拟) |
---|---|---|---|---|
k8s-master | CentOS7.7 | 2C/4G/20G | 172.16.1.110 | 10.0.0.110 |
k8s-node01 | CentOS7.7 | 2C/4G/20G | 172.16.1.111 | 10.0.0.111 |
k8s-node02 | CentOS7.7 | 2C/4G/20G | 172.16.1.112 | 10.0.0.112 |
备注:由于EFK部署比较消耗内存;所以每台机器的内存最好大于等于4G。
ELK概述
ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等接口,提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己数据定制仪表板的视图,还允许他们以特殊的方式查询和过滤数据。
由于Logstash比较消耗资源,因此本次我们使用Fluentd实现日志收集(EFK)。
EFK镜像下载
由于镜像都在国外,因此我们在国内下载镜像,然后tag为对应的镜像名称。执行如下脚本【集群所有机器都执行】:
1 | [root@k8s-node02 software]# vim download_efk_image.sh |
Elasticsearch部署
本次部署EFK,创建一个efk名称空间。
chart下载与配置修改
1 | # 当前目录 |
Elasticsearch部署
步骤如下:
1 | # 当前目录 |
Elasticsearch访问
其中IP来源于ES的svc。
1 | [root@k8s-master ~]# curl 10.100.237.152:9200/ |
至此,elasticsearch部署完毕
elasticsearch-client域名获取
根据es01-elasticsearch-client的svc信息获取到es01-elasticsearch-client的域名;用于后面的fluentd 和kibana。
启动一个pod
1 | [root@k8s-master test]# pwd |
进入pod并得到elasticsearch-client域名信息
1 | # 进入一个pod容器 |
由上可得,Service中es01-elasticsearch-client的域名为:es01-elasticsearch-client.efk.svc.cluster.local
Service的域名格式为:$(service name).$(namespace).svc.cluster.local
,其中 cluster.local 指定的集群的域名
Fluentd部署
chart下载与配置修改
1 | [root@k8s-master efk]# pwd |
fluentd-elasticsearch部署
步骤如下:
1 | ################ 部署fluentd-elasticsearch |
Kibana部署
kibana的主版本和大版本必须和elasticsearch(ES)一致,小版本可以不同;但两者版本最好一致,这样可以避免一些因版本不同导致的意外情况。
由于elasticsearch(ES)使用的是6.7.0,因此kibana我们也是用该版本。
chart下载与配置修改
1 | [root@k8s-master efk]# pwd |
kibana部署
步骤如下:
1 | ################ 部署kibana-oss |
浏览器访问
1 | http://172.16.1.110:30601/ |
页面访问
创建索引
数据查看
相关阅读
完毕!