Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案

kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 1  工具介绍 Fluentd:用于收集、处理、传输日志数据。 Elasticsearch:用于实时查询和解析数据。 Kibana:用于数据可视化。 2  工作流程 Fluentd收集日志,将日志过滤处理后输出到Elasticsearch中,Elasticsearch的watch 阅读详情

Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案

提供:ZStack社区

前言

Elasticsearch、Fluentd与Kibana的组合(EFK)可以进行日志数据的采集、索引、搜索以及可视化。该组合是商业软件Splunk的替代:Splunk在一开始用的时候也是免费的,但如果数据多了则需要收费。

本文介绍如何用该组合构建你的日志解决方案。

前提条件

  • 安装了Ubuntu 14.04的云主机
  • 在该主机上具有sudo权限的用户

Elasticsearch的安装配置

安装Java

Elasticsearch需要Java,所以先安装Java。

sudo apt-get update
sudo apt-get install openjdk-7-jre-headless --yes

检查一下Java是否成功安装了:

java -version

输出应该是这个样子:

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

获取Elasticsearch

下一步,下载Elasticsearch的deb安装包,安装之。

sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb
sudo dpkg -i elasticsearch-1.2.2.deb

Elasticsearch安全加固

到1.2版本为止,Elasticsearch的动态脚本功能是默认开启的。因为本文将把Kibana仪表盘设置为从公网可以访问,所以为了安全起见最好关闭这个功能。进入/etc/elasticsearch/elasticsearch.yml文件,在末尾加入如下一行内容:

script.disable_dynamic: true

启动Elasticsearch

运行如下命令运行Elasticsearch:

sudo service elasticsearch start

Kibana的安装配置

获取Kibana

进入你的用户主目录:

cd ~

输入如下命令以下载Kibana:

curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf -
sudo cp -r kibana-3.1.0 /usr/share/

配置Kibana

我们需要Kibana使用80端口与Elasticsearch进行通讯,而不是默认的9200端口,因此我们需要更改Kibana的配置文件config.js。

用编辑器打开/usr/share/kibana-3.1.0/config.js,找到下面这行:

elasticsearch: "http://"+window.location.hostname+":9200",

把它替换成下面这行:

elasticsearch: "http://"+window.location.hostname+":80",

安装配置Nginx(代理服务器)

我们使用Nginx作为代理服务器,让经过身份认证的用户可以从公网访问Kibana的仪表盘。

首先,安装Nginx:

sudo apt-get install nginx --yes

Kibana自带的nginx.conf写得已经比较好,我们只需要做一点点修改即可。

首先,下载安装配置文件:

wget https://assets.digitalocean.com/articles/fluentd/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default

注:该配置文件来源于这个Github仓库。

然后,在编辑器中打开/etc/nginx/sites-available/default,进行如下修改(主要是server_name、access_log、location三部分):

