首页 > 日志服务 > ELK日志服务使用-基本安装
2016
02-23

ELK日志服务使用-基本安装

说在前面的话:
elk对于没有接触的来说,并没有一般的服务那么容易安装和使用,不过也没有那么难,elk一般作为日志分析套装工具使用。logs由logstash输入,logstash通过配置文件对日志做过滤、匹配,就是用来分析日志的,输出到elasticsearch,所以他的配置需要和日志相匹配。elasticsearch可以看做是一个nosql数据库,是把logstash处理后的日志以日期方式存储起来。kibana从elastic里面获取日志数据,提供一个前端界面给日志做展示(和Grafana功能一样)。
logs →→ logstash →→ elasticsearch ←← kibana

下面是官方的说明:
Logstash为存储、查询和分析日志提供强大的管道。使用Elasticsearch作为后端的数据存储和Kibana作为一个前端报告工具,Logstash充当主力。它包括内置输入,过滤器,编解码器和输出,让你的事半功倍。
一般应用的elk,版本还是有些差异的,所以使用前先确定版本

ELK日志服务使用-基本安装 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

软件官方下载即可,下面为版本号:

OS:centos6.6 64bit
java:jdk-7u79-linux-x64.rpm
E:elasticsearch-1.7.3.tar.gz
L:logstash-1.5.6-1.noarch.rpm
K:kibana-4.1.2-linux-x64.tar.gz

注意:上面配置文件output中,elasticsearch在2.*新版本中host更改为了hosts,下面配置也一样,需要留意,推荐大家使用新版本的ELK

否则报错信息如下:

设置java环境

logstash的应用:

查看logstash的运行

查看elasticsearch的运行

安装elasticsearch插件

可见插件的安装是下载zip包,再解压到plugins文件夹
下面测试这个kopf插件
kopf is a simple web administration tool for elasticsearch written in JavaScript + AngularJS + jQuery + Twitter bootstrap.https://github.com/lmenezes/elasticsearch-kopf

注意:上面配置文件output中,elasticsearch在2.*新版本中host更改为了hosts,下面配置也一样,需要留意

# curl ‘http://localhost:9200/_plugin/kopf/’  #显示插件的页面,不过这个看不到东西
#在浏览器访问192.168.10.1:9200/_plugin/kopf/ 会打开如下界面,浏览保存在Elasticsearch中的数据,设置及映射

ELK日志服务使用-基本安装 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

另,还有好多很不错的插件,都可以安装上去:
es_head: 这个主要提供的是健康状态查询,当然标签页里也提供了简单的form给你提交API请求。es_head现在可以直接通过 elasticsearch/bin/plugin -install mobz/elasticsearch-head 安装,然后浏览器里直接输入http://$eshost:9200/_plugin/head/ 就可以看到cluster/node/index/shards的状态了
bigdesk: 这个主要提供的是节点的实时状态监控,包括jvm的情况,linux的情况,elasticsearch的情况。排查性能问题的时候很有用,现在也可以过 elasticsearch/bin/plugin -install lukas-vlcek/bigdesk 直接安装了。然后浏览器里直接输入 http://$eshost:9200/_plugin/bigdesk/ 就可以看到了。注意如果使用的 bulk_index 的话,如果选择的刷新间隔太长,indexing per second数据是不准的

Marvel: 这个插件是监控elasticsearch的状态和性能。包括集群的状态、实时处理的日志条数等

如果不能在线安装elasticsearch插件,则
bin/plugin install file:///path/to/plugin.zip
或者如下操作:
1.下载插件的zip包并解压,比如abc.zip
2.建立/opt/elasticsearch/plugins/abc文件夹
3.将解压后的abc文件夹下的文件copy到abc下
4.运行es
5.打开http://IP:9200/_plugin/abc/

查看安装了哪些插件
# /opt/elasticsearch/bin/plugin -l
Installed plugins:
– kopf

下面是logstash和elasticsearch处理apache日志过程详细说明:

#稍等二十秒,如果没有输出,那么vim 这个日志,到最后面复制再粘贴一行,模拟写入日志
#此时logstash会读apache的错误日志,在下面命令行会显示,http://IP:9200/_search?pretty浏览器页面也会看到

