基于Elasticsearch+Fluentd+Kibana的日志收集分析系统

我们平时分析log直接在日志文件中 grep、awk 就可以获得自己想要的信息,此方法效率低下,生产中需要集中化的日志管理,所有服务器上的日志收集汇总

Elasticsearch
一个节点(node)就是一个Elasticsearch实例,一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载。当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。
集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。主节点不参与文档级别的变更或搜索,这意味着在流量增长的时候,该主节点不会成为集群的瓶颈。
做为用户,我们能够与集群中的任何节点通信,包括主节点。每一个节点都知道文档存在于哪个节点上,它们可以转发请求到相应的节点上。我们访问的节点负责收集各节点返回的数据,最后一起返回给客户端。这一切都由Elasticsearch处理。

一个完整的集中式日志系统,需要包含以下几个主要特点:
收集-能够采集多种来源的日志数据
传输-能够稳定的把日志数据传输到中央系统
存储-如何存储日志数据
分析-可以支持 UI 分析
警告-能够提供错误报告,监控机制

fluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能不错。
fluentd支持所有主流日志类型,插件支持较多,性能表现较好
logstash支持所有主流日志类型,插件支持最丰富,可以灵活DIY,但性能较差,JVM容易导致内存使用量高。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能
Kibana 也是一个开源和免费的工具,Kibana可以为 td-agent和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

安装流程:

两个node都下载
#yum install java 下载java环境
#java -version
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm
#rpm -ih elasticsearch-6.3.1.rpm
Node1(主)
#vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application //集群名称
node.name: node-1 //主机名称
node.master: true //主为true
network.host: 172.21.0.9 //主机ip
http.port: 9200 //端口

