安装EFK文档编写:

安装elasticsearch:

1.使用helm 查找安装包

前提准备 创建 命名空间 和 创建 5个pv(3个master和2个data: master PV申请不小于5Gi,data pv申请不小于30Gi)

es镜像版本:docker.elastic.co/elasticsearch/elasticsearch:6.7.0

kubectl create ns elk-logging

查找安装包

helm search elasticsearch

2.下载安装包

cd ~/.helm/cache/archive/helm fetch stable/elasticsearch 

3.修改默认值文件

tar -zxvf elasticsearch-1.30.0.tgz

vim elasticsearch/values.yaml 

修改values.yaml配置文件

启动es内部监控:

image.repository: docker.elastic.co/elasticsearch/elasticsearch

cluster.xpackEnable: true

cluster.env.XPACK_MONITORING_ENABLED: true

kibana repo image.repository: docker.elastic.co/kibana/kibana而不是oss版本

客户端服务HTTP NodePort端口号。如果client.serviceType不是,则无效NodePort(设置访问端口)110 client:111   name: client112   replicas: 1113   serviceType: NodePort114   ## If coupled with serviceType = "NodePort", this will set a specific nodePort to the client HTTP port115   httpNodePort: 30920​

4.安装应用包

helm install stable/elasticsearch  -n efk-es --namespace elk-logging -f elasticsearch/values.yaml 

浏览器查看:http://192.1.80.39:30920/

5.测试:

[root@k8s-master ~/.helm/cache/archive]# kubectl get svc -n elk-loggingNAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGEefk-es-elasticsearch-client      NodePort    10.102.193.144   <none>        9200:30920/TCP   3m30sefk-es-elasticsearch-discovery   ClusterIP   None             <none>        9300/TCP         3m29s[root@k8s-master ~/.helm/cache/archive]# kubectl get pod -n elk-loggingNAME                                         READY   STATUS   RESTARTS   AGEefk-es-elasticsearch-client-6cb7f4b864-57kx7   1/1     Running   0         33hefk-es-elasticsearch-client-6cb7f4b864-svmtz   1/1     Running   0         33hefk-es-elasticsearch-data-0                   1/1     Running   0         33hefk-es-elasticsearch-data-1                   1/1     Running   0         11hefk-es-elasticsearch-master-0                 1/1     Running   0         33hefk-es-elasticsearch-master-1                 1/1     Running   0         33hefk-es-elasticsearch-master-2                 1/1     Running   0         29h[root@k8s-master ~/.helm/cache/archive]# ​

通过请求一个 REST API 来检查 Elasticsearch 集群是否正常运行

[root@k8s-master ~/.helm/cache/archive]# kubectl port-forward efk-es-elasticsearch-master-0  9200:9200 --namespace=elk-loggingForwarding from 127.0.0.1:9200 -> 9200Forwarding from [::1]:9200 -> 9200
通过部署cirros镜像并进入启动后的容器中来尝试访问ES服务是否正常,通过以下可测试ES是否部署成功​[root@k8s-master ~/.helm/cache/archive]# kubectl port-forward efk-es-elasticsearch-master-0  9200:9200 --namespace=elk-loggingForwarding from 127.0.0.1:9200 -> 9200Forwarding from [::1]:9200 -> 9200^C[root@k8s-master ~/.helm/cache/archive]# kubectl run -it --rm cirror-$RANDOM --image=cirros -- /bin/shkubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.If you don't see a command prompt, try pressing enter./ # nslookup efk-es-elasticsearch-client.elk-logging.svc.cluster.localServer:   10.96.0.10Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local​Name:     efk-es-elasticsearch-client.elk-logging.svc.cluster.localAddress 1: 10.102.193.144 efk-es-elasticsearch-client.elk-logging.svc.cluster.local/ # curl efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200{ "name" : "efk-es-elasticsearch-client-b5694c87-n9kqx", "cluster_name" : "elasticsearch", "cluster_uuid" : "JZf_DIIMTxan7KblnRmZEg", "version" : {   "number" : "6.7.0",   "build_flavor" : "oss",   "build_type" : "docker",   "build_hash" : "8453f77",   "build_date" : "2019-03-21T15:32:29.844721Z",   "build_snapshot" : false,   "lucene_version" : "7.7.0",   "minimum_wire_compatibility_version" : "5.6.0",   "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"}/ # curl efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200/_cat/_cat/allocation/_cat/shards/_cat/shards/{index}/_cat/master​#######检查是否能解析ES服务名​nslookup efk-es-elasticsearch-client.efk.svc.cluster.local##访问ES服务是否正常​curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200##查看ES库​curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat##查看ES中节点​curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/nodes##查看ES中的索引​curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/indices​

安装部署Fluentd

