ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了很多的坑,特此写个笔记记录下学习过程。前端

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员能够经过日志了解服务器软硬件信息、检查配置过程当中的错误及错误发生的缘由。常常分析日志能够了解服务器的负荷,性能安全性,从而及时采起措施纠正错误。linux

一般,日志被分散的储存不一样的设备上。若是你管理数十上百台服务器,你还在使用依次登陆每台机器的传统方法查阅日志。这样是否是感受很繁琐和效率低下。当务之急咱们使用集中化的日志管理,例如:开源的syslog,将全部服务器上的日志收集汇总。编程

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,通常咱们使用grep、awk和wc等Linux命令能实现检索和统计,可是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法不免有点力不从心。数组

开源实时日志分析ELK平台可以完美的解决咱们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站: https://www.elastic.co/products安全

  • Elasticsearch是个开源分布式搜索引擎,它的特色有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个彻底开源的工具,他能够对你的日志进行收集、过滤,并将其存储供之后使用(如,搜索)。
  • Kibana 也是一个开源和免费的工具,它Kibana能够为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,能够帮助您汇总、分析和搜索重要数据日志。

Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件后的新称呼。ruby

Elastic Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,Elastic Stack 具备以下几个优势:服务器

  • 处理方式灵活。Elasticsearch 是实时全文索引,不须要像 storm 那样预先编程才能使用;
  • 配置简易上手。Elasticsearch 所有采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
  • 检索性能高效。虽然每次查询都是实时计算,可是优秀的设计和实现基本能够达到全天数据查询的秒级响应;
  • 集群线性扩展。不论是 Elasticsearch 集群仍是 Logstash 集群都是能够线性扩展的;
  • 前端操做炫丽。Kibana 界面上,只须要点击鼠标,就能够完成搜索、聚合功能,生成炫丽的仪表板。

安装准备:

先安装官方新版的Java,包括对应的Jdk并配置好环境变量,下载并解压Elasticsearch,Logstash,Kibana。restful

 

安装Elasticsearch:

1.编辑config/elasticsearch.yml文件

2.修改以下两个参数

cluster.name: es运维

network.host: 0.0.0.0elasticsearch

3.建立用户( Elasticsearch为了安全考虑,不让使用root启动)

建立一个用户组:elasticsearch(groupadd elasticsearch)
建立属于elasticsearch用户组的用户elasticsearch并将其加入到elasticsearch用户(useradd elasticsearch -g elasticsearch -p password)
将elasticsearch目录所属的用户和用户组修改成咱们本身建立的用户和用户组(chown -R elasticsearch:elasticsearch elasticsearch-5.4.0)

4.保证虚拟机内存足够,Elasticsearch默认须要2g内存。

5.安装X-Pack

X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中。在Elasticsearch 5.0.0以前,您必须安装单独的Shield,Watcher和Marvel插件才能得到在X-Pack中全部的功能。(安装须要点时间,请耐心等待)

bin/elasticsearch-plugin install x-pack 

6.启动Elasticsearch并访问

安装LogStash:

在终端中,像下面这样运行命令来启动 Logstash 进程:

bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

待到启动成功后

你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,而后看看会返回什么结果!

结果:

 

部分解释:

Logstash 会给事件添加一些额外信息。最重要的就是 @timestamp,用来标记事件的发生时间。由于这个字段涉及到 Logstash 的内部流转,因此必须是一个 joda 对象,若是你尝试本身给一个字符串字段重命名为 @timestamp 的话,Logstash 会直接报错。

 

此外,大多数时候,还能够见到另外几个:

  1. host 标记事件发生在哪里。
  2. type 标记事件的惟一类型。
  3. tags 标记事件的某方面属性。这是一个数组,一个事件能够有多个标签。

安装Kibana:

1.安装X-Pack

bin/kibana-plugin install x-pack

 安装过程会比较久,耐心等待。

 2.修改配置文件(config/kibana.yml)

server.host: 192.168.25.129    (你安装Kibana当前机子的IP)

elasticsearch.url: "http://127.0.0.1:9200"  (ES的地址)

kibana.index: ".kibana"   (索引名称)

elasticsearch.username: "elastic"   (用户名)
elasticsearch.password: "changeme"  (密码)

3.启动Kibana, 访问5601端口

相关文章
相关标签/搜索