前言

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。

Filebeat是本地文件的日志数据采集器。 作为服务器上的代理安装,Filebeat监视日志目录或特定日志文件,tail file,并将它们转发给Elasticsearch或Logstash进行索引、kafka 等。

linux本地docker.log--》filebeat(收集日志)--》logstash(过滤)--》elasticsearch(添加索引)--》kibana检索显示

docker-elk 服务端 :https://github.com/jiangxd0716/ELK-filebeat.git     elasticsearch logstash kibana

elk-filebeat 客户端:https://github.com/jiangxd0716/ELK-filebeat.git      filebeat用于收集日志,传给elk

环境

Centos7
192.168.8.20 elasticsearch logstash kibana filebeat
192.168.8.10 filebeat
192.168.8.30 filebeat

服务:

  • elasticsearch:9200
  • logstash:5000
  • kibana:5601

安装

一、安装docker-elk服务端

1.拉取代码

  • git clone https://github.com/jiangxd0716/ELK-filebeat.git

2.安装docker及docker-compose

参考:https://www.cnblogs.com/jxd283465/p/11542127.html

3.启动服务端

[root@localhost docker-elk]# pwd
/home/ELK-filebeat/docker-elk
[root@localhost docker-elk]# docker-compose up -d
Starting dockerelk_elasticsearch_1 ...
Starting dockerelk_elasticsearch_1 ... done
Starting dockerelk_kibana_1 ...
Starting dockerelk_logstash_1 ...
Starting dockerelk_kibana_1
Starting dockerelk_kibana_1 ... done
[root@localhost docker-elk]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7152edaa71dc dockerelk_kibana "/usr/local/bin/dumb…" 3 minutes ago Up 4 seconds 0.0.0.0:5601->5601/tcp dockerelk_kibana_1
63908878fb00 dockerelk_logstash "/usr/local/bin/dock…" 3 minutes ago Up 4 seconds 0.0.0.0:5000->5000/tcp, 0.0.0.0:9600->9600/tcp, 5044/tcp dockerelk_logstash_1
d3c44ac2264c dockerelk_elasticsearch "/usr/local/bin/dock…" 3 minutes ago Up 4 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp dockerelk_elasticsearch_1

4.访问kibana

浏览器访问 http://192.168.8.20:5601

二、安装客户端

1.修改filebeat的配置文件filebeat.yml-------output到elasticsearch或者logstash