前提:测试使用stable/fluentd-elasticsearch部署环境产生组件问题,暂未解决办法,这里使用其他源:

fluent镜像:quay.io/fluentd_elasticsearch/fluentd:v2.6.0

  • 安装 kiwigrid 源

  • helm repo add kiwigrid https://kiwigrid.github.io

1.查找安装包

helm search fluentd-elasticsearch 

2.下载

cd ~/.helm/cache/archivehelm fetch kiwigrid/fluentd-elasticsearch

3.修改配置文件

tar -zxvf fluentd-elasticsearch-0.7.2.tgz lsvim fluentd-elasticsearch/values.yaml 
  • 编辑修改 values.yaml,指定 elasticsearch 集群的位置

elasticsearch:  host: 'efk-es-elasticsearch-client.elk-logging.svc.cluster.local'  port: 9200
  • 如果使用 prometheus 监控应该打开 prometheusRole 规则

podAnnotations:  prometheus.io/scrape: "true"  prometheus.io/port: "24231"

service: type: ClusterIP ports:   - name: "monitor-agent"     port: 24231

4.部署

helm install kiwigrid/fluentd-elasticsearch --name efk-flu --namespace elk-logging -f fluentd-elasticsearch/values.yaml 

查看

  • 是否生成了索引,直接使用访问 elasticsearch 的 RESTfull API 接口。

$ kubectl run cirros1 --rm -it --image=cirros -- /bin/sh/ # curl efk-cs-elasticsearch-client.elk-logging.svc.cluster.local:9200/_cat/indicesgreen open logstash-2019.05.10 a2b-GyKsSLOZPqGKbCpyJw 5 1   158 0 84.2kb   460bgreen open logstash-2019.05.09 CwYylNhdRf-A5UELhrzHow 5 1 71418 0 34.3mb 17.4mbgreen open logstash-2019.05.12 5qRFpV46RGG_bWC4xbsyVA 5 1 34496 0 26.1mb 13.2mb​

fluentd 安装 https://github.com/nttcom/fluent-plugin-rabbitmq

安装部署kibana

kibana镜像:docker.elastic.co/kibana/kibana:6.7.0

1.下载kibana

helm fetch stable/kibana

2.修改配置文件values.yaml

  • 编辑 values.yaml,修改 elasticsearch 指向 elasticsearch 集群的地址

elasticsearch.hosts: http://efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200
  • 修改 service 的工作模式,使得可以从集群外部访问

service:  type: NodePort  nodePort:30049

备注:kibana汉化: i18n.locale: "zh-CN"

files:  kibana.yml:    ## Default Kibana configuration from kibana-docker.    server.name: kibana    server.host: "0"   ## For kibana < 6.6, use elasticsearch.url instead   elasticsearch.hosts: http://efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200   i18n.locale: "zh-CN"

3.部署

helm install stable/kibana -n efk-kibana --namespace elk-logging  -f kibana/values.yaml 

4.获取service端口

[root@k8s-master ~/.helm/cache/archive]# kubectl get svc -n elk-loggingNAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGEefk-es-elasticsearch-client      NodePort    10.102.193.144   <none>        9200:30920/TCP   3h46mefk-es-elasticsearch-discovery   ClusterIP   None             <none>        9300/TCP         3h46mefk-flu-fluentd-elasticsearch    ClusterIP   10.110.89.85     <none>        24231/TCP        54mkibana                           NodePort   10.101.94.164   <none>       443:30049/TCP   39m​

5.测试

  • 由于 service 工作在 NodePort 模式下,所以可以在集群外部访问了

http://192.1.80.39:30049

安装部署logstash

logstash镜像:docker.elastic.co/logstash/logstash:6.7.0

提前创建PV,最小分配5Gi

1.下载logstash镜像包

helm fetch stable/logstash

2.修改配置文件values.yaml

修改镜像:

image:  repository: docker.elastic.co/logstash/logstash  tag: 6.7.0

设置X-Pack monitoring in Logstash (config:)

xpack.monitoring.enabled: true  xpack.monitoring.elasticsearch.url: "http://efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200"

设置elasticsearch输出

elasticsearch:  host: efk-es-elasticsearch-client.elk-logging.svc.cluster.local  port: 9200

数据输入为filebeat数据

beats { port => 5044 }

数据过滤设置:

filters:

数据输出设置:此处设置输出es

