ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

helm部署Filebeat + ELK

2019-09-30 22:00:59  阅读:437  来源: 互联网

标签:ELK Filebeat elastic charts elasticsearch https helm docker


helm部署Filebeat + ELK

系统架构图:

 

1) 多个Filebeat在各个Node进行日志采集,然后上传至Logstash

2) 多个Logstash节点并行(负载均衡,不作为集群),对日志记录进行过滤处理,然后上传至Elasticsearch集群

3) 多个Elasticsearch构成集群服务,提供日志的索引和存储能力

4) Kibana负责对Elasticsearch中的日志数据进行检索、分析

1. Elasticsearch部署

官方chart地址:https://github.com/elastic/helm-charts/tree/master/elasticsearch

创建logs命名空间

kubectl create ns logs

添加elastic helm charts 仓库

helm repo add elastic https://helm.elastic.co

安装

helm install --name elasticsearch elastic/elasticsearch --namespace logs

参数说明

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

imageTag: "7.2.0"

imagePullPolicy: "IfNotPresent"

podAnnotations: {}

esJavaOpts: "-Xmx1g -Xms1g"

resources:

  requests:

    cpu: "100m"

    memory: "2Gi"

  limits:

    cpu: "1000m"

    memory: "2Gi"

volumeClaimTemplate:

  accessModes: [ "ReadWriteOnce" ]

  storageClassName: "nfs-client"

  resources:

    requests:

      storage: 50Gi

2. Filebeat部署

官方chart地址:https://github.com/elastic/helm-charts/tree/master/filebeat

Add the elastic helm charts repo

helm repo add elastic https://helm.elastic.co

Install it

helm install --name filebeat elastic/filebeat --namespace logs

参数说明:

image: "docker.elastic.co/beats/filebeat"

imageTag: "7.2.0"

imagePullPolicy: "IfNotPresent"

resources:

  requests:

    cpu: "100m"

    memory: "100Mi"

  limits:

    cpu: "1000m"

    memory: "200Mi"

那么问题来了,filebeat默认收集宿主机上docker的日志路径:/var/lib/docker/containers。如果我们修改了docker的安装路径要怎么收集呢,很简单修改chart里的DaemonSet文件里边的hostPath参数:

      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers   #改为docker安装路径

对java程序的报错异常log实现多行合并,用multiline定义正则来匹配。

filebeatConfig:
  filebeat.yml: |
    filebeat.inputs:
    - type: docker
      containers.ids:
      - '*'
      multiline.pattern: '^[0-9]'
      multiline.negate: true
      multiline.match: after
      processors:
      - add_kubernetes_metadata:
          in_cluster: true

    output.elasticsearch:
      hosts: '${ELASTICSEARCH_HOSTS:elasticsearch-master:9200}'

3. Kibana部署

官方chart地址:https://github.com/elastic/helm-charts/tree/master/kibana

Add the elastic helm charts repo

helm repo add elastic https://helm.elastic.co

Install it

helm install --name kibana elastic/kibana --namespace logs

参数说明:

elasticsearchHosts: "http://elasticsearch-master:9200"

replicas: 1

image: "docker.elastic.co/kibana/kibana"

imageTag: "7.2.0"

imagePullPolicy: "IfNotPresent"

resources:

  requests:

    cpu: "100m"

    memory: "500m"

  limits:

    cpu: "1000m"

    memory: "1Gi"

4. Logstash部署

官方chart地址:https://github.com/helm/charts/tree/master/stable/logstash

安装

$ helm install --name logstash stable/logstash --namespace logs

参数说明:

image:

  repository: docker.elastic.co/logstash/logstash-oss

  tag: 7.2.0

  pullPolicy: IfNotPresent

persistence:

  enabled: true

  storageClass: "nfs-client"

  accessMode: ReadWriteOnce

  size: 2Gi

5. Elastalert部署

官方chart地址:https://github.com/helm/charts/tree/master/stable/elastalert

安装

helm install -n elastalert ./elastalert --namespace logs

 效果图:

 

标签:ELK,Filebeat,elastic,charts,elasticsearch,https,helm,docker
来源: https://www.cnblogs.com/Dev0ps/p/11465673.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有