前言
关于ELK搭建的问题,或许你还有些模糊,其实你把我视频里讲的知识点串联起来就明白了。搭建ELK环境,看下面我说的:
- 首先,先把ES集群搭建起来,建议用CentOS6.5 64位的linux系统,把防火墙和SELinux都关闭,互ping各节点是否网络畅通,注意es新版本2.1.1以上的不会自动发现节点了,得自己设置;
- 其次,搭建Logstash,用一个节点即可,当然你也可以放在es集群里的任意一个节点上,Logstash是过滤数据用的,所以你得想方法把你要分析的日志传到logstash节点里,让其过滤(也就是logstash input的内容,读取本地file? 还是tcp udp把日志传来?看你自己),传过来的日志就要过滤(就是filter的内容了,一般用grok就OK),输入过滤做完了就写输出,一般都是输出到es里(看logstash output那内容就有说如何输出到es);另外,一些用的比较普遍的开源软件,网上肯定能找到相应的logstash conf文件的,就没必要自己去写过滤了,拿来参考下... 比如tomcat、Nginx、Mysql等等,最好去github里搜,比如关键词 "logstash tomcat" 。
- 最后,弄一节点搭建kibana,kibana就是展现es里面的数据,很多人看不懂kibana开始那配置界面,我视频里有讲得很清楚 (注意用kibana看es里的数据,首先先确认你es里面有没有数据,用head插件可以查看)
- 等你搭建好了ELK系统,也就是说,kibana里能看到你es集群的日志了,那么接下来你就应该考虑如何优化你的ELK环境了;刚开始你要想的是如何更方便的采集你的日志,然后再考虑如何更快的采集日志(用redis or kafka),最后是再考虑让你的ELK环境更稳定!
- 优化是后面的事情了,一般是数据量很大的情况下,才涉及到优化,关于优化的问题考验的是一个人的综合运维水平,了解ELK架构和原理是第一步,其次也需要有足够的linux系统维护知识、网络维护知识以及服务器硬件维护知识。
- 最后跟同学们说一句:不要怕麻烦,多动手,多实践,这东西不难... 我想下一个ELK高手,就是YOU!
Elasticsearch简介
Elasticsearch是什么
一个采用restful API标准的高扩展和高可用性的实时数据分析的全文搜索工具
Elasticsearch术语
- Node(节点):单个的装有Elasticsearch服务并且提供故障转移和扩展的服务器
- Cluster(集群):一个集群就是由一个或多个node组织在一起,共同工作,共同分享整个数据具有负载均衡功能的集群
- Document(文档):一个文档是一个可被索引的基础信息单元
- Index(索引):索引就是一个拥有几分相似特征的文档的集合
- Type(类型):一个所以你在,你可以定义一种或多种类型
- Field(列):field是elasticsearch的最小单位,相当于数据的某一列
- shards(分片):elasticsearch将索引分成若干份,每个部分就是一shard(比如说一个笑脸的表情,就可以把笑脸切割为四份,然后每一份就是一个shard,四个shard拼一块就是一个完整的笑脸)
- Replicas(复制):replicas是索引一份或多分拷贝(就是相当于备份)
Elasticsearch安装
安装Java
# tar -zxvf jdk-8u112-linux-x64.tar.gz # mv jdk1.8.0_112/ jdk # vim /etc/profile export JAVA_HOME=/usr/local/jdk export JAVA_BIN=/usr/local/jdk/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH # source /etc/profile
安装Elasticsearch
# wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz # tar -zxvf elasticsearch-1.7.3.tar.gz # cd elasticsearch-1.7.3 # bin/elasticsearch -d #后台启动elasticsearch # curl -X GET http://localhost:9200/ #测试 #会出现类似如下输出,则启动成功。 { "status" : 200, "name" : "es_01", "cluster_name" : "petecc_elasticsearch", "version" : { "number" : "1.6.0", "build_hash" : "cdd3ac4dde4f69524ec0a14de3828cb95bbb86d0", "build_timestamp" : "2015-06-09T13:36:34Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
Elastic目录结构
/bin | 运行elasticsearch实例和管理插件的一些脚本 |
/config | 配置文件路径 |
/data | 在节点上每个索引/碎片的数据文件的位置 |
/lib | elasticsearch使用的库 |
/logs | 日志目录 |
/plugins | 已经安装的插件的存放位置 |
Elasticsearch插件
elasticsearch-head插件
介绍:就是web版的elasticsearch
安装
# cd bin
# ./plugin -install mobz/elasticsearch-head
测试
web浏览器访问: http://192.168.2.218:9200/_plugin/head/
elasticsearch-bigdesk插件
介绍:是elasticsearch的一个集群监控工具,可以通过它来查看集群的各个状态,如:cpu,内存使用情况,索引数据,搜索情况,http连接数
安装
# cd bin/
# ./plugin -install lukas-vlcek/bigdesk/2.5.0
测试
web浏览器访问: http://192.168.2.218:9200/_plugin/bigdesk
elasticsearch-marvel插件
介绍:集成head和bigdesk插件的功能
安装
# cd bin/
# ./plugin -install elasticsearch/marvel/latest
测试
web浏览器访问: http://192.168.2.218:9200/_plugin/marvel