elasticsearch { hosts => ["ELASTICSEARCH_HOST"}:${ELASTICSEARCH_PORT}"] manage_template => false index => "%{@metadata}-%{+YYYY.MM.dd}" }

3.部署

helm install stable/logstash -n logstash --namespace elk-logging  -f logstash/values.yaml

4.测试

root@chengtai:~/.helm/cache/archive# kubectl get pods -n elk-loggingNAME                                           READY   STATUS    RESTARTS   AGEefk-es-elasticsearch-client-7d6f8bf48f-h7zql   1/1     Running   0          3defk-es-elasticsearch-client-7d6f8bf48f-pmdf4   1/1     Running   0          3defk-es-elasticsearch-data-0                    1/1     Running   0          3defk-es-elasticsearch-data-1                   1/1     Running   0         3defk-es-elasticsearch-master-0                 1/1     Running   0         3defk-es-elasticsearch-master-1                 1/1     Running   0         3defk-es-elasticsearch-master-2                 1/1     Running   0         3defk-flu-fluentd-elasticsearch-545vn           1/1     Running   0         3defk-kibana-5488995d-w7n7m                     1/1     Running   0         2d6hfilebeat-6b97c4f688-kd2l9                     1/1     Running   0         6h45mlogstash-0                                     1/1     Running   0         19m​

备注:host: logstash.elk-logging.svc.cluster.local

​ port: 5044

安装部署filebeat

备注:使用镜像:docker.elastic.co/beats/filebeat:6.7.0

1.下载helm源

helm fetch stable/filebeat

2.修改配置文件values.yaml

先解压下载的helm安装包

filebeat.modules:- module: systemprocessors:- add_cloud_metadata:filebeat.inputs:- type: logenabled: truepaths:- /var/log/*.log- /var/log/messages- /var/log/syslog- type: dockercontainers.ids:- "*"processors:- add_kubernetes_metadata:in_cluster: true- drop_event:when:equals:kubernetes.container.name: "filebeat"xpack.monitoring.enabled: true#xpack.monitoring.elasticsearch:#hosts: ["efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200"]output.elasticsearch:hosts: ['efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200']#output.logstash:#hosts: ['logstash.elk-logging.svc.cluster.local:5044']output.file:enabled: falselogging.level: info# When a key contains a period, use this format for setting values on the command line:# --set config."http\.enabled"=truehttp.enabled: truehttp.port: 5066

备注:

filebeat.modules: 配置使用默认模块,参考:https://www.elastic.co/guide/en/beats/filebeat/6.7/filebeat-modules.html

filebeat.inputs:配置输入规则logging.level: info

xpack.monitoring.enabled: true =》配置kibana监控

output.elasticsearch.hosts: ['efk-es-elasticsearch-client.elk-logging.svc.cluster.local:9200'] :配置输出为es

output.logstash.hosts: ['logstash.elk-logging.svc.cluster.local:5044'] :配置输出为logstash

output.file. enabled: false : 关闭默认输出,配置其他的输出,不然会报错

logging.level: info : 日志等级

3.部署

helm install stable/filebeat -n filebeat --namespace elk-logging  -f filebeat/values.yaml

4.是否部署成功

root@chengtai:~/.helm/cache/archive# kubectl get pods -n elk-logging
NAME                                           READY   STATUS             RESTARTS   AGE
efk-es-elasticsearch-client-7d6f8bf48f-6l62s   1/1     Running            0          32d
efk-es-elasticsearch-client-7d6f8bf48f-qtfm7   1/1     Running            0          32d
efk-es-elasticsearch-data-0                    1/1     Running            0          32d
efk-es-elasticsearch-data-1                    1/1     Running            0          32d
efk-es-elasticsearch-master-0                  1/1     Running            0          32d
efk-es-elasticsearch-master-1                  1/1     Running            0          32d
efk-es-elasticsearch-master-2                  1/1     Running            0          32d
efk-kibana-b57fd4c6d-nvfms                     1/1     Running            0          29d
elastalert-6977858ccf-r68pz                    0/1     CrashLoopBackOff   1269       15d
elastalert-elastalert-7c7957c9c6-cdkfv         1/1     Running            0          10d
filebeat-z9njz                                 2/2     Running            0          16d
metricbeat-ststg                               1/1     Running            0          14d
root@chengtai:~/.helm/cache/archive# kubectl get svc -n elk-logging
NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
efk-es-elasticsearch-client      NodePort    10.100.114.154   <none>        9200:30920/TCP   32d
efk-es-elasticsearch-discovery   ClusterIP   None             <none>        9300/TCP         32d
efk-kibana                       NodePort    10.97.169.99     <none>        443:30049/TCP    29d
elastalert                       NodePort    10.108.55.119    <none>        3030:30078/TCP   15d
filebeat-metrics                 ClusterIP   10.109.202.198   <none>        9479/TCP         16d

转载于:https://www.cnblogs.com/durenniu/p/11462961.html

K8s 使用helm 安装 EFK和ELK分布式日志分析系统系列(es版本:6.7.0;)相关推荐

  1. ELK企业级日志分析系统部署

    ELK企业级日志分析系统部署 文章目录 ELK企业级日志分析系统部署 1.什么是ELK日志分析系统 2.ELK日志分析系统诞生的原因 3.ELK日志分析系统的核心开源工具 3.1Logstash解析 ...

  2. ELK 搭建日志分析系统 + Zipkin服务链路追踪整合

    一.需求描述 在分布式系统中,日志跟踪是一件很令程序员头疼的问题,在遇到生产问题时,如果是多节点需要打开多节点服务器去跟踪问题,如果下游也是多节点且调用多个服务,那就更麻烦,再者,如果没有分布式链路, ...

  3. ELK 企业级日志分析系统

    文章目录 一. ELK日志分析系统简介 二. 使用ELK的原因 三. 完整日志系统基本特征 四. ELK的工作原理 五.ELK日志分析系统集群部署 5.1 ELK Elasticsearch 集群部署 ...

  4. ELK - 实用日志分析系统

    目前日志分析系统用的越来越广泛,而且最主流的技术即ELK,下面和大家分享一下: ------------------------------------------------------------ ...

  5. ELK+FileBeat日志分析系统

    日志分析系统重新构建了一下,选定的技术方案是ELK,也就是ElasticSearch, LogStash,Kibana.另外加了Filebeat和Kafka 2017.06.28 这两天稍微清闲一些, ...

  6. ELK分布式日志收集搭建和使用

    大型系统分布式日志采集系统ELK 全框架 SpringBootSecurity 1.传统系统日志收集的问题 2.Logstash操作工作原理 3.分布式日志收集ELK原理 4.Elasticsearc ...

  7. PROJECT2: 华为云 >> 企业云平台完整架构实例应用分解(第三部Zabbix + ELK 架构日志分析)

    *## 继:**首先准备环境1:部署Zabbix监控服务器:在华为云上部署一台Zabbix监控服务器,监控其他主机. 安装LNMP环境 2.源码安装Zabbix 3.安装监控端主机,修改基本配置 4. ...

  8. 一起来学k8s 38. 二进制k8s集群安装EFK

    二进制k8s集群安装EFK 环境准备 ##/etc/hosts 192.168.48.101 master01 192.168.48.102 master02 192.168.48.103 maste ...

  9. ELK分布式日志收集-企业级日志中心

    传统项目中,如果需要在生产环境定位异常的话,我们常常需要在服务器上使用命令的方式查询.而很多情况我们需要用到微服务架构或集群架构,日志被分散在不同的机器上,使得日志的查询变得异常困难.工欲善其事,必先 ...

  10. EFK(Elasticsearch+Filebeat+Kibana)日志收集系统

    EFK简介 Elasticsearch 是一个实时的.分布式的可扩展的搜索引擎,允许进行全文.结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档. Beats 是数据采集的得 ...

最新文章

  1. php查询记录是否存在,php – 插入查询检查是否存在记录 – 如果不存在,插入它...
  2. HDU 1853 MCMF
  3. 怎么向easyui grid里面插入空数据_浅谈数据结算(三)
  4. 不是我吹,20M的压缩文件我只用了1秒!
  5. 微型计算机控制技术黄勤期末,微型计算机控制技术作者黄勤第4章__工控机的抗干扰课案.ppt...
  6. 如何查看Kubernetes pod yaml文件的在线语法帮助
  7. 刚刚!频域通道注意力网络FcaNet开源了!
  8. 辨异 —— 中文词汇
  9. 刘强东又给老家的乡亲们送生鲜年货了!东哥同款了解一下?
  10. JavaScript对滚动条的操作
  11. SQL连接查询语句(内、外、交叉和合并查询)
  12. React Native的缓存和下载
  13. 35岁的程序员:第17章,悲欢离合
  14. 火水风四种元素平衡 ABCD四个相等
  15. 音频编码(PCM、G711A、G711U、AAC)理解
  16. 读取Excel 数据并写入到Word示例
  17. oracle ebcdic 转换,sql - oracle ebcdic sqlldr问题 - 堆栈内存溢出
  18. ThinkPHP5远程代码执行漏洞
  19. 【Vue】render函数使用和详解
  20. 领英发错的消息可以撤回吗?

热门文章

  1. 查询视图遇见的问题,以及访问另一个数据库的表
  2. vNext之旅(1):从概念和基础开始
  3. C++构造函数异常(二)
  4. 给DateField和DateChooser进行汉化
  5. 微信小程序——事件备忘录
  6. Java后端学习路线图,你真的只需要这一张!
  7. Oracle DBLINK 简单使用
  8. Vue学习之从入门到神经(两万字收藏篇)
  9. SqlServer中截取(获取)字符串中特定字符分割的每个元素
  10. 经典排序算法(九)--鸡尾酒排序Cocktail Sort