通过上述操作,应该明白了logstash和elasticsearch的简单用法,下面是配置文件的说明(网上抄的):
事件的生命周期
Inputs,Outputs,Codecs,Filters构成了Logstash的核心配置项。Logstash通过建立一条事件处理的管道,从你的日志提取出数据保存到Elasticsearch中,为高效的查询数据提供基础。
Inputs
input 及输入是指日志数据传输到Logstash中。其中常见的配置如下:
file:从文件系统中读取一个文件,很像UNIX命令 “tail -0a”
syslog:监听514端口,按照RFC3164标准解析日志数据
redis:从redis服务器读取数据,支持channel(发布订阅)和list模式。redis一般在Logstash消费集群中作为”broker”角色,保存events队列共Logstash消费。
Filters
Fillters在Logstash处理链中担任中间处理组件。他们经常被组合起来实现一些特定的行为来,处理匹配特定规则的事件流。常见的filters如下: grok:解析无规则的文字并转化为有结构的格式。Grok是目前最好的方式来将无结构的数据转换为有结构可查询的数据。有120多种匹配规则,会有一种满足你的需要。
mutate:mutate filter 允许改变输入的文档,你可以从命名,删除,移动或者修改字段在处理事件的过程中。
drop:丢弃一部分events不进行处理,例如:debug events。
clone:拷贝event,这个过程中也可以添加或移除字段。
geoip:添加地理信息(为前台kibana图形化展示使用)
Outputs
outputs是logstash处理管道的最末端组件。一个event可以在处理过程中经过多重输出,但是一旦所有的outputs都执行结束,这个event也就完成生命周期。一些常用的outputs包括: elasticsearch:如果你计划将高效的保存数据,并且能够方便和简单的进行查询
file:将event数据保存到文件中
graphite:将event数据发送到图形化组件中,一个很流行的开源存储图形化展示的组件。http://graphite.wikidot.com/
statsd:statsd是一个统计服务,比如技术和时间统计,通过udp通讯,聚合一个或者多个后台服务,如果你已经开始使用statsd,该选项对你应该很有用
Codecs
codecs 是基于数据流的过滤器,它可以作为input,output的一部分配置。Codecs可以帮助你轻松的分割发送过来已经被序列化的数据。流行的codecs包括 json,msgpack,plain(text)。
json:使用json格式对数据进行编码/解码
multiline:将汇多个事件中数据汇总为一个单一的行。比如:java异常信息和堆栈信息 获取完整的配置信息,请参考 Logstash文档中 “plugin configuration”部分

下面就结合kibana在页面查看
# tar -xzf kibana-4.1.2-linux-x64.tar.gz -C /opt/
# ln -s /opt/kibana-4.1.2-linux-x64/ /opt/kibana
# cd /opt/kibana
# ./bin/kibana &

当运行kibana的时候,会在elasticsearch中新建.kibana的索引index,如果你的elasticsearch之前已经在跑其他的业务,请手动建立.kibana的index。在电脑打开 http://IP:5601/

ELK日志服务使用-基本安装 - 第3张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

ELK日志服务使用-基本安装 - 第4张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

ELK日志服务使用-基本安装 - 第5张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

另,kibana有经常退出的情况,这里用一个shell脚本

启动的话执行 service kibana restart即可。

问:为什么elk安装这么麻烦,有没有简单的?

答:这篇文章写的过程对于安装来说是多余了些,主要是让大家明白logstash和elasticsearch一般的运行,这点明白了以后操作就容易自己解决问题。

本文是在本地虚拟机下操作的,对于elk配置文件没有任何的更改,下一篇会写配置文件的意思。

ELK的资料
https://www.elastic.co/guide/index.html elk官网文档
https://www.gitbook.com/book/chenryn/kibana-guide-cn/details 三斗室的ELKstack 中文指南比较不错,ELKstack权威指南作者

http://www.rsyslog.com/tag/elasticsearch/ rsyslog官网提供的优秀文档,敬仰链接中写文章的大师

https://ianunruh.com/2014/05/monitor-everything.html

http://logstash.es/

http://logstash-best-practice.readthedocs.org/zh_CN/latest/README/

by:http://bbotte.com/

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

ELK日志服务使用-基本安装》有 3 条评论

  1. 陶亚可 说:

    顶一个,写的很好,果断收藏、

  2. 姜贵平 说:

    非常好 很实用。

留下一个回复

你的email不会被公开。