helm部署Filebeat + ELK
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
匹配label:json的pod日志,没有的话正常收集。
- filebeatConfig:
- filebeat.yml: |
- filebeat.autodiscover:
- providers:
- - type: kubernetes
- templates:
- - condition:
- equals:
- kubernetes.labels.logFormat: "json"
- config:
- - type: docker
- containers.ids:
- - "${data.kubernetes.container.id}"
- json.keys_under_root: true
- json.overwrite_keys: true
- json.add_error_key: true
- - config:
- - type: docker
- containers.ids:
- - "${data.kubernetes.container.id}"
- processors:
- - add_kubernetes_metadata:
- in_cluster: true
- output.elasticsearch:
- hosts: '${ELASTICSEARCH_HOSTS:elasticsearch-master:9200}'
5. Elastalert部署
官方chart地址:https://github.com/helm/charts/tree/master/stable/elastalert
安装
- helm install -n elastalert ./elastalert --namespace logs
效果图:
helm部署Filebeat + ELK的更多相关文章
- 5分钟部署filebeat + ELK 5.1.1
标题有点噱头,不过网络环境好的情况下也差不多了^_^ 1. 首先保证安装了jdk. elasticsearch, logstash, kibana,filebeat都可以通过yum安装,这里前 ...
- Filebeat+ELK部署文档
在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的Filebeat+ELK开源实时日志分析平台的记录过程,有不对的地方还望指出. 简单介绍: 日志主要包括系统日志.应用 ...
- filebeat + ELK 部署篇
ELK Stack Elasticsearch:分布式搜索和分析引擎,具有高可伸缩.高可靠和易管理等特点.基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储.搜索和分析操作.通 ...
- linux单机部署kafka(filebeat+elk组合)
filebeat+elk组合之kafka单机部署 准备: kafka下载链接地址:http://kafka.apache.org/downloads.html 在这里下载kafka_2.12-2.10 ...
- Kafka+Zookeeper+Filebeat+ELK 搭建日志收集系统
ELK ELK目前主流的一种日志系统,过多的就不多介绍了 Filebeat收集日志,将收集的日志输出到kafka,避免网络问题丢失信息 kafka接收到日志消息后直接消费到Logstash Logst ...
- docker stack 部署 filebeat
=============================================== 2018/7/21_第3次修改 ccb_warlock 更新 ...
- Filebeat+ELK
Filebeat+ELK filebeat是logstash的升级版,从功能上来说肯定不如logstash,但是logstah比较耗费资源: filebeat安装 暂时依托于window系统 下载fi ...
- FILEBEAT+ELK日志收集平台搭建流程
filebeat+elk日志收集平台搭建流程 1. 整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kiban ...
- 使用docker部署filebeat和logstash
想用filebeat读取项目的日志,然后发送logstash.logstash官网有相关的教程,但是docker部署的教程都太简洁了.自己折腾了半天,踩了不少坑,总算是将logstash和filebe ...
随机推荐
- JNI开发流程
交叉编译 在一个平台上去编译另一个平台上可以执行的本地代码 cpu平台 arm x86 mips 操作系统平台 windows linux mac os 原理 模拟不同平台的特性去编译代码 jni开发 ...
- Mobx-React : 当前适合React的状态管理工具
MobX 简单.可扩展的状态管理 MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商所赞助的. 安装 安装: npm install mobx ...
- Linux 下安装 mysql8
1.下载mysql wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar 2. ...
- Oracle - View
Oracle View的创建 Create Or Replace View ViewName As Select * From Tables/View Where 条件;
- Java深层复制方式
为什么需要深层复制 Object 的 clone() 方法是浅层复制(但是 native 很高效).另外,Java 提供了数组和集合的复制方法,分别是 Arrays.copy() 和 Collecti ...
- 一位996、CRUD开发者的一天
记一笔流水账 今天我打算记一笔流水账,主要记录我的一天中干的事情,并思考效率低下的原因,同时分析一些可用的解决方案. 清早·开始做计划 早上六点四十,被梦想唤醒,然后看一会书,吃早餐,送娃上学. 九点 ...
- CF - 652 E Pursuit For Artifacts 边双联通
题目传送门 题解总结起来其实很简单. 把所有的边双联通分量缩成一个点,然后建立好新边, 然后再从起点搜到终点就好了. 代码: /* code by: zstu wxk time: 2019/02/23 ...
- hdu1255 覆盖的面积(线段树面积交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 面积交与面积并相似相比回了面积并,面积交一定会有思路,当然就是cover标记大于等于两次时. 但 ...
- B. Tea Queue codeforces Round.37.div2 队列
B. Tea Queue time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- JavaScript new的运行过程
参考 MDN网站的运算符 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/new new 运算符 ...