#
# 针对Elasticsearch + Kibana的Nginx代理配置
#
# 此处将为仪表盘设置密码保护。
# 你也可以考虑为所有路径设置密码。
# 
# 浏览器在首次触发访问该路径的ajax请求时,
# 会弹出用户名/密码的输入框。
#
# 如果你使用本功能,请将config.js配置为 http://FQDN:80/
# 取代原来的 http://FQDN:9200
#
server {
 listen                *:80 ;
 server_name           localhost;
 access_log            /var/log/nginx/kibana.log;
 location / {
   root  /usr/share/kibana-3.1.0;
   index  index.html  index.htm;
 }

最后,重启nginx:

$ sudo service nginx restart

现在,在浏览器里打开服务器的IP地址或域名,就应该能看到Kibana的仪表盘了:

Kibana Welcome

Fluentd的安装配置

最后是Fluentd的安装。我们将使用Fluetd的软件包版本td-agent,该软件包由Treasure Data维护。

从td-agent软件包安装Fluentd

使用如下命令安装Fluentd:

wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb
sudo dpkg -i td-agent_2.0.4-0_amd64.deb

安装插件

我们需要安装如下几个插件:

  1. out_elasticsearch:该插件将Fluentd的数据流导给Elasticsearch。
  2. outrecordreformer:该插件可以将数据处理成更多格式。

输入以下命令安装插件(第一个apt-get用于安装out_elasticsearch,这会需要服务器上安装过make和libcurl):

sudo apt-get install make libcurl4-gnutls-dev --yes
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer

然后,配置Fluentd以监听syslog并将其发送给Elasticsearch。用编辑器打开/etc/td-agent/td-agent.conf,在文件开头处添加如下内容:

<source>
 type syslog
 port 5140
 tag  system
</source>
<match system.*.*>
 type record_reformer
 tag elasticsearch
 facility ${tag_parts[1]}
 severity ${tag_parts[2]}
</match>
<match elasticsearch>
 type copy
 <store>
   type stdout
 </store>
 <store>
 type elasticsearch
 logstash_format true
 flush_interval 5s #debug
 </store>
</match>

启动Fluentd

输入如下命令启动Fluentd:

sudo service td-agent start

将rsyslog流量转发给Fluentd

Ubuntu 14.04自带了rsyslogd。我们需要对它做一些配置,以将syslog事件转发到Fluentd监听的端口(本文使用了5140端口)。

用编辑器打开/etc/rsyslog.conf(需要sudo权限),在文件首部添加如下内容:

*.* @127.0.0.1:5140

保存退出,重启rsyslogd:

sudo service rsyslog restart

自定义Kibana仪表盘

Kibana默认的仪表盘只显示了最通用的内容,所以可以考虑做一下自定义。以下展示两种方法。

方法1:使用模板(Template)

Fluentd团队提供了另一个Kibana配置文件,如果使用模板进行自定义的话,那么这个配置文件会比Kibana的默认配置好用。运行如下命令以获取该配置文件:

wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json
sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json

注:源文件来自这个GitHub gist。

现在到浏览器里刷新页面,应该看到Kibana现在已经根据syslog的严重等级(severity)和程序模块(facility)显示矩形图,并在一个表格里展示出最近的日志内容。

方法2:手动配置

在浏览器里访问Kibana仪表盘首页:

Kibana Welcome

选择最下面的Blank Dashboard: I’m comfortable configuring on my own(空白模板):

Kibana Blank Template

在本页面,点击右侧的+ ADD A ROW(添加行)按钮,会弹出添加新行的配置界面(一个“行”可以包含一个或多个“板块”(panel))。输入一个名称,然后点击Create Row(创建行)按钮,然后点Save(保存)。现在就可以看到新建的行了。

Kibana Row

空白行创建后,Kibana在页面左侧会提醒Add panel to empty row(在空白行里添加板块)。点击该按钮,会弹出新建板块的配置界面。在下拉餐单中选择histogram(矩形图)。矩形图是时间图表,详见Kibana文档。

Kibana Histogram

矩形图的配置涉及很多参数,不过我们可以简单的下拉到页面底部,点击Save按钮。如此,新的板块就创建完毕了。

Kibana Histogram Details

延伸阅读

更多关于Kibana配置的信息,可参阅Kibana文档页。

本文来源自DigitalOcean Community。英文原文:Elasticsearch, Fluentd, and Kibana: Open Source Log Search and Visualization by Kiyoto Tamura

本文由Fluentd投稿。

翻译:lazycai

基于Elasticsearch + Fluentd + Kibana(EFK)搭建日志收集管理系统 详细讲述基于Elasticsearch、Fluentd和Kibana的日志管理系统搭建过程。 阅读详情

相关推荐

从AXI到CHI:深入解析基于Credit的流量控制如何优化NoC设计

本文深入解析了从AXI握手式流控到CHI基于Credit的流量控制机制的演进。通过对比传统流控的瓶颈,详细阐述了Credit机制如何通过信用预分配和记账系统,有效解决FIFO气泡、时序收敛等难题,从而优化NoC设计的带宽利用率、降低延迟并提升系统可扩展性。

weixin_29227585的博客 522

日志收集系统Elasticsearch,Fluentd , Kibana

为什么做日志系统 首先,什么是日志? 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据。 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请...

1万+

LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战

惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6

weixin_28684655的博客 597

16. Kubernetes运维篇-日志收集

Elasticsearch + Fluentd + Kibana(通常简称为EFK)是一个流行的日志管理和分析堆栈,它结合了Elasticsearch的强大搜索和分析能力、Fluentd的高效日志收集以及Kibana的数据可视化功能。一个开源的搜索引擎,基于Lucene构建,用于存储、搜索和分析大量数据。提供了强大的全文搜索能力,以及复杂的搜索和分析功能。数据以JSON文档的形式存储,易于扩展和分布式部署。Fluentd一个开源的数据收集器,用于统一日志收集。

weixin_40901913的博客 1020

我用 Claude Code 给 Spring Boot 老项目做了一次代码 Review:查出 4 类隐藏问题

接手 Spring Boot 老项目时,真正麻烦的往往不是编译报错,而是分散在业务代码中的空指针、N+1 查询、异常吞没和并发隐患。本文记录一次使用 Claude Code 辅助代码 Review 的完整流程,并给出提示词、Java 示例、修改方案和人工复核方法。

海波的专栏 400

EEG/ERP新手必看:5本神经科学入门书籍推荐(附高清PDF下载)

本文为EEG/ERP研究新手推荐5本神经科学入门书籍,涵盖认知神经科学、数据分析、ERP技术等核心内容。特别推荐《认知神经科学—关于心智的生物学》和《事件相关电位基础》,这些书籍不仅提供理论框架,还包含实用案例和MATLAB代码,帮助研究者快速掌握脑电研究技术。附高清PDF下载,适合实验室小组学习。

weixin_29210727的博客 449

基于Elasticsearch+Fluentd+Kibana的日志收集分析系统搭建与应用

基于Elasticsearch+Fluentd+Kibana的日志系统搭建与应用随着互联网技术的发展,原来的单机发展到多机再到大规模集群,nginx,tomcat,openStack,docker容器等等,一个系统由大量的服务构成,其中每个应用与服务的日志分析管理也变得越来越重要。本文将介绍如何使用fd+es+ka搭建日志收集系统。关于具体介绍请参考官网: Fluentd: http://www.

swq的专栏 3万+

彻底讲透 SAP 中的 client-safe:从 CDS、AMDP 到 ABAP Cloud 的客户端隔离设计

SAP系统中的client-safe概念定义了技术边界:访问client-dependent数据的对象必须确保只看到单个client数据,而访问client-independent数据的对象则天然满足条件。这一原则直接影响CDS视图、AMDP等核心组件,并与ABAP Cloud开发模型紧密集成。在业务系统中,client isolation要求用户只能看到当前登录client的数据。SAP通过语言版本、对象规则和静态检查强制执行这一约束,特别是在ABAP Cloud开发中,AMDP方法和发布的API必须满足

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3270

【EFK】k8s部署ElasticSearch+Fluentd+Kibana进行日志收集

通过结合Elasticsearch的存储和搜索功能、Fluentd的采集和处理功能以及Kibana的展示和分析功能,开发者可以实现日志的收集、存储、搜索、分析和可视化。在子配置文件中设置时间戳格式,并在子配置文件中定义使用kubernetes插件,根据日志中的pod信息查对应k8s信息,并在日志中增加k8s信息,并配置logstash格式输出。编写yaml创建ES的Service,使用有状态应用StatefulSet创建ES集群,使用NFS做PV,存储ES数据到PV中。Kibana版本:7.2.0。

Marcos921的博客 1350

微信公众号网页H5跳转小程序实战指南(开放标签wx-open-launch-weapp)微信H5跳转小程序、wx-open-launch-weapp、小程序跳转按钮、微信开放标签、H5打开小程序

跳转小程序(wx-open-launch-weapp)唤起App显示支付按钮等等……而我们这次要用的,就是跳转小程序的标签。场景是否支持服务号网页✅ 支持小程序静态网页托管✅ 支持订阅号❌ 不支持微信外部浏览器❌ 不支持这个“开放标签”功能其实很强大,除了跳转小程序,还有唤起APP、跳支付、调用客服等能力。但可惜资料零散,很多坑等着你亲自踩一遍。这篇文章我整理的流程基本涵盖了从“能不能跳”到“怎么跳”的完整路径,希望你能像我一样省下几个小时的踩坑时间。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1163

如何合理评估信号过孔的残桩效应--Via Stub

设计中,之所以会去考察信号过孔的残桩效应(Via Stub),是因为它的存在导致了不需要的频率谐振,当这些谐振出现在所关注的信号通道的插入损耗中时,就会引发较为严重的信号完整性(SI)问题,那么Via Stub到底是如何引发SI问题的呢?

一只豌豆象的博客 4469

k8s部署EFK-elasticsearch+fluentd+kibana

参考地址 https://kubernetes.io/docs/concepts/services-networking/service/#headless-services https://www.qikqiak.com/post/install-efk-stack-on-k8s/

qq_36200932的博客 5945

vue2/3 - 详细实现内网使用离线高德地图功能,在vue中无需网络离线使用高德地图相关功能,高德地图如何离线加载详细教程(内网部署及使用),提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,高德地图,离线使用高德地图,高德地图瓦片官方下载,vue内网使用高德地图离线无网络,断网情况下使用高德地图,vue离线高德地图教程,如何实现内网部署高德地图,无需联网离线使用,vue+ts实现离线高德地图 内网离线高德地图,如何在高德地图Vue项目中下载离线地图,高德离线地图加载不出来,高德地图离线使用不显示怎么办,怎么解决vue内网使用离线高德地图加载失败问题,vue实现离线地图+高德瓦片,vue引入高德离线地图,vue项目如何使用离线高德地图和自定义地图样式,高德离线地图的下

✅ 精选推荐文章 1万+

K8S部署(Elasticsearch+Kibana+Fluentd)

实验环境版本 Kubernetes:v1.14.1 Elasticsearch镜像:docker.elastic.co/elasticsearch/elasticsearch:7.6.2 Kibana 镜像:docker.elastic.co/kibana/kibana:7.6.2 Fluentd 镜像:quay.io/fluentd_elasticsearch/fluentd:v3.0.1 简介 1、Elasticsearch Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行

liuchao666888的博客 5868

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

k8s 日志收集,部署EFK-elasticsearch+fluentd+kibana

k8s 日志收集,部署EFK-elasticsearch+fluentd+kibana k8s集群搭建完成后,由于pod分布在不同node内,定位问题查看日志变得复杂起来,pod数量不多的情况下可以通过kubectl自带的log命令进行日志查询,随着pod数量的增加日志查询的繁琐度也是呈指数型增长,定位问题也变得异常困难。 现在迫切需要搭建一套集群日志收集系统,目前主流的两种系统: ELK:Filebeat(收集)、Logstash(过滤)、Kafka(缓冲)、Elasticsearch(存储)、Kiba

weixin_39603190的博客 2625

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用k8s部署日志收集分析 EFK elasticsearch+kibana+fulentd

在现代 DevOps 实践中,日志管理和分析变得至关重要。尤其是在使用 Kubernetes 的动态环境中,分布式系统生成的日志数量庞大且复杂,传统的日志管理方式难以胜任。EFK 堆栈——由 Elasticsearch、Fluentd 和 Kibana 组成的强大组合,提供了一种高效的日志处理和可视化解决方案。Elasticsearch 作为一种分布式搜索和分析引擎,能够快速存储、搜索和分析海量数据;Fluentd 是一个开源的数据收集器,用于统一记录、过滤和传输日志数据;而 Kibana 则提供了一个强大

weixin_45020997的博客 3196

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Docker通过EFK(Elasticsearch + Fluentd + Kibana)查询日志

一、概述 Elasticsearch是一个开源搜索引擎,以易用性着称。kibana是一个图形界面,可以在上面条件检索存储在ElasticSearch里数据,相当于提供了ES的可视化操作管理器。 fluentd fluentd是一个针对日志的收集、处理、转发系统。通过丰富的插件系统,可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。 fluen...

shykevin的博客 1788

EFK-fluentd抓取日志发送到es

1.EFK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。新增了一个FlieBeat,它是一个轻量级的日志收集处理工具,FlieBeat占用资源少,适用于在各个服务器上搜集日之后,传输给Logstash。 Elasticsearch:开源分布式搜索引擎,提供搜集,分析,缓存数据三大功能,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负 载等。 Logstash 主要是用来日志的搜集、分析、过

weixin_49319422的博客 3681

如何在Kubernetes上设置Elasticsearch,Fluentd和Kibana(EFK)记录

介绍 在Kubernetes集群上运行多个服务和应用程序时,集中式集群级日志记录可以帮助您快速排序和分析Pod生成的大量日志数据。一种流行的集中式日志记录解决方案是Elasticsearch,Fluentd和Kibana(EFK)。 Elasticsearch是一个实时,分布式和可扩展的搜索引擎,允许进行全文和结构化搜索以及分析。它通常用于索引和搜索大量日志数据,但也可用于搜索许多不...

monkey的专栏 2325

开源项目推荐:Fluentd的Elasticsearch插件

**Fluentd的Elasticsearch插件** 是一个强大的数据收集和转发系统Fluentd的一个组件,专门用于将日志和其他类型的数据流式传输到Elasticsearch搜索引擎中。该插件由Ruby编程语言开发,并且在开源社区中活跃度高,广泛应用于日志分析和监控场景,支持与Kibana集成,以便于数据分析和可视化。 ## 核心功能 此插件的主要功能包括: - **日志存储与索引**:...

gitblog_00108的博客 819

在CentOS 8上设置Kibana Elasticsearch和Fluentd

在CentOS 8上设置Kibana Elasticsearch和Fluentd 首先附上命令 查看当前服务器是centOS版本:rpm -q centos-release 查看是否安装fluetd:rpm -qa|grep td-agent elk健康状态查看:curl http://192.168.100.154:9200/_cat/indices?v fluetd日志查看:tail -f /var/log/td-agent/td-agent.log fluetd编辑:vi /etc/td-a

Baron_ND的博客 886

基于docker-compose搭建EFK(Elasticsearch+fluentd+kibana)的日志平台

基于docker-compose搭建EFK(Elasticsearch+fluentd+kibana)的日志平台,8.8.0版本

大新新大浩浩的博客 976

EFK日志架构(Elasticsearch+Fluentd+Kibana)监控CosyVoice3

在高并发的CosyVoice3语音生成系统中,通过EFK架构实现全链路日志可观测性。利用Elasticsearch高效索引与分析结构化日志,Fluentd轻量采集并增强元数据,Kibana构建可视化面板提升故障排查效率。实战中精准定位模型降级问题,推动运维从被动响应向预测式演进。

weixin_26805451的博客 1008

fluentd结合kibana、elasticsearch实时搜索分析hadoop集群日志

Fluentd是一个开源收集事件和日志系统,它目前提供150+扩展插件让你存储大数据用于日志搜索,数据分析和存储。 官方地址http://fluentd.org/  插件地址http://fluentd.org/plugin/ Kibana 是一个为 ElasticSearch 提供日志分析的 Web ui工具,可使用它对日志进行高效的搜索、可视化、分析等各种操作。官方地址http://www

东杰书屋 3万+

如何在Kubernetes上设置Elasticsearch,Fluentd和Kibana(EFK)日志记录堆栈

介绍 (Introduction) When running multiple services and applications on a Kubernetes cluster, a centralized, cluster-level logging stack can help you quickly sort through and analyze the heavy volume of...

642

日志与可视化方案:从ELK到EFK,再到ClickHouse

云原生日志平台、ELK、EFK、ClickHouse

富贵的博客 5316
上一篇: 如何利用Graphite、StatsD与CollectD实现数据追踪与统计
下一篇: 通过手动安装来启动ZStack
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值