Node2 (从)
#vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: node-2
node.master: false
network.host: 172.21.0.37
http.port: 9200discovery.zen.ping.unicast.hosts: ["host1", "172.21.0.9”] //集群

#/etc/init.d/elasticsearch start
#/etc/init.d/elasticsearch status
#curl http://172.21.0.9:9200/_cat/health //测试
#curl http://172.21.0.9:9200/_cat/nodes //测试

Fluentd (tdagent) //收集那台机器的log在那安装

#wget http://packages.treasuredata.com.s3.amazonaws.com/3/redhat/7/x86_64/td-agent-3.2.0-0.el7.x86_64.rpm
#rpm -ivh td-agent-3.2.0-0.el7.x86_64.rpm --force --nodeps
#yum install -y libcurl-devel
#/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
#cd /etc/td-agent/
>#cat td-agent.conf //内容可以直接替换
<source>
@type forward
port 24224
</source>
####################################
<source>
@type tail
path /var/log/httpd/access_log
pos_file /var/log/td-agent/httpd-access.log.pos
tag apache.access
<parse>
@type apache2
</parse>
</source>
####################################
<match debug.*>
@type stdout
</match>
####################################
<match
.**>
@type copy
<store>
@type elasticsearch
host 172.21.0.9
port 9200
logstash_format true
logstash_prefix fluentd-${tag}
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s
</store>
<store>
@type stdout
</store>
</match>

#/etc/init.d/td-agent restart
#chmod 777 -R /var/log/httpd/
#tail -f /var/log/td-agent/td-agent.log //测试
#curl ‘http://172.21.0.9:9200/_cat/indices?v’ //测试

Kibana

#wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.1-x86_64.rpm
#rpm -ivh kibana-6.3.1-x86_64.rpm
#vim /etc/kibana/kibana.yml
server.port: 5601 //端口
server.host: “172.21.0.9"
elasticsearch.url: "http://172.21.0.9:9200
kibana.index: ".kibana”

#/etc/init.d/kibana restart //重启服务
#tail -f /var/log/kibana/kibana.stderr //查看
浏览器访问 172.21.0.9:5601
然后在kibana客户端web界面设置Fluentd-log选项

附加‘elasticsearch 常用的操作‘
  1. 查看当前集群的状态
    curl ‘http://IP:PORT/_cat/health?v
    2.查看当前node
    curl ‘http://IP:PORT/_cat/nodes?v
    3.查看所有的index
    curl ‘http://IP:PORT/_cat/indices?v
    4.创建一个index
    curl -XPUT ‘IP:PORT/customer?pretty‘
    5.创建一个index 带有文档的
    curl -XPUT ‘IP:PORT/customer/external/1?pretty‘ -d ‘
    {
    "name": "John Doe"
    }‘
    6.删除一个index
    curl -XDELETE ‘IP:PORT/customer?pretty‘
    curl -XDELETE ‘IP:PORT/onland-*?pretty’

原文地址:http://blog.51cto.com/13767724/2152883

时间: 2024-10-10 16:24:41

基于Elasticsearch+Fluentd+Kibana的日志收集分析系统的相关文章

logstash日志收集分析系统elasticsearch&kibana

logstash日志收集分析系统Logstash provides a powerful pipeline for storing, querying, and analyzing your logs. When using Elasticsearch as a backend data store and Kibana as a frontend reporting tool, Logstash acts as the workhorse. It includes an arsenal of

日志收集分析系统架构

日志收集分析系统架构   一.部署架构 日志收集系统一般包括如图所示三层.Web服务器层,日志收集层,日志存储层.Web服务器层是日志的来源,一般部署web应用供用户访问,产生日志,该节点上一般需要部署日志收集程序的agent.日志收集层手机web服务器产生的日志传输给日志存储层,存储层一般使用分布式文件系统HDFS,日志可以存储在hdfs上或者hbase上. 以scribe作为日志收集系统架构,scribe分为scribe agent和scribe server 以kafka作为日志收集系统架

elkb+redis建立日志收集分析系统

一.ELKB说明 elastic提供了一套非常高级的工具ELKB来满足以上这几个需求.ELKB指的是用于日志分析或者说数据分析的四个软件,各自拥有独立的功能又可以组合在一起.先来简单介绍一下这四个软件. Elastic Search: 从名称可以看出,Elastic Search 是用来进行搜索的,提供数据以及相应的配置信息(什么字段是什么数据类型,哪些字段可以检索等),然后你就可以自由地使用API搜索你的数据. Logstash:.日志文件基本上都是每行一条,每一条里面有各种信息,这个软件的功

zipkin+elk微服务日志收集分析系统

docker安装elk日志分析系统 在win10上安装docker环境 tip:win7/8 win7.win8 系统 win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ win10 现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V. 程序和功能->启用或关闭Windows

Linux——使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台

http://wsgzao.github.io/post/elk/

Elasticsearch+logstash+kibana实现日志分析(实验)

Elasticsearch+logstash+kibana实现日志分析(实验) 一.前言 Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索.分析和可视化展现的数据分析框架.(hadoop同一个开发人员) java 开发的开源的全文搜索引擎工具 基于lucence搜索引擎的 采用 restful - api 标准的 高可用.高扩展的分布式框架 实时数据分析的 官方网站: https://www.elastic.co/products 为什么

结合Docker快速搭建ELK日志收集分析平台

结合Docker快速搭建ELK日志收集分析平台 2017-03-27 09:39 阅读 172 评论 0 作者:马哥Linux运维-Eason ELK Stack ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析. Introduction Elasticsearch, 基于json分析搜索引擎Logstash, 动态数据收集管道Kibana, 可视化视图将elasticsearh所收集

elk/elasticsearch+fluentd+kibana

分布式日志收集系统 日志收集系统采用elasticsearch+fluentd+kibana,用fluentd代替elk社区里的logstash,logstas的插件是最多的,同时logstash的性能和资源消耗太高,经某站大佬压力测试,在环境为2核4g的云计算服务器上,logstash写入qps极限为8000,通过结合易瑞现有询报价系统,同时也是用户3000+的项目产品,logstash负载压力显然承受不住,服务器资源消耗太严重,所以基于以上考虑采用新型日志收集产品fluentd来代替logs

ELK:日志收集分析平台

目录 简介 环境说明 Filebeat 部署 web上采集配置文件 app上采集配置文件 Redis 部署 配置文件 Logstash 部署 Elasticsearch 集群部署 配置文件 Kibana 部署 参考文档 简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋势和分布等,能够规避灾难和指导决策等.ELK是Elasticsearch公司出品