最近在学习ELK的时候踩了很多的坑,特此写个笔记记录下学习过程。前端
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员能够经过日志了解服务器软硬件信息、检查配置过程当中的错误及错误发生的缘由。常常分析日志能够了解服务器的负荷,性能安全性,从而及时采起措施纠正错误。linux
一般,日志被分散的储存不一样的设备上。若是你管理数十上百台服务器,你还在使用依次登陆每台机器的传统方法查阅日志。这样是否是感受很繁琐和效率低下。当务之急咱们使用集中化的日志管理,例如:开源的syslog,将全部服务器上的日志收集汇总。编程
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,通常咱们使用grep、awk和wc等Linux命令能实现检索和统计,可是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法不免有点力不从心。数组
开源实时日志分析ELK平台可以完美的解决咱们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站: https://www.elastic.co/products安全
Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件后的新称呼。ruby
Elastic Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,Elastic Stack 具备以下几个优势:服务器
先安装官方新版的Java,包括对应的Jdk并配置好环境变量,下载并解压Elasticsearch,Logstash,Kibana。restful
cluster.name: es运维
network.host: 0.0.0.0elasticsearch
X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中。在Elasticsearch 5.0.0以前,您必须安装单独的Shield,Watcher和Marvel插件才能得到在X-Pack中全部的功能。(安装须要点时间,请耐心等待)
bin/elasticsearch-plugin install x-pack
在终端中,像下面这样运行命令来启动 Logstash 进程:
bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
待到启动成功后
你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,而后看看会返回什么结果!
结果:
部分解释:
Logstash 会给事件添加一些额外信息。最重要的就是 @timestamp,用来标记事件的发生时间。由于这个字段涉及到 Logstash 的内部流转,因此必须是一个 joda 对象,若是你尝试本身给一个字符串字段重命名为 @timestamp
的话,Logstash 会直接报错。
此外,大多数时候,还能够见到另外几个:
bin/kibana-plugin install x-pack
安装过程会比较久,耐心等待。
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" (密码)