• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

ELK日志收集系统搭建 

ELK,也就是Elasticsearch、Logstash、Kibana三者的结合,是一套开源的分布式日志管理方案。

简介

Elasticsearch:负责日志存储、检索和分析

LogStash:负责日志的收集、处理

Kibana:负责日志的可视化

ELKR-log-platform

ELK-log-platform

java8

logstash和elasticsearch均依赖java,所以安装这两个之前,我们应该先安装好java,java version大于7,然而官方推荐最好是java 8.

安装:

Elasticsearch

我们以elasticsearch目前的版本1.7为例,参看官方教程:https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html,在官方网站上下载了elasticsearch的压缩包,解压到某个目录后执行即可。

当然,在Ubuntu下,我们可以用apt-get的方式安装:

下载并安装公钥:

添加源:

安装:

设置开机启动:

配置:修改 network.host: localhost

启动:elasticsearch启动后,即绑定在了localhost:9200端口上

常用命令:

Kibana

从官方下载最新的压缩包:https://www.elastic.co/guide/en/kibana/current/setup.html,解压到任意目录

Nginx配置:

如果需要限制访问权限,我们可以通过nginx的auth_basic进行设置:

 

Logstash

安装:

参考官方教程:https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html

在Ubuntu下,我们可以用apt-get的方式来安装:

在这里,logstash具有两个身份角色,一个是shipper,一个是indexer;当应用在分布式的系统中时,一般是多个shipper将日志收集然后发送到redis(作为broker身份),而indexer则从redis中读取数据进行处理,然后再发送给elasticsearch,而我们则可以通过kibana查看到所有的日志信息。

这里的broker采用的是redis作为消息系统,根据业务需要,我们也可以采用kafka等其他消息系统。

中心logstash(indexer)配置, /etc/logstash/conf.d/central.conf

远程logstash(shipper)配置,/etc/logstash/conf.d/shipper.conf

在这里,因为我们是在单台服务器上进行操作的,所以我们可以将indexer和shipper合并在一起,省去其中的redis。配置文件如下:

basic_logstash_pipeline

basic_logstash_pipeline

对于logstash,我们有许多插件可以使用,其中比较常用的有filter部分的grok插件。假如我们要对nginx的日志进行处理,获取其中的各个字段信息,我们可以参看如下用法:

nginx的日志格式:

Logstash中filter的配置:

关于grokdebugger,可以使用在线调试http://grokdebug.herokuapp.com/。当grok中的配置与日志格式不匹配时,在Kibana管理后台可以看到_grokparsefailure.

启动logstash:

我们就可以在kibana中看到日志的数据了,同时也可以非常方便的进行搜索等。

kibana

kibana

参考:

https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-ubuntu-14-04

 https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html

码字很辛苦,转载请注明来自ChenJiehua《ELK日志收集系统搭建》

评论