elk/elasticsearch+fluentd+kibana

分布式日志收集系统

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

题外话:亚马逊云用的fluentd,阿里云用的自研logtail,logtail是性能目前是最高的。
分布式日志系统架构图初步设计为:

系统环境:centos6
运行环境:jdk1.8, ruby2.0, fluentd2.3.5, elasticsearch1.7.1, kibana5.0.2
fluentd官方网站: http://www.fluentd.org/
fluentd插件下载地址:https://www.fluentd.org/plugins/all
elasticsearch: https://www.elastic.co/products/elasticsearch
kibana:https://www.elastic.co/products/kibana
相互依赖的关系:fluentd需求ruby≥2.0,elasticsearch需求 jdk环境≥1.8。
ruby中网https://ruby-china.org/topics/node1
环境实例:
架构:堡垒机负责收集存储日志信息并对提供对外访问展示(fluentd,elsticsearch,kinbana)
服务器列表:nginx01/172.17.96.200
nginx02/172.17.96.201
堡垒机:172.17.180.114

安装fluentd
官方技术文档请参考https://docs.fluentd.org/v0.12/categories/installation
官方下载地址:https://www.fluentd.org/download
fluentd 的运行环境为ruby
ruby环境:
tar zxvf ruby-2.3.1.tar.gz
cd ruby-2.3.1
./configure
make
make install
然后加入环境变量
vim /etc/profile
export path=/usr/local/src/ruby-2.3.1/bin:$path
source /etc/profile
runy --version

安装成功

fluentd系统采用2.3.6版本
wget http://packages.treasuredata.com.s3.amazonaws.com/2/redhat/6/x86_64/td-agent-2.3.5-0.el6.x86_64.rpm
rpm –ivh td-agent-2.3.5-0.el6.x86_64.rpm

安装后的目录为:/etc/td-agent
配置文件默认存放位置:/etc/td-agent/td-agent.conf

安装fluentd的必要插件(重要)
与elasticsearch通信.或者安装mongo插件,数据存放mongodb中,或者直接安装kibana插件,数据输出到kibana,上面插件地址有介绍,根据自己实际环境需要进行操作

td-agent-gem install fluent-plugin-elasticsearch
字段插件(fluentd为模块化产品,借助各种模块实现收集功能类似nginx):
td-agent-gem install fluent-plugin-typecast
td-agent-gem install fluent-plugin-secure-forward
安装fluentd三个必要插件


启动fluentd

fluentd安装成功
启动成功,然后我们修改一下fluentd配置文件与elasticsearch进行通信存储:
<source>
@type tail
path /usr/local/nginx/logs/access.log
format /^(?<host>[^ ]) [^ ] (?<user>[^ ]) [(?<time>[^]])] "(?<method>\S+)(?: +(?<path>[^ ]) +\S)?" (?<code>[^ ]) (?<size>[^ ])(?: "(?<referer>[^\"])" "(?<agent>[^\"])")?$/
time_format %d/%b/%Y:%H:%M:%S %z
tag 200nginx.access
pos_file /opt/log/nginx.access.log.pos
</source>
<match **>
@type elasticsearch
flush_interval 1s
host 172.17.180.114
port 9200
include_tag_key true
tag_key @log_name
logstash_format true
</match>

elasticsearch安装
环境需求:jdk1.8
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz
tar zxvf elasticsearch-1.7.1.tar.gz
cd elasticsearch-1.7.1
下载kopf和head插件kopf是集群资源,数据的查询插件,注意kopf和els有版本依赖,head数据查询配合kopf一起使用更佳
./elasticsearch-1.7.1/bin/plugin install lmenezes/elasticsearch-kopf/1.0
./elasticsearch-1.7.1/bin/plugin install mobz/elasticsearch-head

git地址:https://github.com/lmenezes/elasticsearch-kopf
安装后访问http://localhost:9200/_plgin/head

访问http://localhost:9200/_plugin/kopf

注意画红线的这段内容,表示我们上面fluentd配置已经收集到我们需要的日志,下一步安装kibana让es中的字段以图形化显示出来

安装kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.0.2-linux-x86_64.tar.gz
tar -xzf kibana-5.0.2-linux-x86_64.tar.gz

最新版本为6.0
与es进行关联:
cd kibana-5.0.2-linux-x86_64/config
vim kibana.yml(需要修改下列host列和es的url)

kibana使用时会首先创建模版(可用默认)
然后我们需要查看刚才抓取的日志

注意:1,es中的日志数据区分是按天算每天生成新文件,从这里可以按我们每台服务器定义的文件名进行查看,可根据该tag名进行分类查看
2,查看/显示需要的字段值
3,产生的点击数
4,查找/类别(时间段)

原文地址:http://blog.51cto.com/13654063/2087516

时间: 2024-10-06 23:20:03

elk/elasticsearch+fluentd+kibana的相关文章

[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事

CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们很关心安全,不过他们压根就没看过和关注过自己服务器的日志,这是有点讽刺的.先把日志管理好,然后我们再去深入讨论安全. Mirantis的Fuel,已经引入ELK作为OpenStack的监控工具,所以我们也需要重点去学习一下ELK. 刚好看到一个老外的视频,介绍CentOS 7安装ELK,讲的很实在,

ELK(ElasticSearch+Logstash+Kibana)日志分析工具

日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事

ELK(elasticsearch+logstash+kibana)开源日志分析平台搭建

环境介绍 System:   CentOS7.2 x86_64 hostname: elk-server.huangming.org IP Address: 10.0.6.42.10.17.83.42 本篇的ELK环境为单机部署方式,即将ELK所有的软件包都安装在一台服务器上,配置如下: CPU:   4c Mem:   8G Disk:  50 一.Elasticsearch安装 1.安装jdk 1.8及以上的版本(安装过程略) [[email protected] elk]# java -v

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

我们平时分析log直接在日志文件中 grep.awk 就可以获得自己想要的信息,此方法效率低下,生产中需要集中化的日志管理,所有服务器上的日志收集汇总 Elasticsearch一个节点(node)就是一个Elasticsearch实例,一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载.当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据.集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如

centos7安装配置ELK(Elasticsearch+Logstash+Kibana)

yum install java-1.8.0-openjdk yum install elasticsearch-2.1.0.rpm systemctl start elasticsearch rpm -qc elasticsearch tar -zxvf kibana-5.0.0-snapshot-linux-x64.tar.gz mv kibana-5.0.0-snapshot-linux-x64 kibana cp -R kibana /opt/ vi /etc/systemd/syste

EFK的学习(Elasticsearch + Fluentd+ Kibana)

1. 安装部署参考https://www.qikqiak.com/post/install-efk-stack-on-k8s/ 2. Fluentd对应的yaml配置方式,配置文件一般为fluentd-es-configmap.yaml 日志源配置 比如我们这里为了收集 Kubernetes 节点上的所有容器日志,就需要做如下的日志源配置: <source> @id fluentd-containers.log @type tail path /var/log/containers/*.log

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

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