EFK(Elasticsearch+Filebeat+Kibana)日志收集系统
EFK简介
Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。
Beats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然后便可在 Elastisearch 中集中处理数据。如果需要更加强大的处理性能,Beats 还能将数据输送到 Logstash 进行转换和解析。
Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。不仅如此,您还可以使用 Vega 语法来设计独属于您自己的可视化图形。所有这些都利用 Elasticsearch 的完整聚合功能。
Elasticsearch 通常与 Kibana 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 允许你通过 web 界面来浏览 Elasticsearch 日志数据。
EFK架构图
ELK和EFK的区别
ELK 是现阶段众多企业单位都在使用的一种日志分析系统,它能够方便的为我们收集你想要的日志并且展示出来
ELK是Elasticsearch、Logstash、Kibana的简称,这三者都是开源软件,通常配合使用。
1. Elasticsearch -->存储数据
是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写,能对大容量的数据进行接近实时的存储、搜索和分析操作。
2. Logstash --> 收集数据
数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置。
3. Kibana --> 展示数据
数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示。
EFK是ELK日志分析系统的一个变种,加入了filebeat 可以更好的收集到资源日志 来为我们的日志分析做好准备工作。
优缺点
Filebeat 相对 Logstash 的优点:
- 侵入低,无需修改 elasticsearch 和 kibana 的配置;
- 性能高,IO 占用率比 logstash 小太多;
当然 Logstash 相比于 FileBeat 也有一定的优势,比如 Logstash 对于日志的格式化处理能力,FileBeat 只是将日志从日志文件中读取出来,当然如果收集的日志本身是有一定格式的,FileBeat 也可以格式化,但是相对于Logstash 来说,效果差很多。
安装环境
此次实验用的一台服务器进行操作
准备安装包,EFK的三个安装包保持相同版本
安装es的节点一定安装java
环境
通过yum安装java
[root@localhost ~]# yum search jdk
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.tuna.tsinghua.edu.cn* extras: mirrors.tuna.tsinghua.edu.cn* updates: mirrors.tuna.tsinghua.edu.cn
================================================================= N/S matched: jdk =================================================================
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
java-11-openjdk-demo.i686 : OpenJDK Demos 11
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a single archive
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
java-11-openjdk-static-libs.x86_64 : OpenJDK libraries for static linking 11
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
ldapjdk.noarch : The Mozilla LDAP Java SDK名称和简介匹配 only,使用“search all”试试。查询到版本然后进行安装
[root@localhost ~]# yum -y install java-1.8.0-openjdk
[root@localhost ~]# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
安装es
tar zxf elasticsearch-6.3.2.tar.gz
mv elasticsearch-6.3.2 /usr/local/es
调整系统文件描述符的软硬限制
vim /etc/security/limits.conf末尾添加打开文件的软限制,ES要求系统文件描述符大于65535
* soft nofile 655360打开文件的硬限制
* hard nofile 655360用户可用进程数软限制
* soft nproc 2048用户可用进程数硬限制
* hard nproc 4096JVM能够使用最大线程数
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p
配置Elasticsearch服务环境
useradd es
mkdir -p /es/{data,logs} # 日志及数据存放目录
chown -R es:es /usr/local/es /es # 使用es用户启动时,权限不对也会报错
网络对时
ntpdate ntp.ntsc.ac.cn
重启服务器
reboot
编辑elasticsearch.yml配置文件,ES默认就是集群模式的,所以只有一个节点也是集群模式
vim /usr/local/es/config/elasticsearch.yml 取消注释
cluster.name: my-application
node.name: node-1添加
node.master: true
node.data: true取消注释并修改
path.data: /es/data
path.logs: /es/logs
network.host: 192.168.1.10 # 改为本机ip
discovery.zen.minimum_master_nodes: 1 # master的最少节点数取消注释
http.port: 9200
安装Kibana
tar zxf kibana-6.3.2-linux-x86_64.tar.gz
mv kibana-6.3.2-linux-x86_64 /usr/local/kibana
修改Kibana配置文件
vim /usr/local/kibana/config/kibana.yml取消注释
server.port: 5601
server.host: "192.168.1.10"用来连接es服务
elasticsearch.url: "http://192.168.1.10:9200"
安装Filebeat
tar zxf filebeat-6.3.2-linux-x86_64.tar.gz
mv filebeat-6.3.2-linux-x86_64 /usr/local/filebeat
举例收集nginx的日志
安装nginx
yum -y install epel-release
yum -y install nginx
启动
nginx
查看配置文件
cat /etc/nginx/nginx.conf
得知配置文件存放在/var/log/nginx/*.log
访问测试
整合环境
修改filebeat配置文件,将本机的nginx日志文件打标签为nginx,方便elasticsearch来创建索引
vim /usr/local/filebeat/filebeat.yml添加注释filebeat.inputs:- type: logpaths:- /var/log/*.log添加以下内容为inputs配置
filebeat:prospectors:- type: logpaths:- /var/log/nginx/*.logtags: ["nginx"]修改enabled: true # 表示以上配置是否生效
修改
setup.kibana:host: "192.168.1.10:5601" #kibana的主机ipoutput.elasticsearch:hosts: ["192.168.1.10:9200"] #es主机的ip
进行启动
- es
su es
/usr/local/es/bin/elasticsearch
- filebeat
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
- kibana
/usr/local/kibana/bin/kibana
各个服务启动之后阻塞信息都是INFO就没问题,遇到WARN是no route的就关闭防火墙或者放行端口
在访问kibana的ip:5601,http://192.168.1.10:5601
EFK(Elasticsearch+Filebeat+Kibana)日志收集系统相关推荐
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(二) Logstash简介及常见配置语法
Logstash通常被分为shipper和indexer两种角色,其中shipper负责收集转发日志至redis,而indexer负责将redis传送过来的日志输出到elasticSearch,如下图 ...
- 日志收集系统EFK安装及配置
目的 服务器运维系统日志监控是非常重要的工作.,目前常见的有EFK日志收集系统,实际上是3个系统组成,elasticsearch + filebeat+kibana.这三个软件在 elastic.c ...
- 深入浅出ELK日志收集系统搭建
先看一下目录图 背景 试想这么一种场景:Nginx负载了2个Tomcat,那么日志查看就很麻烦了,每次查看日志都要登录2台服务器,挨个搜索,2台还好,如果5台呢?10台呢?那查看日志就可费劲了,所以需 ...
- ELK 日志收集系统方案
文章目录 背景 ELK使用组件简介 方案1 ELK 方案二 EFK 方案三: FELK 方案四:个性化框架 总结: 日志展示及查询 环境 背景 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过 ...
- 号称下一代日志收集系统!来看看它有多强
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 关于日志收集.处理.分析的方案,其实是很多,常见的就是ELK组合,即:Elasticsearch + L ...
- Kubernetes 基于 EFK 技术栈的日志收集实践
之前写过一篇文章介绍了容器环境下日志管理的原理机制:从 Docker 到 Kubernetes 日志管理机制详解,文章内容偏理论,本文在该理论的支撑下具体实践 Kubernetes 下基于 EFK 技 ...
- ELK日志收集系统(一)
ELK日志收集系统(一) 一:软件包下载地址 二:环境准备 三:kibana安装与配置 四:安装nginx 五:filebeat安装配置 5.1 配置filebeat收集nginx日志 5.2 kib ...
- 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!
摘要 ELK日志收集系统进阶使用,本文主要讲解如何打造一个线上环境真实可用的日志收集系统.有了它,你就可以和去服务器上捞日志说再见了! ELK环境安装 ELK是指Elasticsearch.Kiban ...
- java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?...
作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 来源:掘金 SpringBoot实战电商项目mall(35k+star ...
最新文章
- struts2拦截器底层原理
- 秒秒钟揪出张量形状错误,这个工具能防止ML模型训练白忙一场
- swift学习之set和get方法
- 什么是宇宙安全声明_《三体》三体人是否知道如何向宇宙发表安全声明?
- LuoguP5897 [IOI2013]wombats
- 前端学习(2803):点击商品列表导航到商品详情页
- scrapy获取a标签的连接_Python爬虫 scrapy框架初探及实战!
- IntelliJ IDEA 2017新工具
- mysql 日期操作 增减天数、时间转换、时间戳(转)
- link标签中的integrity和crossorigin字段---web前端工作笔记015
- 工厂打工10年,现在被工厂以能力不足为由辞退,可以去仲裁吗?
- macbook 放flash发烫,转html5
- 程序异常exitcode非0_ARM寄存器分析以及异常处理方法
- 贝塞尔曲线的css实现——淘宝加入购物车基础动画
- Qualcomm Atheros ar9285 连不上 tp link无线 的 问题
- PIR控制器调节器并网逆变器电流谐波抑制策略
- F.grid_sample采样
- EMV规范(五)——脱机数据认证
- 微服务架构(Microservices)
- Laravel 5.5 中文文档
热门文章
- NOI模拟20191029【线段树】【二分+哈希】【迭代+二分】
- IoT黑板报0118:特斯拉汽车立功了!重大车祸司机大难不死
- 京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)
- 搭建Qmail邮件系统(中篇)
- 《An Intrusion-Detection Model》翻译
- 文献笔记 —— GIDS: GAN based Intrusion Detection System for In-Vehicle Network
- 寒假每日一题题解(2.19)最大波动(水水水淼题!)
- 刘笑天:Ansys workbench机械设计模块中静力分析案例
- IDEA报错npm ERR Maximum call stack size exceeded
- android平分布局的隐藏,Android布局 平分界面