[root@localhost config]# pwd
/home/ELK/ELK/docker-elk/filebeat/config
[root@localhost config]# vi filebeat.yml
[root@localhost config]# cat filebeat.yml
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/lib/docker/containers/*/*.log #需要读取日志的目录#这里读取的是docker的日志文件,也可以加入tomcat、nginx等配置文件
document_type: syslog
json.keys_under_root: true # 因为docker使用的log driver是json-file,因此采集到的日志格式是json格式,设置为true之后,filebeat会将日志进行json_decode处理
json.add_error_key: true #如果启用此设置,则在出现JSON解组错误或配置中定义了message_key但无法使用的情况下,Filebeat将添加“error.message”和“error.type:json”键。
json.message_key: log #一个可选的配置设置,用于指定应用行筛选和多行设置的JSON密钥。 如果指定,键必须位于JSON对象的顶层,且与键关联的值必须是字符串,否则不会发生过滤或多行聚合。
tail_files: true
# 将error日志合并到一行
multiline.pattern: '^([0-9]{4}|[0-9]{2})-[0-9]{2}'
multiline.negate: true
multiline.match: after
multiline.timeout: 10s
# registry_file: /opt/filebeat/registry
#-------------------------- Elasticsearch output ------------------------------
# 直接输出到elasticsearch,这里的hosts是elk地址,端口号是elasticsearch端口#
#output.elasticsearch:
# hosts: ["192.168.8.100:9200"]
# username: "elastic"
# password: "changeme"
output:
logstash:
enabled: true
hosts:
- 192.168.8.20:5000 #这里将filebeat收集的日志output到logstash,此处为logstash的ip和端口,也可以直接输送到elasticsearch
#==================== Elasticsearch template setting ==========================
setup.template.name: "filebeat.template.json"
setup.template.fields: "filebeat.template.json"
setup.template.overwrite: true
setup.template.enabled: false
# 过滤掉一些不必要字段#
processors:
- drop_fields:
fields: ["input_type", "offset", "stream", "beat"]

2.启动客户端

 [root@localhost elk-filebeat]# pwd
/home/ELK-filebeat/elk-filebeat
[root@localhost elk-filebeat]# docker-compose up -d
Creating network "elkfilebeat_default" with the default driver
Creating elkfilebeat_filebeat_1 ...
Creating elkfilebeat_filebeat_1 ... done
[root@localhost elk-filebeat]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31749410acdf prima/filebeat "/docker-entrypoint.…" 5 minutes ago Up 5 minutes elkfilebeat_filebeat_1
2e57371faa8c dockerelk_kibana "/usr/local/bin/dumb…" 7 minutes ago Up 7 minutes 0.0.0.0:5601->5601/tcp dockerelk_kibana_1
09220beadd39 dockerelk_logstash "/usr/local/bin/dock…" 7 minutes ago Up 7 minutes 0.0.0.0:5000->5000/tcp, 0.0.0.0:9600->9600/tcp, 5044/tcp dockerelk_logstash_1
1ab3c9b426cc dockerelk_elasticsearch "/usr/local/bin/dock…" 7 minutes ago Up 7 minutes 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp dockerelk_elasticsearch_1

【linux】【ELK】搭建Elasticsearch+Logstash+Kibana+Filebeat日志收集系统的更多相关文章

  1. ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程

    ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...

  2. ELK (Elasticsearch , Logstash, Kibana [+FileBeat])

    ELK 简述: ELK 是: Elasticsearch , Logstash, Kibana 简称, 它们都是开源软件. Elasticsearch[搜索]是个开源分布式基于Lucene的搜索引擎, ...

  3. Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台

    日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常 ...

  4. ELK( ElasticSearch+ Logstash+ Kibana)分布式日志系统部署文档

    开始在公司实施的小应用,慢慢完善之~~~~~~~~文档制作 了好作运维同事之间的前期普及.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 软件下载地址: https://www.e ...

  5. ELK stack elasticsearch/logstash/kibana 关系和介绍

    ELK stack elasticsearch 后续简称ES logstack 简称LS kibana 简称K 日志分析利器 elasticsearch 是索引集群系统 logstash 是日志归集集 ...

  6. ELK(ElasticSearch+Logstash+Kibana)配置中的一些坑基于7.6版本

    三个组件都是采用Docker镜像安装,过程简单不做赘述,直接使用Docker官方镜像运行容器即可,注意三个组件版本必须一致. 运行容器时最好将三个组件的核心配置文件与主机做映射,方便直接在主机修改不用 ...

  7. 搭建Elasticsearch Logstash Kibana 日志系统

    分布式系统下由于日志文件分布在不同的系统上,分析比较麻烦,通过搭建elk日志系统,可快速排查日志信息. Elasticsearch是大数据处理框架,使用的分布式存储,可存储海量数据:基于Lucense ...

  8. 【转】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    [转自]https://my.oschina.net/itblog/blog/547250 摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticS ...

  9. 【Big Data - ELK】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticSearch,一款基于Apache Lucene的开源分布式搜索引擎)中便于查找和分析,在研究 ...

随机推荐

  1. 操作MySQL-数据库的安装及Pycharm模块的导入

    操作MySQL-数据库的安装及Pycharm模块的导入 1.基于pyCharm开发环境,在CMD控制台输入依次输入以下步骤: (1)pip3 install PyMySQL  < 安装 PyMy ...

  2. js遍历API总结

    1.for 循环 普通遍历方法,可优化,存下数组的length,避免每次都去获取数组的length,性能提升 2.for-in 可遍历数组和对象, (for key in obj){} 该方法既可以读 ...

  3. MSIL实用指南-生成异常处理

    本篇讲解怎么生成异常.C# 异常处理时建立在四个关键词之上的:try.catch.finally 和 throw. 一.异常的抛出抛出异常在C#语言中要使用throw关键字,使用方法是throw &l ...

  4. springboot之swagger快速启动

    springboot之swagger快速启动 简介 介绍 可能大家都有用过swagger,可以通过ui页面显示接口信息,快速和前端进行联调. 没有接触的小伙伴可以参考官网文章进行了解下demo页面. ...

  5. python中,一个函数想使用另一个函数中的变量

    问题: 第一个函数中用到了变量a:第二个函数也想使用变量a. 解决方法: 在第一个函数中将变量a定义为全局变量,然后在第二个函数中,也写上global a即可. 示例: def func1(): gl ...

  6. HDU - 5128The E-pang Palace+暴力枚举,计算几何

    第一次写计算几何,ac,感动. 不过感觉自己的代码还可以美化一下. 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5128 题意: 在一个坐标系中,有n个 ...

  7. 51nod 1376 最长递增子序列的数量(不是dp哦,线段树 +  思维)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1376 题解:显然这题暴力的方法很容易想到就是以每个数为结尾最 ...

  8. codeforces 807 C. Success Rate(二分)

    题目链接:http://codeforces.com/contest/807/problem/C 题意:记 AC 率为当前 AC 提交的数量 x / 总提交量 y .已知最喜欢的 AC 率为 p/q ...

  9. 题解 UVA11000 【Bee】

    传送门 [题目描述] 在非洲有一种非常特殊的蜜蜂.每年,这种蜜蜂的一只雌蜂生育一只 雄蜂,而一只雄蜂生育一只雌蜂和一只雄蜂,生育后它们都会死去!现在科学家们意外地发现了这一特殊物种的一只神奇的雌蜂,她 ...

  10. Java并发包下的几个API

    并发包 (计数器)CountDownLatch (屏障)CyclicBarrier (计数信号量)Semaphore 案例: 需求: 代码: 并发包 (计数器)CountDownLatch ​Coun ...